




已阅读5页,还剩64页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第7章 IIR数字滤波器设计 第7章 IIR数字滤波器设计 7.1 IIR滤波器原理 7.2 使用DSP Builder设计IIR滤波器 7.3 在Quartus II中使用IIR滤波器IP核 第7章 IIR数字滤波器设计 7.1 IIR滤波器原理 IIR滤波器一般采用递归方式来实现。也就是说,滤 波器当前输出是输入序列和以前各输出值、的函 数,这可以用下列差分方程来表示: (7-1) 第7章 IIR数字滤波器设计 其中MN,N是IIR滤波器的阶数。 相应地,IIR滤波器的系统函数可以表示为 (7-2) 第7章 IIR数字滤波器设计 在上一章已经提及到,FIR滤波器的系统函数只有 零点。而IIR滤波器除了具有极点以外,一般还存在零 点。由于极点的存在,IIR滤波器用递归结构来实现较 为简单。实现IIR滤波器的基本结构共有三中:直接型 、级联型和并联型。下面简单介绍前两种IIR滤波器的 结构。 第7章 IIR数字滤波器设计 1. 直接型 利用公式(7-2),可以直接导出直接I型的IIR滤波器结 构,可用下式来表示: (7-3) 第7章 IIR数字滤波器设计 可以看出, 和反馈环节 中的 延时单元不能共用,需要个延 时单元。为了减少延时单元,对于线性系统,公式(7-3) 也可以写成: 第7章 IIR数字滤波器设计 由此可以导出直接型的滤波器结构。图7-1表示 了一个直接型IIR滤波器的结构,该滤波器的阶数是 2阶,共存在两个反馈环节。 第7章 IIR数字滤波器设计 图7-1 直接型IIR滤波器结构 第7章 IIR数字滤波器设计 2. 级联型 对式(7-2)的分子、分母进行因式分解,由于中的系 数都为实数,的极、零点只可能是实数或者复共轭对 ,对于复共轭对因子,可以复合成二阶因子: 第7章 IIR数字滤波器设计 式中系数都为实数。如果把实数因子(一阶因子)看 成是二次项系数为0的二阶因子,则上式可以写成: 其中 第7章 IIR数字滤波器设计 由此可见,是一个2阶的IIR滤波器,N阶IIR滤波器 可以看成是由多个2阶IIR滤波器级联而成的,即IIR滤 波器可以采用下列结构来表示,也就是级联型结构(见 图7-2): 第7章 IIR数字滤波器设计 图7-2 级联型IIR滤波器结构 第7章 IIR数字滤波器设计 7.2 使用DSP Builder设计IIR滤波器 7.2.1 4阶直接型IIR滤波器设计 在此需要设计一个4阶IIR滤波器。给定滤波器的系统 函数如下: 第7章 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章 IIR数字滤波器设计 图7-3 直接型4阶IIR滤波器信号流图 第7章 IIR数字滤波器设计 在DSP Builder中,建立一个新模型,按照图7-3调用 DSP Builder模块进行设计。设计完的4阶IIR滤波器模 型如图7-4所示。 第7章 IIR数字滤波器设计 图7-4 4阶IIR滤波器模型 第7章 IIR数字滤波器设计 该模型中各个模块的参数设置如下: X模块:(Altbus) 库:Altera DSP Builder中Bus Manipulation库 参数“Bus Type”设为“signed Fractional”(有符号小数) 参数“Node Type”设为“Input port” 参数“number of bits.”设为“2” 参数“.number of bits”设为“8” 第7章 IIR数字滤波器设计 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库 第7章 IIR数字滤波器设计 参数“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(-)”设为“+ -” 第7章 IIR数字滤波器设计 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(-)”设为“+” 第7章 IIR数字滤波器设计 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” 第7章 IIR数字滤波器设计 另外,用于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”设为“” 第7章 IIR数字滤波器设计 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, 必须是小数部分为全零。 第7章 IIR数字滤波器设计 建立IIR滤波器模型后就可以进行仿真了。Simulink 仿真模块“Pulse Generator”(脉冲发生器)模拟了一个单 位冲激函数。通过“Scope”模块来观察该直接型IIR滤 波器的冲激响应。 修改Simulink的仿真参数设置,设置“Stop time”仿真 停止时间为“50”,“Solver options”中“Type”为“Fixed- Step”。启动仿真。仿真结果见图7-5。 第7章 IIR数字滤波器设计 图7-5 IIR滤波器仿真结果 第7章 IIR数字滤波器设计 7.2.2 4阶级联型IIR滤波器设计 1. 建立模型 参照图7-2,建立一个4阶的级联型IIR滤波器模型 ,该模型共由两节2阶直接型IIR滤波器构成,见图7- 6。 第7章 IIR数字滤波器设计 图7-6 4阶级联型IIR滤波器 第7章 IIR数字滤波器设计 模型中各个模块的参数设置如下: X模块:(Altbus) 库:Altera DSP Builder中Bus Manipulation库 参数“Bus Type”设为“signed Fractional”(有符号小数) 参数“Node Type”设为“Input port” 参数“number of bits.”设为“2” 参数“.number of bits”设为“8” 第7章 IIR数字滤波器设计 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” 第7章 IIR数字滤波器设计 参数“Input .number of bits”设为“18” 参数“Output Bus Type”设为“signed Fractional” 参数“Output number of bits.”设为“2” 参数“Output .number of bits”设为“15” 第7章 IIR数字滤波器设计 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” 第7章 IIR数字滤波器设计 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” 第7章 IIR数字滤波器设计 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(-)”设为“+” 第7章 IIR数字滤波器设计 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” 第7章 IIR数字滤波器设计 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” 第7章 IIR数字滤波器设计 2. IIR滤波器系数的计算 假设4阶IIR滤波器的设计指标如下: 采样频率Fs为50 MHz; 滤波器类型为高通(HighPass); 滤波器Fc为5 MHz; 滤波器设计类型为Butterworth。 打开MATLAB中的FDATool进行滤波器系数计算,见图7 -7。 第7章 IIR数字滤波器设计 图7-7 计算IIR滤波器系数 第7章 IIR数字滤波器设计 设置阶数为4,输入相关参数指标,点击“Design Filter”按钮完成IIR滤波器设计,接着打开相关分析。 图7-8显示的是IIR滤波器的相频特性,图7-9显示了IIR 滤波器的阶跃响应。 第7章 IIR数字滤波器设计 图7-8 相频特性 第7章 IIR数字滤波器设计 图7-9 阶跃响应 第7章 IIR数字滤波器设计 3. 设置系数 选择FDATool的“File”菜单中的“Export”,导出IIR 滤波器系数。对于级联型IIR滤波器,导出的系数分成 两个部分:SOS矩阵和G增益,其中对于多个级联的 IIR滤波器,SOS矩阵为一个二维矩阵。 在此先把SOS矩阵和G导出到Matlab的工作区 (Workspace),设置上面级联型IIR滤波器中的各个增益 模块的“Gain Value(增益值)”。 第7章 IIR数字滤波器设计 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。 第7章 IIR数字滤波器设计 4. Simulink仿真 设置Simulink仿真参数“Stop time(停止时间)”为1e-6 ,类型为“Fixed-step”。模型中的Simulink仿真模块的参 数设置如下: 第7章 IIR数字滤波器设计 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章 IIR数字滤波器设计 Scope模块:(Scope) 库:Simulink中sinks库 参数“Number of Axes”为“2” 启动仿真。由于Step模块生成了一个阶跃函数,故仿真结 果为IIR滤波器的阶跃响应,见图7-10。 5. 由Simulink模型转成VHDL 打开SingalCompiler,选定对应器件,把模型转成 VHDL文件,并在SignalCompiler中选择Quartus II进行 综合。 第7章 IIR数字滤波器设计 图7-10 Simulink仿真结果一阶跃响应 第7章 IIR数字滤波器设计 6. 适配下载 在Quartus II中打开SignalCompiler建立的Quartus项目 文件,选择具体器件,锁定管脚,完成适配后下载至 FPGA DSP开发板中。 在FPGA DSP开发板上加入高频信号源,验证IIR滤 波器的高通滤波效果。 第7章 IIR数字滤波器设计 7.3 在Quartus II中使用IIR滤波器IP核 从上面的流程来看,虽然借助DSP Builder中丰富的 DSP功能模块和MATLAB强大的计算环境,不再需要 关心DSP模块的具体实现过程,也就不会陷入复杂的 滤波器设计算法,从而大大简化了IIR滤波器的设计过 程。但是,以上述设计方法得到的IIR滤波器,在资源 利用上和性能上往往不是最优的。 第7章 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可以衔接开发之外, 也可以在Quartus II中直接使用。由于在前文中没有详 细提及在Quartus II中使用IP Core,因而在这里加以介 绍。 第7章 IIR数字滤波器设计 图7-11 IIR Core模块 第7章 IIR数字滤波器设计 7.3.1 配置Quartus II以便使用IIR滤波器核 首先,必须确认IIR滤波器核(IIR Compiler)和 Quartus II是否安装。 打开Quartus II集成环境,新建一个项目。选择菜单 “Assignments”“Settings”,打开Quartus II的设置对 话框,在对话框的左侧选择“User Libraries(用户库)”, 见图7-12。 第7章 IIR数字滤波器设计 图7-12 设置用户库 第7章 IIR数字滤波器设计 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章 IIR数字滤波器设计 图7-13 选择IIR Core 第7章 IIR数字滤波器设计 2. 选择IIR滤波器结构 在前文中已经提到,常用的IIR滤波器结构共有三种 :直接型(Direct Form),级联型(Cascaded) 和并联型 (Parallel)。 Altera的IIR滤波器核对这三种IIR结构都是支持的。 图7-14是IIR滤波器结构设置对话框,在这里我们选择 了级联型进行实现,滤波器阶数设为8。 图7-15、图7-16分别表示了另外两种滤波器结构的 计算公式和结构。 第7章 IIR数字滤波器设计 图7-14 IIR滤波器结构 第7章 IIR数字滤波
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 医院聘用护士劳动合同书
- 商标专利合同范文6篇
- 瑞达律师实务课件系列
- 农业种植产业政策体系优化与实施效果评估报告
- 农业碳汇项目碳排放权交易市场政策环境与市场发展研究
- 法院机房工程建设方案(3篇)
- 东莞清溪加固工程方案(3篇)
- 顶岗工程人员考核方案(3篇)
- 电力工程维护方案(3篇)
- 玛咖课件教学课件
- 家电行业售后服务组织架构及人员岗位职责
- 留学生中国文化课课件
- (完整版)抛丸机安全操作规程
- 高压三柱塞泵行业深度研究分析报告(2024-2030版)
- 呼吸衰竭个案护理
- 2025年森林植被恢复费森林抚育项目方案投标文件(技术方案)
- 癫痫性精神病护理查房
- 高低压配电施工方案
- 2025年新高考2卷(新课标Ⅱ卷)语文试卷
- AI大模型赋能数据治理解决方案
- 河海大学2019-2020学年第一学期《概率论与数理统计》试卷(A卷)
评论
0/150
提交评论