《基于TMS320VC5509_DSP的语音信号的FIR滤波器课程设计报告书(24页).doc》由会员分享,可在线阅读,更多相关《基于TMS320VC5509_DSP的语音信号的FIR滤波器课程设计报告书(24页).doc(25页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、-基于TMS320VC5509_DSP的语音信号的FIR滤波器课程设计报告书-第 20 页 DSP原理与应用 课程设计报告书课题名称基于TMS320VC5509 DSP的语音信号的FIR滤波器姓 名学 号 院、系、部专 业指导教师毕业设计(论文)原创性声明和使用授权说明原创性声明本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得 及其它教育机构的学位或学历而使用过的材料。对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了
2、谢意。作 者 签 名: 日 期: 指导教师签名: 日期: 使用授权说明本人完全了解 大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。作者签名: 日 期: 学位论文原创性声明本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。对本文的研究做出重要贡
3、献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律后果由本人承担。作者签名: 日期: 年 月 日学位论文版权使用授权书本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权 大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。涉密论文按学校规定处理。作者签名:日期: 年 月 日导师签名: 日期: 年 月 日指导教师评阅书指导教师评价:一、撰写(设计)过程1、学生在论文(设计)过程中的治学态度、工作精神 优 良 中 及格 不
4、及格2、学生掌握专业知识、技能的扎实程度 优 良 中 及格 不及格3、学生综合运用所学知识和专业技能分析和解决问题的能力 优 良 中 及格 不及格4、研究方法的科学性;技术线路的可行性;设计方案的合理性 优 良 中 及格 不及格5、完成毕业论文(设计)期间的出勤情况 优 良 中 及格 不及格二、论文(设计)质量1、论文(设计)的整体结构是否符合撰写规范? 优 良 中 及格 不及格2、是否完成指定的论文(设计)任务(包括装订及附件)? 优 良 中 及格 不及格三、论文(设计)水平1、论文(设计)的理论意义或对解决实际问题的指导意义 优 良 中 及格 不及格2、论文的观念是否有新意?设计是否有创意
5、? 优 良 中 及格 不及格3、论文(设计说明书)所体现的整体水平 优 良 中 及格 不及格建议成绩: 优 良 中 及格 不及格(在所选等级前的内画“”)指导教师: (签名) 单位: (盖章)年 月 日评阅教师评阅书评阅教师评价:一、论文(设计)质量1、论文(设计)的整体结构是否符合撰写规范? 优 良 中 及格 不及格2、是否完成指定的论文(设计)任务(包括装订及附件)? 优 良 中 及格 不及格二、论文(设计)水平1、论文(设计)的理论意义或对解决实际问题的指导意义 优 良 中 及格 不及格2、论文的观念是否有新意?设计是否有创意? 优 良 中 及格 不及格3、论文(设计说明书)所体现的整体
6、水平 优 良 中 及格 不及格建议成绩: 优 良 中 及格 不及格(在所选等级前的内画“”)评阅教师: (签名) 单位: (盖章)年 月 日教研室(或答辩小组)及教学系意见教研室(或答辩小组)评价:一、答辩过程1、毕业论文(设计)的基本要点和见解的叙述情况 优 良 中 及格 不及格2、对答辩问题的反应、理解、表达情况 优 良 中 及格 不及格3、学生答辩过程中的精神状态 优 良 中 及格 不及格二、论文(设计)质量1、论文(设计)的整体结构是否符合撰写规范? 优 良 中 及格 不及格2、是否完成指定的论文(设计)任务(包括装订及附件)? 优 良 中 及格 不及格三、论文(设计)水平1、论文(设
7、计)的理论意义或对解决实际问题的指导意义 优 良 中 及格 不及格2、论文的观念是否有新意?设计是否有创意? 优 良 中 及格 不及格3、论文(设计说明书)所体现的整体水平 优 良 中 及格 不及格评定成绩: 优 良 中 及格 不及格(在所选等级前的内画“”)教研室主任(或答辩小组组长): (签名)年 月 日教学系意见:系主任: (签名)年 月 日基于TMS320VC5509 DSP的语音信号的FIR滤波器设计一、实践的目的和要求 1.熟悉ICETEK-VC5509-A板上语音codec芯片TLV320AIC23的设计和程序控制原理。2.熟悉FIR滤波器工作原理及编程。3.掌握使用TI的算法库
8、dsplib提高程序运行效率的方法。4.学习使用CCS图形观察窗口观察和分析语音波形及其频谱。二、实践原理: 在数字信号处理中,滤波占有极其重要的地位。数字滤波是语音处理、图像处理、模式识别、频谱分析等应用中的基本处理算法。用DSP芯片实现数字滤波除了具有稳定性好、精确度高、不受环境影响等优点外,还具有灵活性好等特点。 VC5509引脚图过渡带宽度=阻带边缘频宽-通带边缘频率采样频率:f1=通带边缘频率+(过渡带宽度)/2理想低通滤波器脉冲响应:h1n=sin(n1)/n/根据要求,选择布莱克曼窗,窗函数长度为:N=5.98fs/过渡带宽度选择N=30wn=0.42+0.5cos(2n/30)
9、+0.8cos(4n/24)滤波器脉冲响应为:hn=h1nwn|n|12根据上面计算,各式算出hn,然后将脉冲响应值移位为因果序列。完成的滤波器的差分方程为:yn=-0.001xn-2-0.002xn-3-0.002xn-4+0.01xn-5-0.009xn-6-0.018xn-7-0.049xn-8-0.02xn-9+0.11xn-10+0.28xn-11+0.64xn-12+0.28xn-13-0.11xn-14-0.02xn-15+0.049xn-16-0.018xn-17-0.009xn-18+0.01n-19-0.002xn-20-0.002xn-21+0.001xn-22开始初始化
10、:EMIF、CPU频率、AIC23调用AIC23_Mixer子程序处理音频数据输入/输出开始初始化语音缓冲区和工作变量等待McBSP通道0传送结束读取语音数据保存于左声道缓冲区调用fir2计算FIR滤波输出滤波结果保存于右声道缓冲区原声音送左声道,滤波结果送右声道,输出到McBSP0三、实践步骤1.首先自己参照指导书完语音信号的FIR滤波实验,认真阅读实验中的源程序,深刻理解语音信号FIR滤波的原理及具体实现方法,包括含噪语音信号的读取,滤波后信号的输出,语音编解码器的设置(AIC23),重点理解FIR滤波器的实现(循环寻找的实现)2.语音采集的采集与分析 (1)录制语音,并命名为“e”,保存
11、在相应的位置(桌面)。(2)用MATLAB对原始语音信号进行分析,画出它的时域波形和频谱。程序如下:fs=22050;x,fs,Nbits=wavread(C:Documents and SettingsOwner桌面e);t=0:1/22050:(length(x)-1)/22050;sound(x,fs) ; %对加载的语音信号进行回放figure(1)plot(x) %做原始语音信号的时域图形title(原始语音信号);xlabel(time n);ylabel(fuzhi n);figure(2)freqz(x) %绘制原始语音信号的频率响应图title(频率响应图)n=length(
12、x); %求出语音信号的长度y1=fft(x,n) ; %傅里叶变换y2=fftshift(y1); %对频谱图进行平移f=0:fs/n:fs*(n-1)/n; %得出频点figure(3) subplot(2,1,1);plot(abs(y2) %做原始语音信号的FFT频谱图title(原始语音信号FFT频谱)subplot(2,1,2);plot(f,abs(y2); %绘制原始语音信号的频谱图title(原始语音信号频谱)%加噪声k=1:1:n; %定义k 值,噪声与原始语音长度一致c1=100000*sin(2*pi*5000*k); %噪声信号的函数z=x+c1; %噪音与原始信号叠
13、加wavwrite(z,8000,16,C:Documents and SettingsOwner桌面e2); %得到含噪语音s=length(c1);y3=fft(z,s); %对叠加信号进行频谱变换y4=fftshift(y3); %对频谱图平移f=0:fs/s:fs*(s-1)/s; %得出频点figure(4)plot(z) %做原始语音信号的时域图形title(加噪语音信号);xlabel(time n);ylabel(fuzhi n);figure(5)plot(f,abs(y4); %绘出加噪语音频谱图axis(0 8000 0 100);title(含噪语音信号的频谱);fig
14、ure(6)subplot(2,1,1);plot(f,abs(y2) %做原始语音信号的FFT频谱图title(原始语音信号FFT频谱)subplot(2,1,2);plot(f,abs(y4) %做加噪语音信号的FFT频谱图title(加噪语音信号频谱) 原始语音信号 加噪语音信号 原始语音信号FFT频谱 含噪语音信号频谱 原始语音信号FFT频谱 频率响应图3. 设计一定参数的滤波器使用fir2函数设计一个31阶低通滤波器,信号的采样频率为8000Hz,滤波器的通带截止频率为2900Hz,阻带截止频率为3300Hz。在函数中,其截止频率均用归一化频率表示。归一化频率的计算方法:f=实际频率
15、/(采样频率/2),则将截止频率归一化后的截止频率值为0.725、0.825用fir2函数实现的格式:f = 0 0.725 0.825 1 ; m = 1 1 0 0 ; b=fir2(30,f,m);b= -0.0005,0.0004,0.0003,-0.0018,0.0039,-0.0045,0.0009,0.0086,-0.0210,0.0279,-0.0173,-0.0191,0.0793,-0.1486,0.2043,0.7744,0.2043,-0.1486,0.0793,-0.0191,-0.0173,0.0279,-0.0210,0.0086,0.0009,-0.0045,0
16、.0039,-0.0018,0.0003,0.0004,-0.0005Audio滤波程序如下:#include myapp.h#include ICETEK-VC5509-EDU.h#include scancode.h#include #define FIRNUMBER 31#define SIGNAL1F 2900#define SIGNAL2F 3300#define SAMPLEF 8000#define PI 3.1415926float InputWave();float FIR();float fHnFIRNUMBER=-0.0005,0.0004,0.0003,-0.0018,
17、0.0039,-0.0045,0.0009,0.0086,-0.0210,0.0279,-0.0173,-0.0191,0.0793,-0.1486,0.2043,0.7744,0.2043,-0.1486,0.0793,-0.0191,-0.0173,0.0279,-0.0210,0.0086,0.0009,-0.0045,0.0039,-0.0018,0.0003,0.0004,-0.0005;float fXnFIRNUMBER= 0.0 ;float fInput,fOutput;float fSignal1,fSignal2;float fStepSignal1,fStepSigna
18、l2;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;fStepSignal1=2*PI/30;fStepSignal2=2*PI*1.4;while ( 1 )fInput=InputWave();fInnIn=fInput;nIn+; nIn%=256;fOutput=FIR();fOutnOut=fOutput;nOut+;/* break point */if ( nOut=256 )nOut=0;float Inp
19、utWave()for ( i=FIRNUMBER-1;i0;i- )fXni=fXni-1;fXn0=sin(double)fSignal1)+cos(double)fSignal2)/6.0;fSignal1+=fStepSignal1; if ( fSignal1=f2PI )fSignal1-=f2PI;fSignal2+=fStepSignal2;if ( fSignal2=f2PI )fSignal2-=f2PI;return(fXn0);float FIR()float fSum;fSum=0;for ( i=0;i spcr1, 0); Write(pMCBSP0 - spcr
20、2, 0); / Config frame parameters (32 bit, single phase, no delay) Write(pMCBSP0 - xcr1, XWDLEN1_32); Write(pMCBSP0 - xcr2, XPHASE_SINGLE | XDATDLY_0); Write(pMCBSP0 - rcr1, RWDLEN1_32); Write(pMCBSP0 - rcr2, RPHASE_SINGLE | RDATDLY_0); / Disable int frame generation and enable slave w/ext frame sign
21、als on FSX / Frame sync is active high, data clocked on rising edge of clkx Write(pMCBSP0 - pcr, PCR_CLKXP); / Bring transmitter and receiver out of reset SetMask(pMCBSP0 - spcr2, SPCR2_XRST); SetMask(pMCBSP0 - spcr1, SPCR1_RRST); void AIC23_Init() I2C_Init(); / Reset the AIC23 and turn on all power
22、 AIC23_Write(AIC23_RESET_REG, 0); AIC23_Write(AIC23_POWER_DOWN_CTL, 0); AIC23_Write(AIC23_ANALOG_AUDIO_CTL, ANAPCTL_DAC | ANAPCTL_INSEL);/ 使用麦克风音源 AIC23_Write(AIC23_DIGITAL_AUDIO_CTL, 0); / Turn on volume for line inputs AIC23_Write(AIC23_LT_LINE_CTL,0x000); AIC23_Write(AIC23_RT_LINE_CTL,0x000); / C
23、onfigure the AIC23 for master mode, 44.1KHz stereo, 16 bit samples / Use 12MHz USB clock AIC23_Write(AIC23_DIGITAL_IF_FORMAT, DIGIF_FMT_MS | DIGIF_FMT_IWL_16 | DIGIF_FMT_FOR_DSP); AIC23_Write(AIC23_SAMPLE_RATE_CTL, SRC_SR_44 | SRC_BOSR | SRC_MO); / Turn on headphone volume and digital interface AIC2
24、3_Write(AIC23_LT_HP_CTL, 0x07f); / 0x79 for speakers AIC23_Write(AIC23_RT_HP_CTL, 0x07f); AIC23_Write(AIC23_DIG_IF_ACTIVATE, DIGIFACT_ACT); / Set McBSP0 to be transmit slave McBSP0_InitSlave();void AIC23_Disable() PC55XX_MCSP pMCBSP0 = (PC55XX_MCSP)C55XX_MSP0_ADDR; I2C_Disable(); / Put the MCBSP in
25、reset Write(pMCBSP0 - spcr1, 0); Write(pMCBSP0 - spcr2, 0);#define AUTIODATALEFT 0x0d000#define AUTIODATARIGHT 0x17000int *pAudioLeft,*pAudioRight;int www=0; void AIC23_Mixer() PC55XX_MCSP pMCBSP0 = (PC55XX_MCSP)C55XX_MSP0_ADDR; int left, right; int *pl,*pr,nAudioCount; int i;pAudioLeft=pl=(int *)AU
26、TIODATALEFT;pAudioRight=pr=(int *)AUTIODATARIGHT;nAudioCount=0; for ( i=0;iNX;i+) xi=0; for ( i=0;i spcr2, SPCR2_XRDY);/ 等待数据传输完成 (*pl)=left = Read(pMCBSP0 - ddr1);/ 读入左声道数据 right = Read(pMCBSP0 - ddr2);/ 读入右声道数据 xNX-1=left/16;/ 防止滤波时数据溢出 fir2(x, h, r, db, NX, NH);/ 调用滤波程序计算当前输出(*pr)=rNX-1;/ 数组r的最后一
27、个单元为当前输出 Write(pMCBSP0 - dxr1, left);/ 将原始数据送左声道输出 /Write(pMCBSP0 - dxr1, rNX-1);/ 将原始数据送左声道输出 Write(pMCBSP0 - dxr2, rNX-1);/ 将经过滤波后数据送右声道输出 nAudioCount+; pl+; pr+;/ 循环使用缓冲区 if ( nAudioCount=1024 ) nAudioCount=0;/ break point pl=pAudioLeft; pr=pAudioRight; for ( i=0;iNX-1;i+ )/ 重新调整输入序列(供fir2使用) xi=
28、xi+1;语音信号FIR滤波: 状态1状态2四 、心得体会通过一星期的课程设计,我了解了FIR滤波器的原理和实验的内容以及需要注意的地方,了解了基本的过程。通过硬件和软件的链接完成本次实验。进一步认识了CCStudio软件的使用,了解了各种窗函数对滤波器特性的影响。这一学期的理论知识学习,加上这次课程设计,我对DSP这门学科有了更为深刻的了解,掌握了DSP的硬件操作、软件分析和编程技巧。对以后的实际工作的应用提供了有力的基础。总之,只有大量的实践才能更深层次的了解这类软件,熟练的运用其功能。对数字信号的处理功能,硬软件相结合,语音的压缩、去噪和编码等等方面都有了很深的了解。相信本次课程设计,无
29、论是对我以后的学习,还是工作等方面都有一个很大的帮助。因此,本次课程设计我受益匪浅。参考文献:1.教 材:自编教材,DSP原理实验及课程设计指导书2.参考书:DSP技术的发展与应用,彭启琮编著,高等教育出版社,2002年第1版DSP控制器原理及应用,宁改娣、杨拴科编著,科学出版社,2002年第1版。学位论文原创性声明本人郑重声明:所呈交的学位论文,是本人在导师的指导下进行的研究工作所取得的成果。尽我所知,除文中已经特别注明引用的内容和致谢的地方外,本论文不包含任何其他个人或集体已经发表或撰写过的研究成果。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式注明并表示感谢。本人完全意识到本声明的法律结果由本人承担。学位论文作者(本人签名): 年 月 日学位论文出版授权书本人及导师完全同意