听力检测与放大系统使用说明_第1页
听力检测与放大系统使用说明_第2页
听力检测与放大系统使用说明_第3页
听力检测与放大系统使用说明_第4页
听力检测与放大系统使用说明_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、本科生毕业设计听 力 检 测 与 放 大 系 统 使 用 说 明 学 院 电气(机电)工程学院 专 业通信工程 班 级 通信班学 号4704110003、4704110010 4704110025 学 生 姓 名赵少婷、任小梅、刘思雨联 系 方 指 导 教 师 范雪丽 职称: 讲师 2015 年 5 月听力检测与放大系统设计说明一 实验目的及要求1.掌握TMS320VC5509板上语音codec芯片 TLV320AIC23的设计和程序控制原理。2.掌握FIR滤波器工作原理及编程。3.学习使用CCS图形观察窗口观察和分析语音波形及其频谱。4.通过编程是实现不同频率、强度

2、的纯音信号对受试者进行听力检测,并通过编写FIR滤波器对检测结果进行补偿。二 设计思路1.通过程序控制语音模块AIC23产生不同频率的纯音,其强度(声级)可以调节。用于测试听觉范围内不同频率的听敏度,判断有无听觉障碍,估计听觉损失的程度。2.由受试者自己判断是否听到耳机发出的声音,若能够听到声音,受试者按下应答器的指示灯按钮,不断更改纯音信号的声级,直至受试者无法听到为止。3.每个频率能听到的最小声音强度为听阈。对听力损失的部分进行不同频率的听力补偿,使受试者能正常听到声音信号。4.根据受试者的听力补偿曲线进行分析得到的滤波器的标准频率响应设计FIR滤波器,设计FIR滤波器参数,包括滤波器的阶

3、数、各阶系数。三 系统性能及参数1. DSP TMS320C5509开发板本开发板是一套功能完善的基于TMS320VC5509A DSP的学习开发平台, 主要包括处理器单元、存储器、系统时钟、复位、电源、LED指示灯、USB接口、I2C总线接口、RTC、双通道10bit /21.5KHz A/D接口、扩展总线(可扩展图像处理、高速AD、DA、USB、以太网等扩展板)。 加上96K采样率的AIC23音频芯片,结合5509 200MHZ的高频,能实现多种音频算法,是进行音频视频算法研究、试验的上佳平台。开发板电源开关DC电源插座DSP主芯片串口仿真

4、器排针立体声插孔(输出)USB B口语音产生模块2. 基本外设仿真器完全采用USB2.0 标准接口连接计算机,完全即插即用,传输速度可达480Mbps,是USB1.0 接口传输速度的40 倍以上。兼容USB1.1 协议,兼容任何当前的USB1.1 接口PC 机。 DSP仿真器 音箱 应答器3. 配件 开发板USB线 仿真器USB线 串口线 开发板电源线4.相应参数正常听力是指能听到的频率20Hz、20KHz纯音气导平均阈值值在2640dB HL范围内。轻度听力损失是指500Hz、1000Hz、2000Hz及4000Hz纯音气导平均阈值在2640dB HL范围内。中度听力损失是指500Hz、10

5、00Hz、2000Hz及纯音气导平均阈值在4155dB HL范围内。重度听力损失是指500Hz、1000Hz、2000Hz及4000Hz纯音气导平均阈值在5690dB HL范围内。正常人的听力范围在025分贝(dB)之间。对受试者一个频率点以5dB上升下降分别测试,描绘出受试者的听力检测曲线,分析受试者的听力是否正常。分析后对听力损失的部分进行听力频率补偿。四 使用元器件清单1. TMS320VC5509 DSP开发板2. JT2987低音炮3. 电阻(1个)4. 充电电池(2个)5. 电池座(1个)6. 开关(1个)7. 发光二极管(2个)8. 导线若干五实验步骤1.安装DSP开发环境CCS

