第7章 IIR数字滤波器设计ppt课件_第1页
第7章 IIR数字滤波器设计ppt课件_第2页
第7章 IIR数字滤波器设计ppt课件_第3页
第7章 IIR数字滤波器设计ppt课件_第4页
第7章 IIR数字滤波器设计ppt课件_第5页
已阅读5页,还剩64页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第第7 7章章 IIRIIR数字滤波器设计数字滤波器设计 第第7章章 IIR数字滤波器设计数字滤波器设计 7.1 IIR滤波器原理滤波器原理 7.2 使用使用DSP Builder设计设计IIR滤波器滤波器 7.3 在在Quartus II中使用中使用IIR滤波器滤波器IP核核 第第7 7章章 IIRIIR数字滤波器设计数字滤波器设计 7.1 IIR滤波器原理滤波器原理 IIR滤波器一般采用递归方式来实现。也就是说,滤波器当前输出是输入序列和以前各输出值、的函数,这可以用下列差分方程来表示:NiiMiiinyainxbny10)()()(7-1)第第7 7章章 IIRIIR数字滤波器设计数字滤

2、波器设计 其中MN,N是IIR滤波器的阶数。 相应地,IIR滤波器的系统函数可以表示为 NiiiMiiizazbzH101)( (7-2)第第7 7章章 IIRIIR数字滤波器设计数字滤波器设计 在上一章已经提及到,FIR滤波器的系统函数只有零点。而IIR滤波器除了具有极点以外,一般还存在零点。由于极点的存在,IIR滤波器用递归结构来实现较为简单。实现IIR滤波器的基本结构共有三中:直接型、级联型和并联型。下面简单介绍前两种IIR滤波器的结构。第第7 7章章 IIRIIR数字滤波器设计数字滤波器设计 1. 直接型直接型 利用公式利用公式(7-2),可以直接导出直接,可以直接导出直接I型的型的I

3、IR滤波器滤波器结构,可用下式来表示:结构,可用下式来表示:NiiiMiiizazbzH1011)( (7-3)第第7 7章章 IIRIIR数字滤波器设计数字滤波器设计 可以看出, 和反馈环节 中的延时单元不能共用,需要个延 时单元。为了减少延时单元,对于线性系统,公式(7-3)也可以写成:Miiizb0Niiiza111MiiiNiiizbzazH0111)(第第7 7章章 IIRIIR数字滤波器设计数字滤波器设计 由此可以导出直接型的滤波器结构。图7-1表示了一个直接型IIR滤波器的结构,该滤波器的阶数是2阶,共存在两个反馈环节。第第7 7章章 IIRIIR数字滤波器设计数字滤波器设计 z

4、1z1x(n)a1a2b0b1b2y(n)图7-1 直接型IIR滤波器结构第第7 7章章 IIRIIR数字滤波器设计数字滤波器设计 2. 级联型级联型 对式对式(7-2)的分子、分母进行因式分解,由于中的系的分子、分母进行因式分解,由于中的系数都为实数,的极、零点只可能是实数或者复共轭对,数都为实数,的极、零点只可能是实数或者复共轭对,对于复共轭对因子,可以复合成二阶因子:对于复共轭对因子,可以复合成二阶因子:212112312111231211)1 ()1 ()1 ()1 ()(NiiiNiiMiiiMiizazaazbzbbAzH第第7 7章章 IIRIIR数字滤波器设计数字滤波器设计 式

5、中系数都为实数。如果把实数因子(一阶因子)看成是二次项系数为0的二阶因子,则上式可以写成:101022112211)(11)(ssNiiNiiiiizHAzazazbzbAzH2211221111)(zazazbzbzHiiiii其中 第第7 7章章 IIRIIR数字滤波器设计数字滤波器设计 由此可见,是一个2阶的IIR滤波器,N阶IIR滤波器可以看成是由多个2阶IIR滤波器级联而成的,即IIR滤波器可以采用下列结构来表示,也就是级联型结构(见图7-2): 第第7 7章章 IIRIIR数字滤波器设计数字滤波器设计 z11a11b10b12x(n)G1a21b20a12z1b11y1(n)a22

6、z1z1y(n)b21b22图7-2 级联型IIR滤波器结构第第7 7章章 IIRIIR数字滤波器设计数字滤波器设计 7.2 使用DSP Builder设计IIR滤波器 7.2.1 4阶直接阶直接型型IIR滤波器设计滤波器设计 在此需要设计一个在此需要设计一个4阶阶IIR滤波器。给定滤波器的系滤波器。给定滤波器的系统函数如下:统函数如下:4321432112. 072. 074. 195. 1105. 020. 031. 020. 005. 0)(zzzzzzzzzH第第7 7章章 IIRIIR数字滤波器设计数字滤波器设计 即滤波器系数为 a0=1b0=0.05 a1=-1.95b1=0.20

7、 a2=1.74 b2=0.31 a3=-0.72b3=0.20 a4=0.12 b4=0.05 可以看出,这是一个4阶IIR滤波器,我们采用直接型结构来实现该滤波器,其具体结构可由信号流图(见图7-3)来表示。第第7 7章章 IIRIIR数字滤波器设计数字滤波器设计 1a1b0 x(n)a2a3a3z1z1z1z1b1b2b3b4y(n)图图7-3 直接直接型型4阶阶IIR滤波器信号流图滤波器信号流图第第7 7章章 IIRIIR数字滤波器设计数字滤波器设计 在DSP Builder中,建立一个新模型,按照图7-3调用DSP Builder模块进行设计。设计完的4阶IIR滤波器模型如图7-4所

8、示。第第7 7章章 IIRIIR数字滤波器设计数字滤波器设计 图图7-4 4阶阶IIR滤波器模型滤波器模型第第7 7章章 IIRIIR数字滤波器设计数字滤波器设计 该模型中各个模块的参数设置如下:X模块:(Altbus)库:Altera DSP Builder中Bus Manipulation库参数“Bus Type设为“signed Fractional”(有符号小数)参数“Node Type设为“Input port”参数“number of bits.”设为“2”参数“.number of bits”设为“8”第第7 7章章 IIRIIR数字滤波器设计数字滤波器设计 Y模块:(Altbu

9、s)库: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库第第7 7章章 IIRIIR数字滤波器设计数字滤波器设计 参数“Input Bus Type设为“signed Fractional”参数“Input number

10、 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(-)”设为“+-”第第7 7章章 IIRIIR数字滤波器设计数字滤波器设计 F

11、eedBack 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(-)”设为“+”第第7 7章章 IIRIIR数字滤波器设计数字滤波器设计 Delay、Delay1、Delay2、Delay

12、3模块:(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”设为“1

13、2”参数“Number of Pipeline Levels设为“0”第第7 7章章 IIRIIR数字滤波器设计数字滤波器设计 另外,用于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)”设

14、为“10”参数“Sample time设为“1” “Interpret vector parameters as 1-D设为“” 第第7 7章章 IIRIIR数字滤波器设计数字滤波器设计 Scope模块:(Scope) 库:Simulink中sinks库 参数“Number of Axes为“2” 在这个实现中,使用了增益(Gain)模块来完成常数系数的乘法。这里使用了有符号小数(Signed Fractional)来简化IIR滤波器系数的代入过程。值得注意的是,参数“number of bits.”设置的是整数部分的位宽,其中最高位为符号位;参数“.number of bits”设置了小数部

15、分的位宽。假如把参数“number of bits.”设置为“2”,那就意味着该小数的整数部分只能是0、1、-1、-2(分别对应00、01、10或10、10),而且整数部分要为-2,必须是小数部分为全零。第第7 7章章 IIRIIR数字滤波器设计数字滤波器设计 建立IIR滤波器模型后就可以进行仿真了。Simulink仿真模块“Pulse Generator”(脉冲发生器)模拟了一个单位冲激函数。通过“Scope模块来观察该直接型IIR滤波器的冲激响应。 修改Simulink的仿真参数设置,设置“Stop time仿真停止时间为“50”,“Solver options中“Type为“Fixed-

16、Step”。启动仿真。仿真结果见图7-5。第第7 7章章 IIRIIR数字滤波器设计数字滤波器设计 图图7-5 IIR滤波器仿真结果滤波器仿真结果第第7 7章章 IIRIIR数字滤波器设计数字滤波器设计 7.2.2 4阶级联型阶级联型IIR滤波器设计滤波器设计 1. 建立模型建立模型 参照图参照图7-2,建立一个,建立一个4阶的级联型阶的级联型IIR滤波器模型,滤波器模型,该模型共由两节该模型共由两节2阶直接阶直接型型IIR滤波器构成,见图滤波器构成,见图7-6。 第第7 7章章 IIRIIR数字滤波器设计数字滤波器设计 图图7-6 4阶级联型阶级联型IIR滤波器滤波器第第7 7章章 IIRI

17、IR数字滤波器设计数字滤波器设计 模型中各个模块的参数设置如下:X模块:(Altbus)库:Altera DSP Builder中Bus Manipulation库参数“Bus Type设为“signed Fractional”(有符号小数)参数“Node Type设为“Input port”参数“number of bits.”设为“2”参数“.number of bits”设为“8”第第7 7章章 IIRIIR数字滤波器设计数字滤波器设计 Y模块:(Altbus)库:Altera DSP Builder中Bus Manipulation库参数“Bus Type设为“signed Fract

18、ional”参数“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”第第7 7章章 IIRIIR数字滤波器设计数字滤波器设计 参数“Input .number of bits”设为“18”参数“Output Bus Type设为“signe

19、d Fractional”参数“Output number of bits.”设为“2”参数“Output .number of bits”设为“15”第第7 7章章 IIRIIR数字滤波器设计数字滤波器设计 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设为“si

20、gned Fractional”参数“Output number of bits.”设为“2”参数“Output .number of bits”设为“15” 第第7 7章章 IIRIIR数字滤波器设计数字滤波器设计 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

21、Bus Type设为“signed Fractional”参数“Output number of bits.”设为“2”参数“Output .number of bits”设为“15”第第7 7章章 IIRIIR数字滤波器设计数字滤波器设计 FeedBackAdder、FeedBackAdder2模块:(Parallel Adder Subtractor)库:Altera DSP Builder中Arithmetic库参数“Number of Inputs设为“2”参数“Add(+)Sub(-)”设为“+-” FeedBackAdder1、FeedBackAdder3模块:(Parallel

22、Adder Subtractor)库:Altera DSP Builder中Arithmetic库参数“Number of Inputs设为“2”参数“Add(+)Sub(-)”设为“+”第第7 7章章 IIRIIR数字滤波器设计数字滤波器设计 FeedForwardAdder、FeedForwardAdder1模块:(Parallel Adder Subtractor)库:Altera DSP Builder中Arithmetic库参数“Number of Inputs设为“3”参数“Add(+)Sub(-)”设为“+” Delay、Delay1、Delay2、Delay3模块:(Delay

23、)库:Altera DSP Builder中Storage库参数“Depth设为“1”参数“Clock Phase Selection设为“1” 第第7 7章章 IIRIIR数字滤波器设计数字滤波器设计 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”设为“

24、10”参数“Number of Pipeline Levels设为“0”第第7 7章章 IIRIIR数字滤波器设计数字滤波器设计 2. IIR滤波器系数的计算滤波器系数的计算假设假设4阶阶IIR滤波器的设计指标如下:滤波器的设计指标如下: 采样频率采样频率Fs为为50MHz; 滤波器类型为高通滤波器类型为高通(HighPass); 滤波器滤波器Fc为为5MHz; 滤波器设计类型为滤波器设计类型为Butterworth。打开打开MATLAB中的中的FDATool进行滤波器系数计算,见图进行滤波器系数计算,见图7-7。第第7 7章章 IIRIIR数字滤波器设计数字滤波器设计 图图7-7 计算计算I

25、IR滤波器系数滤波器系数第第7 7章章 IIRIIR数字滤波器设计数字滤波器设计 设置阶数为4,输入相关参数指标,点击“Design Filter按钮完成IIR滤波器设计,接着打开相关分析。图7-8显示的是IIR滤波器的相频特性,图7-9显示了IIR滤波器的阶跃响应。第第7 7章章 IIRIIR数字滤波器设计数字滤波器设计 图图7-8 相频特性相频特性第第7 7章章 IIRIIR数字滤波器设计数字滤波器设计 图图7-9 阶跃响应阶跃响应第第7 7章章 IIRIIR数字滤波器设计数字滤波器设计 3. 设置系数设置系数 选择选择FDATool的的“File菜单中的菜单中的“Export”,导,导出

26、出IIR滤波器系数。对于级联型滤波器系数。对于级联型IIR滤波器,导出的系滤波器,导出的系数分成两个部分:数分成两个部分:SOS矩阵和矩阵和G增益,其中对于多个级增益,其中对于多个级联的联的IIR滤波器,滤波器,SOS矩阵为一个二维矩阵。矩阵为一个二维矩阵。 在此先把在此先把SOS矩阵和矩阵和G导出到导出到Matlab的工作区的工作区(Workspace),设置上面级联型,设置上面级联型IIR滤波器中的各个增滤波器中的各个增益模块的益模块的“Gain Value(增益值增益值)”。第第7 7章章 IIRIIR数字滤波器设计数字滤波器设计 G模块的“Gain Value是G;B10模块为SOS(

27、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。 第第7 7章章 IIRIIR数字滤波器设计数字滤波器设计 4. Simulink仿真仿真 设置设置Simulink仿真参数仿真参数“Stop time(停止时间停止时间)”为为1e-6,类型为,类型为“Fixed-step”。模型中的。

28、模型中的Simulink仿真模仿真模块的参数设置如下:块的参数设置如下:第第7 7章章 IIRIIR数字滤波器设计数字滤波器设计 Step模块:(Step)库:Simulink中Sources库参数“Step time设为“1e-7”参数“Initial value设为“0”参数“Final value设为“1”参数“Sample time设为“2e-8”“Interpret vector parameters as 1-D设为“”第第7 7章章 IIRIIR数字滤波器设计数字滤波器设计 Scope模块:(Scope)库:Simulink中sinks库参数“Number of Axes为“2”

29、启动仿真。由于Step模块生成了一个阶跃函数,故仿真结果为IIR滤波器的阶跃响应,见图7-10。 5. 由Simulink模型转成VHDL 打开SingalCompiler,选定对应器件,把模型转成VHDL文件,并在SignalCompiler中选择QuartusII进行综合。第第7 7章章 IIRIIR数字滤波器设计数字滤波器设计 图7-10 Simulink仿真结果一阶跃响应 第第7 7章章 IIRIIR数字滤波器设计数字滤波器设计 6. 适配下载适配下载 在在QuartusII中打开中打开SignalCompiler建立的建立的Quartus项目文件,选择具体器件,锁定管脚,完成适配后下

30、项目文件,选择具体器件,锁定管脚,完成适配后下载至载至FPGA DSP开发板中。开发板中。 在在FPGA DSP开发板上加入高频信号源,验证开发板上加入高频信号源,验证IIR滤滤波器的高通滤波效果。波器的高通滤波效果。第第7 7章章 IIRIIR数字滤波器设计数字滤波器设计 7.3 在QuartusII中使用IIR滤波器IP核 从上面的流程来看,虽然借助DSP Builder中丰富的DSP功能模块和MATLAB强大的计算环境,不再需要关心DSP模块的具体实现过程,也就不会陷入复杂的滤波器设计算法,从而大大简化了IIR滤波器的设计过程。但是,以上述设计方法得到的IIR滤波器,在资源利用上和性能上

31、往往不是最优的。第第7 7章章 IIRIIR数字滤波器设计数字滤波器设计 同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 Cor

32、e,因而在这里加以介绍。第第7 7章章 IIRIIR数字滤波器设计数字滤波器设计 图图7-11 IIR Core模块模块第第7 7章章 IIRIIR数字滤波器设计数字滤波器设计 7.3.1 配置配置QuartusII以便使用以便使用IIR滤波器核滤波器核 首先,必须确认首先,必须确认IIR滤波器核滤波器核(IIR Compiler)和和QuartusII是否安装。是否安装。 打开打开QuartusII集成环境,新建一个项目。选择菜单集成环境,新建一个项目。选择菜单“Assignments”“Settings”,打开,打开QuartusII的设的设置对话框,在对话框的左侧选择置对话框,在对话框的

33、左侧选择“User Libraries(用户用户库库)”,见图,见图7-12。第第7 7章章 IIRIIR数字滤波器设计数字滤波器设计 图图7-12 设置用户库设置用户库第第7 7章章 IIRIIR数字滤波器设计数字滤波器设计 7.3.2 使用使用IIR滤波器核滤波器核 首先完成首先完成IIR滤波器核的安装配置,然后按照第滤波器核的安装配置,然后按照第2章章给出的相类似的方法,定制使用给出的相类似的方法,定制使用IIR滤波器核。具体步滤波器核。具体步骤如下:骤如下: 1. 打开打开MegaWizard Plug-In Manager 选择菜单选择菜单“Tools”“MegaWizard Plu

34、g-In Manager”,接着打开,接着打开MegaCore向导。在窗口的左侧向导。在窗口的左侧选中选中“IIR Compiler”,在右侧选择实现时的,在右侧选择实现时的HDL类型,类型,并输入生成并输入生成IIR滤波器核的名字滤波器核的名字(见图见图7-13)。 第第7 7章章 IIRIIR数字滤波器设计数字滤波器设计 图图7-13 选择选择IIR Core第第7 7章章 IIRIIR数字滤波器设计数字滤波器设计 2. 选择选择IIR滤波器结构滤波器结构 在前文中已经提到,常用的在前文中已经提到,常用的IIR滤波器结构共有三种:滤波器结构共有三种:直接型直接型(Direct Form),

35、级联型,级联型(Cascaded)和并联型和并联型(Parallel)。 Altera的的IIR滤波器核对这三种滤波器核对这三种IIR结构都是支持的。结构都是支持的。图图7-14是是IIR滤波器结构设置对话框,在这里我们选择滤波器结构设置对话框,在这里我们选择了级联型进行实现,滤波器阶数设为了级联型进行实现,滤波器阶数设为8。 图图7-15、图、图7-16分别表示了另外两种滤波器结构的分别表示了另外两种滤波器结构的计算公式和结构。计算公式和结构。第第7 7章章 IIRIIR数字滤波器设计数字滤波器设计 图7-14 IIR滤波器结构第第7 7章章 IIRIIR数字滤波器设计数字滤波器设计 图图7

36、-15 直接直接型型IIR结构结构第第7 7章章 IIRIIR数字滤波器设计数字滤波器设计 图7-16 并联型IIR结构 第第7 7章章 IIRIIR数字滤波器设计数字滤波器设计 3. 导入滤波器系数导入滤波器系数 由于由于IIR滤波器系数的计算要比滤波器系数的计算要比FIR滤波器复杂得多,滤波器复杂得多,对于对于Altera的的IIR滤波器核,其系数计算需要通过其它滤波器核,其系数计算需要通过其它工具进行,比如可以使用工具进行,比如可以使用MATLAB的的FDATool来完成,来完成,再通过图再通过图7-17的对话框导入的对话框导入(通过文件通过文件)。系数导入后,。系数导入后,IIR Compiler可以显

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论