ImageVerifierCode 换一换
格式:DOCX , 页数:25 ,大小:258.08KB ,
资源ID:3734649      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/3734649.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于FIR语音信号的滤波课程设计.docx)为本站会员(b****4)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

基于FIR语音信号的滤波课程设计.docx

1、基于FIR语音信号的滤波课程设计1.课程设计目的、内容和要求一、课程设计目的:通过本次课程设计,要求学生对DSP这门课程所学的基础知识、理论加以理解,学以致用。初步培养学生对工程设计的独立工作能力,掌握电子系统设计的一般方法。培养学生的动手能力,以及团队合作能力。二、课程设计内容:通过DSP处理器通过A/D采集音频信号,在CCS软件中分析音频信号的频谱图,使用Matlab设计相应的FIR数字滤波器(低通)并得到滤波器H(z)的系数,然后根据这些系数,编写DSP程序(C语言或汇编)对已采集信号进行处理,最后在CCS软件中得到处理后音频信号的频谱图,比较滤波前后信号的频谱图。三、课程设计要求:1、

2、 使用Matlab对FIR滤波器的设计;2、 编写FIR滤波处理的DSP程序,查看并记录处理后的信号频谱;3、 通过D/A实现数字量到模拟量的转换,回放处理后的声音; 4、 正确、完整的阐述设计和实验结果; 5、 绘制程序的流程图,并文字说明。 2 设计基本原理及软件简介2.1 设计总体方案本题目通过DSP处理器通过A/D采集音频信号,在CCS软件中分析音频信号的频谱图,使用Matlab设计相应的FIR数字滤波器(低通)并得到滤波器H(z)的系数,然后根据这些系数,编写DSP程序(C语言或汇编)对已采集信号进行处理,最后在CCS软件中得到处理后音频信号的频谱图,比较滤波前后信号的频谱图。其中语

3、音信号的采集与回放是采用TLV320AIC23芯片,对语音信号进行A/D,D/A转换,从而实现对语音信号的数字处理与回放。DSP芯片主要是将转化成数字信号的语音信号用DSP算法对其进行处理,并将处理后的信号传送到输出端。如下图1所示为本题目的系统总体设计框图。 图1 系统总体设计框图2.2 FIR滤波器的原理及特点数字滤波器有两类:IIR数字滤波器和FIR数字滤波器。FIR滤波器是有限长单位冲激响应滤波器,在结构上是非递归型的。它可以在幅度特性随意设计的同时,保证精确严格的线性相位。FIR滤波器是有限长单位冲激响应滤波器,它具有以下独特的优点:(1)可以在幅度特性随意设计的同时,保证精确、严格

4、的线性相位;避免被处理的信号产生相位失真,这一特点在宽频带信号处理、阵列信号处理、数据传输等系统中非常重要; (2)由于FIR滤波器的单位脉冲响应h(n)是有限长序列,因此FIR滤波器没有不稳定的问题; (3)由于FIR滤波器一般为非递归的结构,因此在有限精度运算下,不会出现递归结构中极性震荡等不稳定现象,误差较小。FIR滤波器的数学表达式为: (2-1)式中:N为FIR滤波器的抽头数;x(n)为第n时刻的输入样本;h(i)为FIR滤波器第i抽头系数。其相应的z变换为如公式2-2所示,其中z-i为N-1阶多项式 (2-2) 普通的直接型FIR滤波器结构如下图2所示:图2 FIR滤波器的直接型结

5、构2.3 窗函数的设计原理 FIR滤波器通常采用窗函数方法来设计。窗设计的基本思想是,首先选择一个适当的理想选频滤波器(它总是具有一个非因果,无限持续时间脉冲响应),然后街区(加窗)它的脉冲响应得到线性相位和因果FIR滤波器。我们用表示理想的选频滤波器,它在通带上具有单位增益和线性相位,在阻带上具有零响应。 为了从hd(n)得到一个FIR滤波器,必须同时在两边截取hd(n)。而要得到一个因果的线性相位滤波器,它的hd(n)长度为N,必须满足公式2-3 (2-3) h(n)可以看做是hd(n)与窗函数w(n)的乘积,如公式2-4所示 h(n)= hd(n)w(n) (2-4)这种操作叫做加窗,其

