基于DSPBuilder的FIR滤波器的设计要点详解.ppt

  1. 1、本文档共23页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
一.概述 DSP Builder是Altera推出的一个数字信号处理(DSP)开发工具,它在QuartusⅡ FPGA设计环境中集成了MathWorks的Matlab和Simulink DSP开发软件。 它是作为MATLAB的一个Simulink工具箱出现的。Simulink是MATLAB的一个组成部分,用于图像化建模仿真。DSP Builder作为Simulink的一个工具箱,使得用FPGA设计DSP系统完全可以通过Simulink的图像化界面进行,只要简单的进行DSP Builder工具箱中的模块即可。 值得注意的是,DSP Builder中的DSP基本模块是以算法级的描述出现的,易于用户从系统或者算法级进行理解。 DSP Builder的设计包含两套流程:自动流程和手动流程 二. 32阶FIR低通滤波器 三. 8阶IIR低通滤波器 2.1.FIR滤波器的原理 对于直接I型的32阶或更高阶的FIR滤波器通常用低阶的滤波器节进行级联而成。这里设计一个8阶的FIR滤波器节,然后通过将其级联来构成32阶的FIR滤波器。 由于浮点小数在FPGA中实现比较困难,需要很多资源。这里采用定点计算,为了省去小数点定标,使用整数运算来实现。 2.2 设计8阶FIR滤波器子系统 在Matlab 的Simulink 环境中建立一个MDL模型文件,找到Altera DSP Builder工具箱,用图形化方式调用DSP Builder中的Storage库的Delay模块和Arithmetic库的Product模块以及Parallel Adder Substractor模块,根据滤波器的结构原理设计一个8阶FIR滤波器子系统。如下图(fir8) 图2.2 8阶FIR滤波器子系统 为了设计的方便,将上面设计8阶FIR滤波器生成一个子系统,具体方法如下:在fir8模型窗口中,按住鼠标左键,移动鼠标画一个框,选中图中除SignalCompile模块以外的所有模块,接着,在选中的模块上点击鼠标右键,在弹出的右键菜单中选中“Create subsystem,建立子系统。如右图 2.3 设计32阶FIR滤波器模型 复制4个8阶滤波器子系统,并将它们如右图连接起来。 2.4 滤波器系数的计算 若设计一个截止频率为10.8KHz的低通滤波器(h(0)=0),给定的参数如下: ● 低通滤波器 ● 采样频率Fs为48KHz,滤波器的Fc为10.8KHz ● 输入序列位宽为10位(最高位为符号位) 滤波器的系数计算可以使用Matlab的滤波器设计工具FDATool来计算。其设计界面如下图: 由上图可知FDATool计算出来的值是一个有符号的 小数,而在DSP Builder下建立的FIR滤波器模型需要一个 整数作为滤波器系数,所以必须进行量化和归一化。 量化后的系数 导出滤波器系数后,在Matlab主窗口的命令窗口中输入:Num*(2^10)得到: 二. 32阶FIR低通滤波器 三. 8阶IIR低通滤波器 3.1 8阶IIR低通滤波器原理 由以上原理可知,IIR直接Ⅱ型为: 四、滤波器的硬件实现 1.由simulink模型转成VHDL 注意:必须安装DSP Builder的授权文件,这一步才能实现,否则无法进行。 2.利用Modelsim完成RTL级仿真 3.综合:在QuartusⅡ中进行 综合 4.适配下载 SIMULINK下可控正弦信号发生器设计 本章以正弦波发生模块的设计为例,它的结构如图1所示。它由 4个部分构成:InCount是一个阶梯信号发生模块,产生递增的地址信号,送往LUT。LUT是一个查找表模块正弦函数值的,通过递增的地址可得到输出正弦波值,输出的8位正弦波数据经Delay延时模块以后被送向乘法Product模块,与SinCtr1相乘。因为 SinCtr1只输入1位,SinCtr1通过Product就完成了控制有无输出正弦波。My_sin就是正弦波发生器模块的输出,它送向D/A就能够得到正弦波信号。 图1 正弦发生器模块 1 用DSP BUILDER建立正弦发生器模型 1.1 新建模型 打开Matlab环境。可以看到 Matlab的主窗口界面被分割成三个窗口:命令窗口( Command W

文档评论(0)

三沙市的姑娘 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档