欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    第7章IIR数字滤波器设计.ppt

    • 资源ID:4751925       资源大小:554.02KB        全文页数:69页
    • 资源格式: PPT        下载积分:10金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要10金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    第7章IIR数字滤波器设计.ppt

    第7章 IIR数字滤波器设计,7.1 IIR滤波器原理 7.2 使用DSP Builder设计IIR滤波器 7.3 在Quartus II中使用IIR滤波器IP核,7.1 IIR滤波器原理,IIR滤波器一般采用递归方式来实现。也就是说,滤波器当前输出是输入序列和以前各输出值、的函数,这可以用下列差分方程来表示:,(7-1),其中MN,N是IIR滤波器的阶数。相应地,IIR滤波器的系统函数可以表示为,(7-2),在上一章已经提及到,FIR滤波器的系统函数只有零点。而IIR滤波器除了具有极点以外,一般还存在零点。由于极点的存在,IIR滤波器用递归结构来实现较为简单。实现IIR滤波器的基本结构共有三中:直接型、级联型和并联型。下面简单介绍前两种IIR滤波器的结构。,1.直接型 利用公式(7-2),可以直接导出直接I型的IIR滤波器结构,可用下式来表示:,(7-3),可以看出,和反馈环节 中的延时单元不能共用,需要个延 时单元。为了减少延时单元,对于线性系统,公式(7-3)也可以写成:,由此可以导出直接型的滤波器结构。图7-1表示了一个直接型IIR滤波器的结构,该滤波器的阶数是2阶,共存在两个反馈环节。,图7-1 直接型IIR滤波器结构,2.级联型 对式(7-2)的分子、分母进行因式分解,由于中的系数都为实数,的极、零点只可能是实数或者复共轭对,对于复共轭对因子,可以复合成二阶因子:,式中系数都为实数。如果把实数因子(一阶因子)看成是二次项系数为0的二阶因子,则上式可以写成:,其中,由此可见,是一个2阶的IIR滤波器,N阶IIR滤波器可以看成是由多个2阶IIR滤波器级联而成的,即IIR滤波器可以采用下列结构来表示,也就是级联型结构(见图7-2):,图7-2 级联型IIR滤波器结构,7.2 使用DSP Builder设计IIR滤波器,7.2.1 4阶直接型IIR滤波器设计 在此需要设计一个4阶IIR滤波器。给定滤波器的系统函数如下:,即滤波器系数为 a0=1b0=0.05 a1=-1.95b1=0.20 a2=1.74 b2=0.31 a3=-0.72b3=0.20 a4=0.12 b4=0.05 可以看出,这是一个4阶IIR滤波器,我们采用直接型结构来实现该滤波器,其具体结构可由信号流图(见图7-3)来表示。,图7-3 直接型4阶IIR滤波器信号流图,在DSP Builder中,建立一个新模型,按照图7-3调用DSP Builder模块进行设计。设计完的4阶IIR滤波器模型如图7-4所示。,图7-4 4阶IIR滤波器模型,该模型中各个模块的参数设置如下:X模块:(Altbus)库:Altera DSP Builder中Bus Manipulation库参数“Bus Type”设为“signed Fractional”(有符号小数)参数“Node Type”设为“Input port”参数“number of bits.”设为“2”参数“.number of bits”设为“8”,Y模块:(Altbus)库:Altera DSP Builder中Bus Manipulation库参数“Bus Type”设为“signed Fractional”参数“Node Type”设为“Output port”参数“number of bits.”设为“4”参数“.number of bits”设为“23”BusConversion模块:(BusConversion)库:Altera DSP Builder中Bus Manipulation库,参数“Input Bus Type”设为“signed Fractional”参数“Input number of bits.”设为“4”参数“Input.number of bits”设为“23”参数“Output Bus Type”设为“signed Fractional”参数“Output number of bits.”设为“2”参数“Output.number of bits”设为“8”FeedBack Adder模块:(Parallel Adder Subtractor)库:Altera DSP Builder中Arithmetic库参数“Number of Inputs”设为“2”参数“Add(+)Sub(-)”设为“+-”,FeedBack Adder1模块:(Parallel Adder Subtractor)库:Altera DSP Builder中Arithmetic库参数“Number of Inputs”设为“4”参数“Add(+)Sub(-)”设为“+”FeedForward Adder模块:(Parallel Adder Subtractor)库:Altera DSP Builder中Arithmetic库参数“Number of Inputs”设为“5”参数“Add(+)Sub(-)”设为“+”,Delay、Delay1、Delay2、Delay3模块:(Delay)库:Altera DSP Builder中Storage库参数“Depth”设为“1”参数“Clock Phase Selection”设为“1”A1、A2、A3、A4、B0、B1、B2、B3、B4模块:(Gain)库:Altera DSP Builder中Arithemtic库参数“Gain Value”按照设计要求中指定的系数设置(直接输入)参数“Map Gain Value to Bus Type”设为“Signed Fraction”参数“Gain value number of bits.”设为“2”参数“.Gain value number of bits”设为“12”参数“Number of Pipeline Levels”设为“0”,另外,用于Simulink仿真的模块的参数设置如下:Pulse Generator模块:(Pulse Generator)库:Simulink中Sources库参数“Pulse type”设为“Sample based”参数“Amplitude”设为“1”参数“Period(number of samples)”设为“1000”参数“Pulse width(number of samples”设为“1”参数“Phase delay(number of samples)”设为“10”参数“Sample time”设为“1”“Interpret vector parameters as 1-D”设为“”,Scope模块:(Scope)库:Simulink中sinks库 参数“Number of Axes”为“2”在这个实现中,使用了增益(Gain)模块来完成常数系数的乘法。这里使用了有符号小数(Signed Fractional)来简化IIR滤波器系数的代入过程。值得注意的是,参数“number of bits.”设置的是整数部分的位宽,其中最高位为符号位;参数“.number of bits”设置了小数部分的位宽。假如把参数“number of bits.”设置为“2”,那就意味着该小数的整数部分只能是0、1、-1、-2(分别对应00、01、10或10、10),而且整数部分要为-2,必须是小数部分为全零。,建立IIR滤波器模型后就可以进行仿真了。Simulink仿真模块“Pulse Generator”(脉冲发生器)模拟了一个单位冲激函数。通过“Scope”模块来观察该直接型IIR滤波器的冲激响应。修改Simulink的仿真参数设置,设置“Stop time”仿真停止时间为“50”,“Solver options”中“Type”为“Fixed-Step”。启动仿真。仿真结果见图7-5。,图7-5 IIR滤波器仿真结果,7.2.2 4阶级联型IIR滤波器设计 1.建立模型 参照图7-2,建立一个4阶的级联型IIR滤波器模型,该模型共由两节2阶直接型IIR滤波器构成,见图7-6。,图7-6 4阶级联型IIR滤波器,模型中各个模块的参数设置如下:X模块:(Altbus)库:Altera DSP Builder中Bus Manipulation库参数“Bus Type”设为“signed Fractional”(有符号小数)参数“Node Type”设为“Input port”参数“number of bits.”设为“2”参数“.number of bits”设为“8”,Y模块:(Altbus)库:Altera DSP Builder中Bus Manipulation库参数“Bus Type”设为“signed Fractional”参数“Node Type”设为“Output port”参数“number of bits.”设为“4”参数“.number of bits”设为“23”BusConv模块:(BusConversion)库:Altera DSP Builder中Bus Manipulation库参数“Input Bus Type”设为“signed Fractional”参数“Input number of bits.”设为“4”,参数“Input.number of bits”设为“18”参数“Output Bus Type”设为“signed Fractional”参数“Output number of bits.”设为“2”参数“Output.number of bits”设为“15”,BusConv1、BusConv4模块:(BusConversion)库:Altera DSP Builder中Bus Manipulation库参数“Input Bus Type”设为“signed Fractional”参数“Input number of bits.”设为“3”参数“Input.number of bits”设为“15”参数“Output Bus Type”设为“signed Fractional”参数“Output number of bits.”设为“2”参数“Output.number of bits”设为“15”,BusConv2、BusConv3、BusConv5模块:(BusConversion)库:Altera DSP Builder中Bus Manipulation库参数“Input Bus Type”设为“signed Fractional”参数“Input number of bits.”设为“4”参数“Input.number of bits”设为“25”参数“Output Bus Type”设为“signed Fractional”参数“Output number of bits.”设为“2”参数“Output.number of bits”设为“15”,FeedBackAdder、FeedBackAdder2模块:(Parallel Adder Subtractor)库:Altera DSP Builder中Arithmetic库参数“Number of Inputs”设为“2”参数“Add(+)Sub(-)”设为“+-”FeedBackAdder1、FeedBackAdder3模块:(Parallel Adder Subtractor)库:Altera DSP Builder中Arithmetic库参数“Number of Inputs”设为“2”参数“Add(+)Sub(-)”设为“+”,FeedForwardAdder、FeedForwardAdder1模块:(Parallel Adder Subtractor)库:Altera DSP Builder中Arithmetic库参数“Number of Inputs”设为“3”参数“Add(+)Sub(-)”设为“+”Delay、Delay1、Delay2、Delay3模块:(Delay)库:Altera DSP Builder中Storage库参数“Depth”设为“1”参数“Clock Phase Selection”设为“1”,G、A11、A12、A21、A21、B10、B11、B12、B20、B21、B22模块:(Gain)库:Altera DSP Builder中Arithemtic库参数“Map Gain Value to Bus Type”设为“Signed Fraction”参数“Gain value number of bits.”设为“2”参数“.Gain value number of bits”设为“10”参数“Number of Pipeline Levels”设为“0”,2.IIR滤波器系数的计算假设4阶IIR滤波器的设计指标如下:采样频率Fs为50MHz;滤波器类型为高通(HighPass);滤波器Fc为5MHz;滤波器设计类型为Butterworth。打开MATLAB中的FDATool进行滤波器系数计算,见图7-7。,图7-7 计算IIR滤波器系数,设置阶数为4,输入相关参数指标,点击“Design Filter”按钮完成IIR滤波器设计,接着打开相关分析。图7-8显示的是IIR滤波器的相频特性,图7-9显示了IIR滤波器的阶跃响应。,图7-8 相频特性,图7-9 阶跃响应,3.设置系数 选择FDATool的“File”菜单中的“Export”,导出IIR滤波器系数。对于级联型IIR滤波器,导出的系数分成两个部分:SOS矩阵和G增益,其中对于多个级联的IIR滤波器,SOS矩阵为一个二维矩阵。在此先把SOS矩阵和G导出到Matlab的工作区(Workspace),设置上面级联型IIR滤波器中的各个增益模块的“Gain Value(增益值)”。,G模块的“Gain Value”是G;B10模块为SOS(1,1),B11模块为SOS(1,2),B12模块为SOS(1,3);A11模块为SOS(1,5),A12模块为SOS(1,6);B20模块为SOS(2,1),B21模块为SOS(2,2),B22模块为SOS(2,3);A21模块为SOS(2,5),A22模块为SOS(2,6)。设置完增益值后更新一下模型,IIR滤波器模型的系数就全部设置完成了,见图7-6。,4.Simulink仿真 设置Simulink仿真参数“Stop time(停止时间)”为1e-6,类型为“Fixed-step”。模型中的Simulink仿真模块的参数设置如下:,Step模块:(Step)库:Simulink中Sources库参数“Step time”设为“1e-7”参数“Initial value”设为“0”参数“Final value”设为“1”参数“Sample time”设为“2e-8”“Interpret vector parameters as 1-D”设为“”,Scope模块:(Scope)库:Simulink中sinks库参数“Number of Axes”为“2”启动仿真。由于Step模块生成了一个阶跃函数,故仿真结果为IIR滤波器的阶跃响应,见图7-10。5.由Simulink模型转成VHDL 打开SingalCompiler,选定对应器件,把模型转成VHDL文件,并在SignalCompiler中选择QuartusII进行综合。,图7-10 Simulink仿真结果一阶跃响应,6.适配下载 在QuartusII中打开SignalCompiler建立的Quartus项目文件,选择具体器件,锁定管脚,完成适配后下载至FPGA DSP开发板中。在FPGA DSP开发板上加入高频信号源,验证IIR滤波器的高通滤波效果。,7.3 在QuartusII中使用IIR滤波器IP核,从上面的流程来看,虽然借助DSP Builder中丰富的DSP功能模块和MATLAB强大的计算环境,不再需要关心DSP模块的具体实现过程,也就不会陷入复杂的滤波器设计算法,从而大大简化了IIR滤波器的设计过程。但是,以上述设计方法得到的IIR滤波器,在资源利用上和性能上往往不是最优的。,同FIR Filter Core一样,Altera以及其它FPGA厂商也提供了IIR Filter Core。IIR Filter Core同FIR Filter Core一样,与DSP Builer相结合,可以在Simulink环境中使用(图7-11)。IIR滤波器核在DSP Builder中的使用,与FIR滤波器核大致是相同的,因此本节就不再一一详述了。IIR滤波器核除了与DSP Builder可以衔接开发之外,也可以在QuartusII中直接使用。由于在前文中没有详细提及在QuartusII中使用IP Core,因而在这里加以介绍。,图7-11 IIR Core模块,7.3.1 配置QuartusII以便使用IIR滤波器核 首先,必须确认IIR滤波器核(IIR Compiler)和QuartusII是否安装。打开QuartusII集成环境,新建一个项目。选择菜单“Assignments”“Settings”,打开QuartusII的设置对话框,在对话框的左侧选择“User Libraries(用户库)”,见图7-12。,图7-12 设置用户库,7.3.2 使用IIR滤波器核 首先完成IIR滤波器核的安装配置,然后按照第2章给出的相类似的方法,定制使用IIR滤波器核。具体步骤如下:1.打开MegaWizard Plug-In Manager 选择菜单“Tools”“MegaWizard Plug-In Manager”,接着打开MegaCore向导。在窗口的左侧选中“IIR Compiler”,在右侧选择实现时的HDL类型,并输入生成IIR滤波器核的名字(见图7-13)。,图7-13 选择IIR Core,2.选择IIR滤波器结构 在前文中已经提到,常用的IIR滤波器结构共有三种:直接型(Direct Form),级联型(Cascaded)和并联型(Parallel)。Altera的IIR滤波器核对这三种IIR结构都是支持的。图7-14是IIR滤波器结构设置对话框,在这里我们选择了级联型进行实现,滤波器阶数设为8。图7-15、图7-16分别表示了另外两种滤波器结构的计算公式和结构。,图7-14 IIR滤波器结构,图7-15 直接型IIR结构,图7-16 并联型IIR结构,3.导入滤波器系数 由于IIR滤波器系数的计算要比FIR滤波器复杂得多,对于Altera的IIR滤波器核,其系数计算需要通过其它工具进行,比如可以使用MATLAB的FDATool来完成,再通过图7-17的对话框导入(通过文件)。系数导入后,IIR Compiler可以显示当前系数的IIR滤波器的幅频响应。,图7-17 确定IIR系数,对于IIR滤波器而言,还可以通过导入零极点值来确定IIR滤波器的系数。IIR Compiler也提供了导入零极点来确定IIR系数的方式。图7-18显示了导入后IIR滤波器的零极点图。,图7-18 IIR滤波器的零极点,4.IIR滤波器系数的量化 同FIR滤波器一样,在FPGA上实现,IIR系数必须进行量化处理,见图7-19。我们在这里设置了输入信号的位宽为8位,系数位宽为16位。采用自动方式让IIR Compiler具体决定系数的归一化问题。,图7-19 量化IIR滤波器系数,5.IIR滤波器的具体实现 为了提高IIR滤波器的性能,同时减少IIR滤波器使用的资源,需要对IIR滤波器实现时的某些细节进行调整,如图7-20所示。然后点击“Finish”完成IIR滤波器核的设置。,图7-20 IIR滤波器实现的调整,6.调用设计好的IIR滤波器核 设计好的IIR滤波器核可以通过多种方式调用。图7-21显示了在QuartusII的原理图方式设计中,对设计好的IIR滤波器核作为一个元件(Symbol)进行调用。当然,采用VHDL调用设计好的IIR滤波器核也是相当方便的。IIR Compiler在设计时提供了调用模板文件供设计者参考。另外,IIR Compiler也能生成一些仿真测试文件来简化对核的测试过程。,图7-21 调用设计好的IIR滤波器核,

    注意事项

    本文(第7章IIR数字滤波器设计.ppt)为本站会员(sccc)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开