6、中根据w(n)的不同定义,可以得到不同的窗结构在频域中,因果FIR滤波器响应由和窗响应的周期卷积得到,公式如下: = (2-5) 常用的窗函数有矩形窗、三角形(Bartlett)窗、汉宁(Hanning)窗、哈明(Hamming)窗、布莱克曼(Blackman)窗、凯泽(Kaiser)窗等。2.4 设计软件简介: 1、MATLAB介绍:MATLAB是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。MATLAB应用非常之广泛。 MATLAB的基本数据单位是矩阵,它的指令表达

7、式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完成相同的事情简捷得多,并且MATLAB也吸收了像Maple等软件的优点,使MATLAB成为一个强大的数学软件。在新的版本中也加入了对C,FORTRAN,C+,JAVA的支持。可以直接调用,用户也可以将自己编写的实用程序导入到MATLAB函数库中方便自己以后调用,此外许多的MATLAB爱好者都编写了一些经典的程序,用户直接进行下载就可以用。 2、CCS介绍:CCS是一种针对TMS320系列DSP的集成开发环境,在Windows操作系统下,采用图形接口界面,提供环境配置、源文件编辑、程序调试、跟踪分析等工

8、具。CCS有两种工作模式:即软件仿真器模式和硬件在线编程模式,其软件仿真器模式可以脱离DSP芯片,在PC机上模拟DSP的指令集和工作机制用于前期算法的实现和调试;其硬件在线编程模式,可以实时运行在DSP芯片上,与硬件开发板组合在线编程和调试应用程序。CCS功能十分强大,其主要功能如下:1、具有集成可视化代码编程界面,用户可通过其界面编写C、汇编、CMD文件等;2、含有集成代码生成工具包括汇编器,和链接器等将代码的编辑、编译、链接、和调试等诸多功能集成到一个软件中;3、高性能编辑器支持汇编文件的动态语法加亮显示使用户很容易阅读代码,发现语法错误;4、提供GEL工具,利用GEL扩展语言,用户可以编

9、写自己的控制面板/菜单设置GEL菜单选项,方便直观的修改变量配置参数等。3 设计的步骤和过程3.1 语音信号的录放在选择模转换芯片型号时,需要考虑A/D的转换精度、采样速率以及芯片的工作电压和接口电压。声音信号经ADC转换后得到的数字信号,输入到数据缓冲区中,TMS320F2812从中提取数据,在系统内部由各种处理算法将录进的音频信号进行快速运算和处理,经处理后的数字信号再输入到输出缓冲区中,经DAC转换器还原成模拟的声音信号。根据这次设计要求,选择的芯片是TI公司的TLV320AIC23芯片。利用缓冲区的目的是进行语音信号的实时处理,系统中各模块是并行运行的,一部分信号正在ADC中进行转换,

10、而另一部分信号则在DSP处理器中进行算法处理,整个系统是以流水线的方式进行工作的。通过实验箱和仿真软件CCS2.0编程来实现语音的录放,并采集语音信号。通过采集得到一组输入信号。3.2 FIR滤波器的Matlab设计fir1就是采用经典窗函数法设计线性相位FIR数字滤波器的函数,且具有标准低通,带通,高通,带阻等类型。函数调用格式为:b=fir1(n,wn,ftype,window) (3-1)式中,n为FIR滤波器的阶数,对于高通,带阻滤波器,n需取偶数;wn为滤波器截止频率,范围为01(归一化频率)。常用的窗函数有矩形窗、三角形(Bartlett)窗、汉宁(Hanning)窗、哈明(Ham

11、ming)窗、布莱克曼(Blackman)窗、凯泽(Kaiser)窗等。 本课程设计采用的是用矩形窗来设计低通滤波器。其具体操作流程为:1、把Hd()展成Fs,得Hd(n);2、对Hd(n)自然截短到所需的长度;3、将截短后Hd(n)的右移M个采样间隔,得h(n);4、将h(n)乘以合适的窗口,即得所要滤波器的冲击响应,窗函数以n=M对称。利用所求得的单位抽样响应,即可用硬件构成滤波器的转移函数H(z)。如下公式W()为矩形窗频谱函数,:w()为矩形窗幅度函数存在如下关系;W()=w()e 式中:w()=sin()/sin() (3-2)3.3 FIR滤波器的DSP实现方案图3 DSP系统构成

