DSP课程设计-基于FIR的语音信号滤波

上传人:ni****g 文档编号:431494307 上传时间:2022-11-10 格式:DOC 页数:22 大小:506.50KB
返回 下载 相关 举报
DSP课程设计-基于FIR的语音信号滤波_第1页
第1页 / 共22页
DSP课程设计-基于FIR的语音信号滤波_第2页
第2页 / 共22页
DSP课程设计-基于FIR的语音信号滤波_第3页
第3页 / 共22页
DSP课程设计-基于FIR的语音信号滤波_第4页
第4页 / 共22页
DSP课程设计-基于FIR的语音信号滤波_第5页
第5页 / 共22页
点击查看更多>>
资源描述

《DSP课程设计-基于FIR的语音信号滤波》由会员分享,可在线阅读,更多相关《DSP课程设计-基于FIR的语音信号滤波(22页珍藏版)》请在金锄头文库上搜索。

1、 基于FIR的语音信号滤波目录1 绪论11.1背景及目的11.2 设计步骤11.3 设计方案22 总体设计32.1 滤波器的原理及特点32.2 MATLAB软件介绍52.3 FIR滤波器的Matlab设计63 硬件设计73.1 语音处理的总框图设计73.2 硬件模块的设计73.2.1 音频转换模块73.2.2 存储器和数据通信模块83.3 TMS320VC5402芯片的介绍83.4 主要硬件接口及实现93.4.1 TMS320VC5402与A/D、D/A芯片的接口93.5 电源电路设计104 软件部分114.1 软件设计流程图115 程序调试结果145.1 调试结果146 总结心得17参考文献

2、18附录 源程序191 绪论1.1背景及目的随着微处理技术的快速发展,微处理器芯片的集成度从最早的几千个晶体管发展到现在的上亿个晶体管,字长从4位提高到了64位,正是这些技术的飞速发展引发了一轮又一轮的信息产业革命,而人们的生活、学习和工作方式也在以计算机技术、通信技术为核心的信息技术的影响下发生着前所未有的改变。然而在这次设计中,比较核心的是数字滤波器,数字滤波器是一种用来过滤时间离散信号的数字系统,通过对抽样数据进行数学处理来达到频域。滤波的目的。根据其单位冲激响应函数的时域特性可分为两类:无限冲激响应(IIR)滤波器和有限冲激响应(FIR)滤波器。与IIR滤波器相比,FIR滤波器只有零点

3、,除原点外在z平面上没有极点,因此总是稳定的和可实现的;更重要的是,FIR滤波器在满足一定的对称条件下,可以获得严格的线性相位特性,这一点是IIR滤波器难以实现的。因此。它在高保真的信号处理如数字音频、图像处理、数据传输、生物医学等领域得到广泛应用。对于本设计主要是利用一个DSP芯片来进行语音采集系统的设计,而数字信号处理技术的发展使得采用数字化的方法实时的处理语音信号成为可能。早期的语音信号处理均是采用模拟处理,对声音信号最常用的滤波、相关、谱分析等运算,部分采用模拟电路来实现的。这种传统的模拟方法处理语音信号,硬件设备昂贵,不能升级、产品生命周期短,而采用数字处理技术处理语音信号具有抗干扰

4、性强、便于传输和处理等优点,代表着语音处理技术的发展方向。DSP芯片高速、可编程的特点使其非常适合于语音信号处理领域。1.2 设计步骤本题目通过DSP处理器控制TLC320AIC23采集音频信号,在CCS软件中分析音频信号的频谱图,使用Matlab设计相应的FIR数字滤波器(低通、带通、带阻等)并得到滤波器H(z)的系数,然后根据这些系数,编写DSP程序(C语言或汇编)对已采集信号进行处理,最后在CCS软件中得到处理后音频信号的频谱图,比较滤波前后信号的频谱图。设计步骤包括:1、DSP与TLC320AIC23接口电路的原理图绘制;2、DSP控制TLC320AIC23的程序编写与调试;3、TLC

