基于MATLAB与DSPBuilder的FIR数字滤波器设计.doc
上传人:sy****28 上传时间:2024-09-14 格式:DOC 页数:8 大小:302KB 金币:16 举报 版权申诉
预览加载中,请您耐心等待几秒...

基于MATLAB与DSPBuilder的FIR数字滤波器设计.doc

基于MATLAB与DSPBuilder的FIR数字滤波器设计.doc

预览

在线预览结束,喜欢就下载吧,查找使用更方便

16 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

基于MATLAB与DSPBuilder的FIR数字滤波器设计班级:电信052姓名:朱冬冬学号:054100538【摘要】本文从FIR滤波器的基本原理着手,阐述了如何使用MATLAB与DSPBuilder实现FIR数字滤波器设计。【关键词】MATLABDSPBuilderFIR数字滤波器【正文】概述FIR(即FiniteImpulseResponse:有限冲激响应)滤波器在数字通信系统中被大量使用,以实现各种各样的功能,诸如低通滤波、带通滤波、抗混叠、抽样和内插等等。MATLAB是一种功能强大的数据分析和工程计算高级语言,在工业、电子、信号处理、医学、建筑以及航空等领域有着广泛的应用。Altera的DSPBuilder是连接MATLAB中的Simulink和QuartusⅡ开发软件的DSP开发工具,在它的实际应用中,FIR滤波器是最为常用的模块之一,而且基于DSPBuilder的FIR滤波器设计方式有很多种。记得在暑假创新基地参加2007全国大学生电子设计竞赛的时候就是做的相关的一个题目,当时并没有完全理解其中的工作原理。经过本学期的数字信号处理课程的学习,再回过头去看时,终于明白了当时的参数设置及相关的作用。当时的题目要求是这样的:设计并制作一个程控滤波器,其放大器增益可设置;低通或高通滤波器通带、截止频率等参数可设置。滤波部分的基本要求是:滤波器可设置为低通滤波器,其-3dB截止频率fc在1kHz~20kHz范围内可调,调节的频率步进为1kHz,2fc处放大器与滤波器的总电压增益不大于30dB,RL=1k;滤波器可设置为高通滤波器,其-3dB截止频率fc在1kHz~20kHz范围内可调,调节的频率步进为1kHz,0.5fc处放大器与滤波器的总电压增益不大于30dB,RL=1k。当时我们在做滤波器部分时就是选择的数字滤波器,在低通部分选择了16阶FIR加窗法数字滤波器,下面我就大致讲讲如何实现这个16阶的数字滤波器。FIR滤波器原理对于一个FIR滤波器系统而言,它的冲激响应总是有限长的,其系统函数可以记为:其中M是FIR滤波器的零点数,即延时节数(也可以称为FIR滤波器的阶数)。最基本的FIR滤波器可用下式表示:其中x(n)是输入采样序列,h(i)是滤波器系数,L是滤波器的系数长度,y(n)表示滤波器的输出序列。典型的直接I型FIR滤波器如下图所示,其输出序列y(n)满足下式:在这个FIR滤波器中,总共存在N-1个延时节,N个乘法单元,N-1个2输入的加法器,如果采用普通的数字信号处理器来实现,只能用串行的方式顺序地执行延时、乘加操作,不可能在一个DSP指令周期内完成,必须用多个指令周期来完成。但是,如果使用FPGA来实现,就可以采用并行结构,在一个时钟周期内得到一个FIR滤波器的输出。模型设计有了以上的FIR原理,基于MATLAB与DSPBuilder的设计实现是比较容易的,其总体的设计框图为:使用MATLAB计算滤波器系数DSPBuilder中根据要求画出滤波器的结构图DSPBuilder图中填入相关的系数DSPBuilder中导出滤波器VHDL语言设计建立QuartusⅡ中的模块以下以16阶FIR滤波器设计为例,具体说明设计过程。我们需要设计一个系数可变的FIR滤波器节,对于直接I型的FIR滤波器是可以级联的。也就是说,在滤波器系数可变的情况下,可以预先设计好一个FIR滤波器节,在实际应用中调用将它们级联起来,用来完成多阶FIR滤波器的设计。由此,我们可以先设计一个4阶的的滤波器节,当要用到16阶时,只要将4个4阶的联起来即可。由于在浮点小数在FPGA中实现比较困难,因而在DSPBuilder中就可以用整数运算来实现(通过四舍五入实现)。如下图就是一个设计好的4阶滤波器节(这里用Product(乘法)模块代替Gain(增益)模块):其中constant单元就是所需填入的h(k)的值,xin为输入序列(位宽为9),各Product单元输出即为h(k)*x(n-k)的值,经过第一个并行加法单元就为一个4阶滤波器节,当4个4阶滤波器节经过第二个并行加法单元时输出y即为输入xin经过16阶滤波后的结果。滤波系数计算有了上面的滤波器结构图之后,下面的关键就是要根据具体设计要求计算滤波器的系数,在系数计算好填入图中后,16阶FIR滤波器才能真正应用,这就要使用我们强大的MATLAB工具了。MATLAB集成了一套功能强大的滤波器设计工具FDATool(FilterDesign&AnalysisTool),可以完成多种滤波器的设计、分析和性能评估。点击MATLAB主窗口下方的“start”按钮,选择“ToolBox”→“FilterDesi