12、的滤波器如上图3所示DSP系统构成的滤波器,其中的输入信号可以是麦克风输出的语音信号、电话线的已调数据信号,可以是编码后在数字链路上传输或存储在计算机里的摄像机图像信号等输入号。首先进行带限滤波和抽样,然后进行A/D转换成数字比特流,由耐奎斯特样定理可知为了保证信息完整抽样频率至少是输入带限信号最高频率的2倍。之后输入DSP芯片的是以抽样形式表示的数字信号,DSP芯片对输入信号行处理,如进行一系列的累乘累加操作,最后经过处理后的数字样值经D/A换成为模拟样值再经过内插和平滑滤波就得到了连续的模拟波形。FIR滤波器的DSP软件实现方法有两种,一种是用C语言实现,一种是用汇编语言实现,本次课程设计

13、采用用C语言来实现,其软件流程图如下图4所示图4 C语言程序流程图3.4 TMS320F2812芯片介绍TMS320F2812是TI公司的一款用于控制的高性能、高性价比的32位定点DSP芯片。该芯片兼容TMS320LF2407指令系统最高可在150MHz主频下工作,并带有18K16位0等待周期片上SRAM和128K16位片上FLASH。其片上外设主要包括28路12位ADC(最快80ns转换时间)、2路SCI、1路SPI、1路McBSP、1路eCAN等,并带有两个事件管理模块(EVA、EVB),分别包括6路PWMCMP、2路QEP、3路CAP、2路16位定时器(或TxPWMTxCMP)。另外,该

14、器件还有3个独立的32位CPU定时器,以及多达56个独立编程的GPIO引脚,可外扩大于1M16位程序和数据存储器。TMS320F2812采用哈佛总线结构,具有密码保护机制,可进行双1616位乘加和3232位乘法加操作,因而可兼顾控制和快速运算的双重功能。 TMS320F2812芯片具有如下功能;(1)在一个指令周期内可完成一次乘法和一次加法;(2)程序和数据空间分离,可以同时访问指令和数据; (3)片内具有快速RAM,通常可通过独立的数据总线在两块中同时访问;(4)具有低开销或大开销循环及跳转的硬件支持; (5)具有在单周期内操作的多个硬件地址产生器可以并行执行多个操作;(6)支持流水线操作,

15、使取值、译码、和执行等操作可重叠执行3.5 TLV320AIC23芯片介绍TLV320AIC23是TI公司推出的一款高性能立体声音频编解码器,内置耳机输出放大器,支持mic和line in二选一的输入方式。输入和输出都具有可编程的增益调节功能。TLV320AIC23的模/数转换器(ADC)和数/模转换器(DAC)集成在芯片内部采用先进的-过采样技术可以在8kHz至96kHz的采样率下提供16bit、20bit、24bit和32bit的采样数据。ADC和DAC的输出信噪比分别可达90dB和100dB。同时。TLV320AIC23还具有很低的功耗(回放模式为23mW。节电模式为15w)。上述优点使

16、得TLV320AIC23成为一款非常理想的音频编解码器,与TI的DSP系列相配合更是相得益彰。4.程序调试结果及结果分析4.1 程序调试结果启动CCS,输入实验程序代码,进行编译并加载到DSP中。采用单步运行或执行到光标处,或全速运行,并打开波形观察窗口,跟踪观察其执行过程和滤波效果。先打开项目,然后编译、加载实验程序,然后点击菜单debugGo main就进入预先编译的实验程序然后打开波形观察窗口,路径是ViewGraphTime/Frequence,将显示类型,图形名称,起始地址,抽样点数,数据类型等分别进行设置如下图5所示。其中PA指原始信号的时域波形,PB指滤波后的时域波形,128指抽