5、320AIC23模拟量到数字量的转换,采集声音信号,查看并记录信号频谱;4、使用Matlab对FIR滤波器的设计;5、编写FIR滤波处理的DSP程序,查看并记录处理后的信号频谱;6、用TLC320AIC23实现数字量到模拟量的转换,回放处理后的声音;7、按要求编写课程设计报告书,正确、完整的阐述设计和实验结果。8、在报告中绘制程序的流程图,并文字说明。1.3 设计方案DSP 与一般的微处理器相比有很大的区别。它所特有的结构和指令集合为解决复杂的数字信号处理问题提供了便利。用DSP芯片C54x实现FIR 滤波器的具体方案是:先用MATLAB的相关滤波器函数设计一个FIR滤波器,将产生的滤波器系数

6、作为DSP芯片实现该FIR滤波器的系数。然后用MATLAB的SIMULINK功能信号源模块产生滤波器的输入数据,并仿真出滤波器的滤波过程,使用Scope模块得到滤波器对所输入的数据产生的滤波结果。也就是,设计的滤波器对所采集的语音信号进行处理。再通过DSP的集成开发环境CCS把SIMULINK所产生的滤波器数据存储在DSP芯片的数据空间中。最后使用汇编语言设计C54x的FIR滤波程序,将MATLAB函数产生的滤波器系数和用C语言产生的输入数据进行运算。输入数据和通过DSP芯片产生的滤波结果可以通过CCS显示出来,这样就可以验证该滤波器的实现。在硬件设计方面,本设计是一个采用基于TMS320VC

7、5402的语音采集硬件设计方案,叙述和分析了其中的几个主要硬件模块,包括信号采集A/D、D/A模块、存储器模块、UART数据通信模块和电源模块。2 总体设计2.1 滤波器的原理及特点数字滤波器有两类:IIR数字滤波器和FIR数字滤波器。FIR滤波器是有限长单位冲激响应滤波器,在结构上是非递归型的。它可以在幅度特性随意设计的同时,保证精确严格的线性相位。线性相位特性在实际应用中非常重要,如在数据通信、图像处理、语音信号处理等领域,往往都要求具有线性相位特性。并且由于FIR 滤波器的单位脉冲响应有限长,系统不存在非稳定现象,我们总能用因果稳定系统来实现FIR 滤波器。FIR 主要的不足在于其较好的

8、性能是以较高的阶数为代价换来的,对于相同的设计指标,FIR 滤波器所要求的阶数比IIR 滤波器高25 倍,信号的延迟偏大。因此,在保证相同性能的前提下,尽量降低其阶数是FIR 数字滤波器设计的目标之一。FIR滤波器是有限长单位冲激响应滤波器,它具有以下独特的优点:(1)可以在幅度特性随意设计的同时,保证精确、严格的线性相位;避免被处理的信号产生相位失真,这一特点在宽频带信号处理、阵列信号处理、数据传输等系统中非常重要; (2)由于FIR滤波器的单位脉冲响应h(n)是有限长序列,因此FIR滤波器没有不稳定的问题; (3)由于FIR滤波器一般为非递归的结构,因此在有限精度运算下,不会出现递归结构中

9、极性震荡等不稳定现象,误差较小。FIR滤波器的数学表达式为: (2-1)式中:N为FIR滤波器的抽头数;x(n)为第n时刻的输入样本;h(i)为FIR滤波器第i级抽头系数。其相应的z变换为: (2-2)式中:z-i为N-1阶多项式。普通的直接型FIR滤波器结构如图2.1所示:图2.1 FIR滤波器的直接型结构在自适应处理、数据通信等领域中往往要求信号在传输过程中不能有明显的相位失真,FIR滤波器可以做到线性相位满足此要求。F1R滤波器实质上是一个分节的延迟线,把每一节的输出加权累加,得到滤波器的输出。对于FIR滤波器的单位脉冲响应h(i)只要满足以下2个条件之一,则为线性相位滤波器。 (2-3

10、)线性相位的FIR滤波器具有中心对称的特性,其对称中心在N2处。 (2-4)(2-2)由性能指标确定窗函数w(n)和窗口长度N(2-3)求得实际滤波器的单位脉冲响应h(n): (2-5)式中,H(z)是的(N-1)次多项式,它在z平面上有(N-1)个零点,其原点z=0是(N-1)阶重极点。因此,H(z)能永远保持稳定。通常 FIR 数字滤波器设计流程分为2个部分:开发设计和产品实现。在开发设计部分完成方案设计和算法设计与验证,一般用Matlab语言进行仿真,当仿真结果满意时,再进入产品的实现阶段。在实现阶段,将开发设计的阶段的算法用C/C或者汇编语言实现,在硬件的单片机或DSP 目标板上实现。

