基于MATLAB與DSP+Builder的FIR数字滤波器设计.docVIP

基于MATLAB與DSP+Builder的FIR数字滤波器设计.doc

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于MATLAB與DSPBuilder的FIR数字滤波器设计

基于MATLAB与DSP Builder的FIR数字滤波器设计 班级:电信052 姓名:朱冬冬 学号:054100538 【摘要】 本文从FIR滤波器的基本原理着手,阐述了如何使用MATLAB与DSP Builder实现FIR数字滤波器设计。 【关键词】 MATLAB DSP Builder FIR数字滤波器 【正文】 概述 FIR(即Finite Impulse Response:有限冲激响应)滤波器在数字通信系统中被大量使用,以实现各种各样的功能,诸如低通滤波、带通滤波、抗混叠、抽样和内插等等。 MATLAB是一种功能强大的数据分析和工程计算高级语言,在工业、电子、信号处理、医学、建筑以及航空等领域有着广泛的应用。 Altera的DSP Builder是连接MATLAB中的Simulink和QuartusⅡ开发软件的DSP开发工具,在它的实际应用中,FIR滤波器是最为常用的模块之一,而且基于DSP Builder的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与DSP Builder的设计实现是比较容易的,其总体的设计框图为: 以下以16阶FIR滤波器设计为例,具体说明设计过程。我们需要设计一个系数可变的FIR滤波器节,对于直接I型的FIR滤波器是可以级联的。也就是说,在滤波器系数可变的情况下,可以预先设计好一个FIR滤波器节,在实际应用中调用将它们级联起来,用来完成多阶FIR滤波器的设计。由此,我们可以先设计一个4阶的的滤波器节,当要用到16阶时,只要将4个4阶的联起来即可。 由于在浮点小数在FPGA中实现比较困难,因而在DSP Builder中就可以用整数运算来实现(通过四舍五入实现)。如下图就是一个设计好的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(Filter Design Analysis Tool),可以完成多种滤波器的设计、分析和性能评估。 点击MATLAB主窗口下方的“start”按钮,选择“ToolBox”→“Filter Design”→“ Filter Design Analysis Tool(FDATool)”,打开FDATool。其界面如下所示:

您可能关注的文档

文档评论(0)

cwhs + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档