17、样点数,程序运行后的波形如下图6所示。同理要观察频域的原始波形和滤波后的波形,也按上述步骤操作,其波形观察窗口如下图7所示,其中PC指原始的时域信号的经过傅里叶变换所得到的频域波形,PD指滤波后的时域信号的经过傅里叶变换所得到的频域波形,其波形输出图如图8所示。其中采样频率fs = 8000Hz,截止频率fstop = 3000Hz为低通滤器滤除高频部分。图5 设置时域各项参数图6 原始信号时域波形及时域滤波后波形图7 设置频域各项参数图8 原始信号频域波形及频域滤波后波形4.2 结果分析 本次课程设计所用的FIR低通通滤波器,其目的就是要滤除高频部分。其中采样频率fs = 8000Hz,截止

18、频率fstop = 3000Hz。图6是原始语音信号时域波形及时域滤波后的波形,其中上一部分是原始语音信号的时域波形PA,下面的部分是原始语音信号经低通滤波器后时域的波形PB,从图6可以看出幅值较高的部分已经滤去基本达到了滤波效果。图8是原始语音信号频域波形及频域滤波后的波形,上面的部分为原始语音信号时域的波形经过FFT后频域的波形PC,下面的部分为原始语音信号滤波后的时域信号经过FFT后的频域波形PD。从图8可以看出经过频域滤波后,高频部分已经明显滤去,达到了滤波效果。实验证明:未进行FIR滤波时, 声音中含有的高频杂音将明显地影响听觉效果。但是在进行滤波以后, 高频杂音去掉了, 声音质量明

19、显的改善了。因此, 在实际应用中对语音信号进行FIR滤波, 可以很好的将噪音部分去掉。5.结论5.1 设计过程所遇到的困难及解决办法为期两周的课程设计很快就结束了,通过本次课程设计,使我受益匪浅。在本次实习过程中的确遇到了不少问题。这是我第一次用CCS这个软件。刚开始,对于这软件并不是很熟悉,所以导致花费了很多时间用在熟悉这个软件上。这次的课程设计非常重要,难度也比较大。它要求的数学知识多,包括高等代数、数值分析、概率统计、随机过程等。所以设计之初,我受困于基础不扎实,举步维艰,于是我用了三天时间把要用到的一些知识重新复习了一遍,才开始着手于设计。本设计是一个基于TMS320F2812的语音采

20、集硬件设计方案,叙述和分析了其中的几个主要硬件模块,包括信号采集A/D、D/A模块、存储器模块、和电源模块。同时对各个模块与DSP芯片之间的接口电路进行了详细的论述和设计。在设计的过程中的确遇到了很多问题,如仿真软件CCS的具体操作与使用方法等等,但最终通过查阅资料、请教同学等途径使问题得以解决。本次课程设计,让我对抽象的理论知识,有了更为深刻的理解。在解决困难的过程中让我获得了许多专业方面的知识,拓展了视野,提高了理论水平和实践动手能力,激发了我们的探索精神。当然在实习的过程中,比需要强调团队精神,一个人的精力毕竟是有限的,遇到不懂的问题要懂得礼贤下士,才能爬上知识的高峰。5.2 结论 本次

21、课程设计把理论应用到了实践中,同时通过设计,也加深了自己对理论知识的理解和掌握,在解决困难的过程中,获得了许多专业方面的知识,拓展了视野。提高了理论水平和实际的动手能力,学会了解决问题的方法,激发了我们的探索精神。这样的课程设计是很好的锻炼机会,希望老师以后也多安排一些这些方面的实习任务,通过实验设计使我深入了解到课程设计在大学学习的重要性,课程设计增强了我们的实践动手能力,也为大四下学期的毕业设计提供了宝贵的经验。参考文献1 顾卫钢. 手把手教你学DSP-基于TMS320x281x 北京航空航天大学出版社,2011.2 苏奎峰等. TMS320X281x DSP原理及C程序开发.北京航空航天

22、大学出版社,2008.3 苏奎峰等. TMS320F2812原理与开发. 电子工业出版社,2005.4 万山明. TMS320F2812/2810原理及应用实例. 北京航空航天大学出版社,2007.5 TI公司著,胡广书等编译. TMS320C28X系列DSP的5CPU与外设.清华大学出版社,2005.6 TI公司著,胡广书等编译. TMS320C28X系列DSP指令和编程指南.清华大学出版 社,2005. 附录 程序清单#include math.h#include DSP281x_Device.h / DSP281x Headerfile Include File#include DSP2