11、如果 FIR 滤波器的冲激响应为h(0),h(1),h(N-1). x(n)表示滤波器在n 时刻的输入,则n 时刻的输出为: y(n)=h(0)x(n)+h(1)x(n-1)+ + h(N-1)xn-(N-1) (2-6)使用MAC 或FIRS 指令可以方便地实现上面的计算。图3.1说明了使用循环寻址实现FIR 滤波器的方法。为了能正确使用循环寻址,必须先初始化BK,块长为N。滤波系数指针初始化时指向h(N-1),经过一次FIR 滤波计算后,在循环寻址的作用下,仍然指向h(N-1)。而数据缓冲区指针指向的是需要更新的数据,如x(n)。在写入新数据并完成FIR 运算之后,该指针指向x(n-(n-

12、1)。所以,使用循环寻址可以方便的完成滤波窗口数据的自动更新。图2.2 FIR 滤波器存储器里的数据存储方式2.2 MATLAB软件介绍 MATLAB在数学类科技应用软件中在数值计算方面首屈一指MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完相同的事情简捷得多,并且mathwork也吸收了像Maple等软件的优点,使M

13、ATLAB成为一个强大的数学软件。在新的版本中也加入了对C,C+,JAVA的支持。可以直接调用,用户也可以将自己编写的实用程序导入到MATLAB函数库中方便自己以后调用,2.3 FIR滤波器的Matlab设计FIR滤波器的MATLAB设计数字滤波器实际上是一个采用有限精度算法实现的线性非时变离散系统,它的设计步骤为:首先根据实际需要确定其性能指标,在求得系统函数H(z),最后采用有限精度算法实现。MATLAB是一套用于科学计算的可视化高性能语言与软件环境。它集数值分析、矩阵运算、信号处理和图形显示于一体,构成了一个界面友好的用户环境。它的信号处理工具箱包含了各种经典的和现代的数字信号处理技术,

14、是一个非常优秀的算法研究与辅助设计的工具。在设计数字滤波器时,通常采用MATLAB来进行辅助设计和仿真。用户只需在FDATool 或SPTool 图形工具里选择相应的滤波器设计方法,并填入滤波器设计指标,即可为用户生成所需的滤波器频率响应特性。因为在SPTool 工具里可以看到根据设计指标得到的实际滤波特性的数字显示,所以可以更准确地通过拖动特性曲线或改变指标使实际滤波器更满足要求,所以设计时,可先在SPTool 里预设计,然后再将实际特性指标移到FDATool 中,利用其提供的定点分析工具将滤波系数变为定点系数,并观察系数截断后的频率响应。最后通过FDATool 工具提供的可将数据以C 头文

15、件方式导出功能,将滤波系数以Q15格式输出,供DSP 处理用。针对设计要求,采用Kaiser 窗函数法进行设计,代入相应的参数,求得FIR 滤波器系数。FIR滤波器的MATLAB设计与仿真 4.1 FIR滤波器的设计方案 FIR滤波器的设计可用高级语言,如C语言、汇编语言实现,也可以采用MATLAB的数字信号处理软件包提供的专用函数来直接求取FIR滤波器的系数。在MATLAB中,提供了几个设计滤波器的函数,如fir1、fir2等。fir1的功能-基于窗函数的FIR数字滤波器的设计标准频率响应。fir1函数实现了加窗线性相位FIR数字滤波器设计的经典方法。其缺省的窗函数为哈明窗。其调用句法为: b=fir1(n,Wn); b=fir1(n,Wn,ftype); b=fir1(n,Wn,window);其中n为滤波器的阶数,Wn为0到1之间的数,window为窗函数的类型,ftype为滤波器的类型,即可以是低通、高通、带通或带阻。本文采用fir1函数进行FIR滤波器的设计,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 营销创新

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号