6、3.3、软件驱动XDS510 CCS_driver、USB驱动XDS510 USB_driver。2.将DSP开发板、仿真器、音响与PC机相连。3.检验CCS是否与仿真器件连接成功。4.利用CCS软件编写程序,利用TMS320VC5509 DSP的音频单元AIC23产生纯音信号5.对受试者进行纯音听力检测,若受试者接收到信号则按下指示按钮,指示灯亮,否则不进行此操作。6.对受试者的听力检测结果进行分析,计算得到受试者的听力补偿曲线。7.利用听力补偿曲线计算设计一个25阶FIR滤波器8.检测受试者听力弥补是否达到正常值。六纯音信号音频输出程序对程序中加黑部分修改可实现调节频率()与幅值(amp)

7、的功能。#include <csl.h>#include <csl_i2c.h>#include <stdio.h>#include <csl_pll.h>#include <csl_mcbsp.h>#include <math.h>#define CODEC_ADDR 0x1A#define PI 3.1415926Uint16 f0=50000,amp=3000;/f0是频率值,amp是幅值PLL_Config myConfig = 0, /IAI: the PLL locks using the same proce

8、ss that was underway /before the idle mode was entered 1, /IOB: If the PLL indicates a break in the phase lock, /it switches to its bypass mode and restarts the PLL phase-locking /sequence 12, /PLL multiply value; multiply 24 times 1 /Divide by 2 PLL divide value; it can be either PLL divide value /

9、(when PLL is enabled), or Bypass-mode divide value /(PLL in bypass mode, if PLL multiply value is set to 1);unsigned int play_mode; / 0:play 1:record and playMCBSP_Config Mcbsptest;/*McBSP set,we use mcbsp1 to send and recieve the data between DSP and AIC23*/MCBSP_Config Mcbsp1Config = MCBSP_SPCR1_R

10、MK( MCBSP_SPCR1_DLB_OFF, /* DLB = 0,禁止自闭环方式 */ MCBSP_SPCR1_RJUST_LZF, /* RJUST = 2 */ MCBSP_SPCR1_CLKSTP_DISABLE, /* CLKSTP = 0 */ MCBSP_SPCR1_DXENA_ON, /* DXENA = 1 */ 0, /* ABIS = 0 */ MCBSP_SPCR1_RINTM_RRDY, /* RINTM = 0 */ 0, /* RSYNCER = 0 */ MCBSP_SPCR1_RRST_DISABLE /* RRST = 0 */ ), MCBSP_SPC