23、81x_Examples.h / DSP281x Examples Include FileUint16 read_data2,read_data1; /MCBSP 接收数据变量Uint16 write_data2,write_data1; /MCBSP 发送数据变量Uint16 readaudio1128,readaudio2128; /MCBSP 接收数据变量数组Uint16 PA128; 原始语音信号的时域波形Uint16 PB128; 原始语音信号的时域滤波后的波形Uint16 PC128; 原始语音信号的频域波形Uint16 PD128; 原始语音信号的频域滤波后的波形double

24、npass,h51,u,y,xmid51;int m=50;void spi_init(void); /SPI初始化Cvoid aic23_init(void); /初始化TLV320AIC23,设置内部寄存器void mcbsp_init(void); /MCBSP初始化void mcbsp_write_rdy(Uint16 out_data1,Uint16 out_data2); /MCBSP发送一个数据32位void mcbsp_read_rdy(void); /MCBSP接收一个数据32位void Delay(int numbers); /延迟void Delay0(Uint16 nu

25、mbers);void spi_init() SpiaRegs.SPICCR.bit.SPISWRESET=0; / Reset SPI SpiaRegs.SPICCR.all =0x004F; / Reset on, falling edge, 16-bit char bits SpiaRegs.SPICTL.all =0x0006; / Enable master mode, normal phase, / enable talk, and SPI int disabled. SpiaRegs.SPISTS.all=0x0080; SpiaRegs.SPIBRR =0x0063; / Ba

26、ud rate,100KHZ; SpiaRegs.SPIPRI.bit.FREE = 1; / Set so breakpoints dont disturb xmission SpiaRegs.SPICCR.bit.SPISWRESET=1; / Enable SPI void aic23_init(void) SpiaRegs.SPITXBUF=0x1e00; /REG10 RESET AIC23 asm( nop); /Address (bits 15-9) 0001111 Delay0(10); /RES (bits 8-0) 000000000 /-0001 1110 0000 00

27、00 SpiaRegs.SPITXBUF=0x0117; /REG0 Left line input channel volume control asm( nop); /Address (bits 15-9) 0000000 Delay0(10); /LRS (bits 8) 1 Left/right line simultaneous volume/mute update Enabled /LIM (bits 7) 0 Left line input mute 0 = Normal /XX (bits 6-5) 00 Reserved /LIV4:0 (bits 4-0) 10111 Le

28、ft line input volume control (10111 = 0 dB default) /-0000 0001 0001 0111 SpiaRegs.SPITXBUF=0x0317; /REG1 Right Line Input Channel Volume Control asm( nop); /Address (bits 15-9) 0000001 Delay0(10); /RRS (bits 8) 1 Left/right line simultaneous volume/mute update Enabled /RIM (bits 7) 0 Left line inpu

29、t mute 0 = Normal /XX (bits 6-5) 00 Reserved /RIV4:0 (bits 4-0) 10111 Left line input volume control (10111 = 0 dB default) /-0000 0011 0001 0111 SpiaRegs.SPITXBUF=0x05f9; /REG2 Left Channel Headphone Volume Control asm( nop); /Address (bits 15-9) 0000010 Delay0(10); /LRS (bits 8) 1 Left/right headp

30、hone channel simultaneous volume/mute update 1 = Enabled /LZC (bits 7) 1 Left-channel zero-cross detect 0 = Off /LHV6:0 (bits 6-0) 1111001 Left Headphone volume control (1111001 = 0 dB default) /-0000 0101 1111 1001 SpiaRegs.SPITXBUF=0x07f9; /REG3 Right Channel Headphone Volume Control asm( nop); /A

31、ddress (bits 15-9) 0000011 Delay0(10); /RLS (bits 8) 1 Left/right headphone channel simultaneous volume/mute update 1 = Enabled /RZC (bits 7) 1 Left-channel zero-cross detect 0 = Off /RHV6:0 (bits 6-0) 1111001 Left Headphone volume control (1111001 = 0 dB default) /-0000 0111 1111 1001 / SpiaRegs.SPITXBUF=0x0810; /选择线性输入 SpiaRegs.SPITXBUF=0x0814; /选择麦克风输入 asm( nop); /REG4 Analog Audio Path Control Delay0(10); /Ad

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1