11、R2_RMK( MCBSP_SPCR2_FREE_NO, /* FREE = 0 */ MCBSP_SPCR2_SOFT_NO, /* SOFT = 0 */ MCBSP_SPCR2_FRST_FSG, /* FRST = 0 */ MCBSP_SPCR2_GRST_CLKG, /* GRST = 0 */ MCBSP_SPCR2_XINTM_XRDY, /* XINTM = 0 */ 0, /* XSYNCER = N/A */ MCBSP_SPCR2_XRST_DISABLE /* XRST = 0 */ ), MCBSP_RCR1_RMK( MCBSP_RCR1_RFRLEN1_OF(1

12、), /* RFRLEN1 = 1 */ MCBSP_RCR1_RWDLEN1_16BIT /* RWDLEN1 = 2 */ ), MCBSP_RCR2_RMK( MCBSP_RCR2_RPHASE_SINGLE, /* RPHASE = 0 */ MCBSP_RCR2_RFRLEN2_OF(0), /* RFRLEN2 = 0 */ MCBSP_RCR2_RWDLEN2_8BIT, /* RWDLEN2 = 0 */ MCBSP_RCR2_RCOMPAND_MSB, /* RCOMPAND = 0 */ MCBSP_RCR2_RFIG_YES, /* RFIG = 0 */ MCBSP_R

13、CR2_RDATDLY_1BIT /* RDATDLY = 1 */ ), MCBSP_XCR1_RMK( MCBSP_XCR1_XFRLEN1_OF(1), /* XFRLEN1 = 1 */ MCBSP_XCR1_XWDLEN1_16BIT /* XWDLEN1 = 2 */ ), MCBSP_XCR2_RMK( MCBSP_XCR2_XPHASE_SINGLE, /* XPHASE = 0 */ MCBSP_XCR2_XFRLEN2_OF(0), /* XFRLEN2 = 0 */ MCBSP_XCR2_XWDLEN2_8BIT, /* XWDLEN2 = 0 */ MCBSP_XCR2

14、_XCOMPAND_MSB, /* XCOMPAND = 0 */ MCBSP_XCR2_XFIG_YES, /* XFIG = 0 */ MCBSP_XCR2_XDATDLY_1BIT /* XDATDLY = 1 */ ), MCBSP_SRGR1_DEFAULT, MCBSP_SRGR2_DEFAULT, MCBSP_MCR1_DEFAULT, MCBSP_MCR2_DEFAULT, MCBSP_PCR_RMK( MCBSP_PCR_IDLEEN_RESET, /* IDLEEN = 0 */ MCBSP_PCR_XIOEN_SP, /* XIOEN = 0 */ MCBSP_PCR_R

15、IOEN_SP, /* RIOEN = 0 */ MCBSP_PCR_FSXM_EXTERNAL, /* FSXM = 0 */ MCBSP_PCR_FSRM_EXTERNAL, /* FSRM = 0 */ 0, /* DXSTAT = N/A */ MCBSP_PCR_CLKXM_INPUT, /* CLKXM = 0 */ MCBSP_PCR_CLKRM_INPUT, /* CLKRM = 0 */ MCBSP_PCR_SCLKME_NO, /* SCLKME = 0 */ MCBSP_PCR_FSXP_ACTIVEHIGH, /* FSXP = 0 */ MCBSP_PCR_FSRP_

16、ACTIVEHIGH, /* FSRP = 1 */ MCBSP_PCR_CLKXP_FALLING, /* CLKXP = 1 */ MCBSP_PCR_CLKRP_RISING /* CLKRP = 1 */ ), MCBSP_RCERA_DEFAULT, MCBSP_RCERB_DEFAULT, MCBSP_RCERC_DEFAULT, MCBSP_RCERD_DEFAULT, MCBSP_RCERE_DEFAULT, MCBSP_RCERF_DEFAULT, MCBSP_RCERG_DEFAULT, MCBSP_RCERH_DEFAULT, MCBSP_XCERA_DEFAULT, M

17、CBSP_XCERB_DEFAULT, MCBSP_XCERC_DEFAULT, MCBSP_XCERD_DEFAULT, MCBSP_XCERE_DEFAULT, MCBSP_XCERF_DEFAULT, MCBSP_XCERG_DEFAULT, MCBSP_XCERH_DEFAULT; I2C_Setup I2Cinit = 0, /* 7 bit address mode */ 0, /* own address - don't care if master */ 84, /* clkout value (Mhz) */ 50, /* a number between 10 an

18、d 400*/ 0, /* number of bits/byte to be received or transmitted (8)*/ 0, /* DLB mode on*/ 1 /* FREE mode of operation on*/;I2C_Config testI2C;Uint16 digital_audio_inteface_format2=0x0e,0x53;Uint16 sample_rate_control2 = 0x10,0x23;Uint16 reset2 =0x1e,0x00;Uint16 power_down_control2 =0x0c,0x03;Uint16

19、analog_aduio_path_control2 =0x08,0x10;Uint16 digital_audio_path_control2 =0x0a,0x05;Uint16 digital_interface_activation2 =0x12,0x01;Uint16 left_line_input_volume_control2 =0x00,0x17;Uint16 right_line_input_volume_control2 =0x02,0x17;Uint16 left_headphone_volume_control2 =0x05,0xFF;Uint16 right_headp

20、hone_volume_control2 = 0x07,0xFF;MCBSP_Handle hMcbsp;Uint16 i2c_status;Uint16 i,temp;void delay(Uint32 k) while(k-);void main(void) Uint16 aic23data = 0;i2c_status = 1;play_mode=0; CSL_init(); PLL_config(&myConfig);/I2C_config(&Config);/I2C_start();/I2C_getConfig(&Config1);/*I2C is undet

21、 reset*/I2C_RSET(I2CMDR,0);delay(100);I2C_RSET(I2CSAR,0x001A);I2C_RSET(I2CMDR,0x0620); I2C_setup(&I2Cinit);I2C_RSET(I2CCLKL,100);I2C_RSET(I2CCLKH,100); I2C_getConfig(&testI2C);hMcbsp = MCBSP_open(MCBSP_PORT1,MCBSP_OPEN_RESET);MCBSP_config(hMcbsp,&Mcbsp1Config);MCBSP_start(hMcbsp, MCBSP_R

22、CV_START | MCBSP_XMIT_START, 0); MCBSP_getConfig(hMcbsp,&Mcbsptest); i2c_status = I2C_write( reset, /pointer to data array 2,/length of data to be transmitted 1,/master or slaver CODEC_ADDR, /slave address to transmit to 1,/transfer mode of operation 30000/time out for bus busy ); delay(1000); i

23、2c_status = I2C_write( power_down_control,/pointer to data array 2,/length of data to be transmitted 1,/master or slaver CODEC_ADDR, /slave address to transmit to 1,/transfer mode of operation 30000/time out for bus busy ); i2c_status = I2C_write( digital_audio_inteface_format,/pointer to data array

24、 2,/length of data to be transmitted 1,/master or slaver CODEC_ADDR, /slave address to transmit to 1,/transfer mode of operation 30000/time out for bus busy );i2c_status = I2C_write( digital_audio_path_control,/pointer to data array 2,/length of data to be transmitted 1,/master or slaver CODEC_ADDR,

25、 /slave address to transmit to 1,/transfer mode of operation 30000/time out for bus busy ); i2c_status = I2C_write( sample_rate_control,/pointer to data array 2,/length of data to be transmitted 1,/master or slaver CODEC_ADDR, /slave address to transmit to 1,/transfer mode of operation 30000/time ou

26、t for bus busy );i2c_status = I2C_write( left_headphone_volume_control,/pointer to data array 2,/length of data to be transmitted 1,/master or slaver CODEC_ADDR, /slave address to transmit to 1,/transfer mode of operation 30000/time out for bus busy );i2c_status = I2C_write( right_headphone_volume_c

27、ontrol,/pointer to data array 2,/length of data to be transmitted 1,/master or slaver CODEC_ADDR, /slave address to transmit to 1,/transfer mode of operation 30000/time out for bus busy ); i2c_status = I2C_write( left_line_input_volume_control,/pointer to data array 2,/length of data to be transmitt

28、ed 1,/master or slaver CODEC_ADDR, /slave address to transmit to 1,/transfer mode of operation 30000/time out for bus busy );i2c_status = I2C_write( right_line_input_volume_control,/pointer to data array 2,/length of data to be transmitted 1,/master or slaver CODEC_ADDR, /slave address to transmit t

29、o 1,/transfer mode of operation 30000/time out for bus busy );i2c_status = I2C_write( digital_interface_activation,/pointer to data array 2,/length of data to be transmitted 1,/master or slaver CODEC_ADDR, /slave address to transmit to 1,/transfer mode of operation 30000/time out for bus busy );whil

30、e(TRUE) aic23data = amp; MCBSP_write16(hMcbsp,aic23data);delay(f0);aic23data =0; MCBSP_write16(hMcbsp,aic23data);delay(f0); void Delay(unsigned int nDelay)unsigned int ii,jj,kk=0;for ( ii=0;ii<nDelay;ii+ )for ( jj=0;jj<2048;jj+ )kk+;七音频放大FIR滤波器#include "myapp.h"#include "csedu.h

31、"#include "scancode.h"#include <math.h>#define FIRNUMBER 15 #define SIGNAL1F 1000 #define SIGNAL2F 4500 #define SAMPLEF 10000#define PI 3.1415926float InputWave();float FIR();float fHnFIRNUMBER=-0.037,-0.039,-0.041,-0.044,-0.049,-0.051, -0.053,0.946,-0.053,-0.051,-0.049,-0.044,-0.041, -0.039,-0.037 ;float fXnFIRNUMBER= 0.0 ;float fInput,fOutput;float fSignal1,fSignal2;float fStepSignal1,fStepSignal2;float f2PI;int i;float fIn256,fOut256;int nIn,nOut;main()nIn=0; nOut=0;f2PI=2*PI;fSignal1=0.0;fSignal2=PI*0.1;fStepSign

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论