1、CENTRAL SOUTH UNIVERSITY数字信号处理实验报告题 目 IIR 滤波器 学生姓名 钱学文 学 院 物理与电子学院 专业班级 电信息科学与技术 1004 班 实验七 IIR 滤波器1实验七 IIR 滤波器一、实验仪器:PC机一台,JQ-NIOS-2C35 实验箱一台及辅助软件(DSP Builder、Matlab/Simulink 、Quartus II、Modelsim)二、实验目的:1、初步了解JQ-NIOS-2C35实验箱的基本结构。2、学习和熟悉基于DSP Builder开发数字信号处理实验的流程。3、理解IIR滤波器设计的原理和方法。三、实验原理:IIR(Infin
2、ite Impulse Response)滤波器,即无限冲击响应滤波器,其冲击响应是无限长的。IIR 滤波器一般采用递归式方法来实现 。也就是说,滤波器当前输出 y(n)是输入序列x(n)和以前各输出值 y(n 1) 、y(n2) 的函数,这可以用下列差分方程来表示:(4-1 ))()()(10inyainxbyNiMi 其中 ,N 是 IIR 滤波器的阶数。相应地,IIR 滤波器的系统函数可以表示为:M(4-2 )Niiiizaz10)(HIIR 滤波器除了具有极点之外,一般还存在零点。由于极点的存在,IIR 滤波器用递归结构来实现较为简单。实现 IIR 滤波器的基本结构共有三种:直接型、级
3、联型和并联型。下面简单介绍前两种 IIR 滤波器的结构。1、直接型利用公式(4-2)可以直接导出 I型的 IIR滤波器结构,可用下式表示:0()1MiiNiiHzba(4-3)由此可得, 和反馈环节 中的延时单元不能共用,需要 M+N个延时单元 。为了Miizb01iiz 1z减少延时单元,对于线性系统,公式(4-3)也可以写成:(4-4 )MiiNi zbaH01)(由此可以导出直接 II 型的滤波器结构。图 4-1 表示了一个直接 II 型 IIR 滤波器的结构,该滤波器的阶数是四阶,共存在四个反馈环节。实验七 IIR 滤波器2图 4-21 直接 II型 IIR滤波器结构2、级联型对公式(
4、4-4 )的分子、分母进行因式分解,由于 H(z)中的系数都为实数,H(z) 的极、零点只可能是实数或者复共轭对,对于复共轭对因子,可以复合成二阶因子:(4-18 )12121231)(Nii iiMii iizaabbAzH式中的系数都为实数。如果把实数因子(一阶因子)看成是二阶项系数为 0 的二阶因子,则上式可以写成:(4-19 )101021)()( NiiNi ii zHAzabAz其中 。21)(azbHiii由此可见, 是一个 2阶的 IIR滤波器,N 阶 IIR滤波器可以看成是由多个 2阶 IIR滤波器级联而成的。四、实验步骤:(1)打开 MATLAB。(2)新建 model 文
5、件 ,执行 File-Save 保存文件,将其命名为 IIR。(3)新建 IIR 滤波器系统如图 7-1,添加的模型和设置参数如表 7-1。实验七 IIR 滤波器3图 7-1 IIR滤波器子系统设计表 7-1 IIR 滤波器子系统模块及参数位置 名称 参数设置 重置名称Altera DSP Builder Blockset IO&BusBus conversion Bus Type:Signed Integer,Input:32,Output:16,Input Bit Connected to Output LSB:16,Altera DSP Builder Blockset Arithmet
6、icParallel Adder SubtractorNumber of Inputs:2Altera DSP Builder Blockset ArithmeticParallel Adder SubtractorNumber of Inputs:4 Parallel Adder Subtractor1Altera DSP Builder Blockset ArithmeticParallel Adder SubtractorNumber of Inputs:5 Parallel Adder Subtractor2Altera DSP Builder Blockset StorageDela
7、yAltera DSP Builder Blockset StorageDelay Delay1Altera DSP Builder Blockset StorageDelay Delay2Altera DSP Builder Blockset StorageDelay Delay3Altera DSP Builder Blockset ArithmeticGain Gain Value:-1213 Gain Value Number of Bits.:12A1Altera DSP Builder Blockset ArithmeticGain Gain Value:1185Gain Valu
8、e Number of Bits.:12A2Altera DSP Builder Blockset ArithmeticGain Gain Value:-540 Gain Value Number of Bits.:12A3Altera DSP Builder Blockset ArithmeticGain Gain Value:96 Gain Value Number of Bits.:12,A4Altera DSP Builder Blockset ArithmeticGain Gain Value:2 Gain Value Number of Bits.:12B0实验七 IIR 滤波器4
9、Altera DSP Builder Blockset ArithmeticGain Gain Value:10 Gain Value Number of Bits.:12B1Altera DSP Builder Blockset ArithmeticGain Gain Value:15 Gain Value Number of Bits.:12B2Altera DSP Builder Blockset ArithmeticGain Gain Value:10 Gain Value Number of Bits.:12B3Altera DSP Builder Blockset Arithmet
10、icGain Gain Value:2 Gain Value Number of Bits.:12B4Altera DSP Builder Blockset ArithmeticGain Gain Value:1/512Bus Type:Signed FractionalGain Value Number of Bits.: 2.Gain Value Number of Bits:10A5(4)将图 7-1 的所有模块选中,单击鼠标右键,点击 Creat Subsystem,点击子系统下文本,将其重命名为“IIR”。(5)IIR 系统的总体设计如图 7-2 所示图 7-2 IIR系统总体图表
11、7-2 IIR 系统剩余模块及参数位置 名称 参数设置 重置名称Altera DSP Builder Blockset IO&BusAltbus Bus Type:Signed Integer,number of Bits:16 ,Altera DSP Builder Blockset IO&BusAltbus number of Bits:16 Altbus1Altera DSP Builder Blockset StorageLUT Address Width:10 ,Data Type:Signed Integer ,Number Of Bits.:12,MATLAB Array:511
12、*sin(2*pi*2e4/5e4*(0:1:212)Altera DSP Builder Blockset StorageLUT Address Width:10 ,Data Type:Signed Integer ,Number Of Bits.:12,MATLAB Array:511*sin(2*pi*1e3/5e4*(0:1:212)LUT1Altera DSP Builder Blockset IO&BusOutput Bus Type:Signed Integernumber of bits.:24Altera DSP Builder Blockset ArithmeticIncr
13、ement DecrementBus Type:Signed Integer,number of bits.:10,勾选 Specify Clock,Clock:ClockAltera DSP Builder Blockset IO&BusIncrement DecrementBus Type:Signed Integer,number of bits.:10,勾选 Specify Clock,Clock:Clock,Increment Decrement1实验七 IIR 滤波器5Altera DSP Builder Blockset ArithmeticParallel Adder Subt
14、ractorNumber of Inputs:2 Parallel Adder Subtractor3Altera DSP Builder Blockset AltLabSignal CompilerAltera DSP Builder Blockset AltLabTestBenchAltera DSP Builder Blockset Rate ChangeClock Simulink Sample Time:2e-5Simulink Sinks Scope 双击 Scope 模块并设置参数,点击菜单栏中的 ,将 number of axes 设为 219、执行Simulation-Con
15、figuration Parameters,将solver设为discrete,Type 设为Fixed-step,Tasking mode for periodic sample times设为:Single Tasking ,Stop Time设为1e-2 。20、点击菜单栏中的黑色小三角,启动simulation ,simulation结束后,双击Scope模块,打开波形观察界面,在四个波形上依次点击鼠标右键,选择Autoscale,即可观察simulation后的IIR滤波器的仿真波形。21、点击Signal Compiler模块,打开参数设置页面,点击compile,结束后,关闭该页
16、面。22、点击TestBenchOn模块,打开模块参数界面,在Advanced选项卡中,点选Lauch GUI,并依次点击Generate HDL,Run Simulink和Run Modelsim,启动RTL 级仿真。23、随后显示的界面即为Modelsim RTL级仿真的波形图。点击wave-default中的unlock 按钮选中tb_IIR/dut/output信号,点击鼠标右键,选中Propertyties选项,选择Format的Analog,将Height设为100,Scale 设为1.0,点击【OK 】确认。观察波形。图 7-4 管脚分配(16)关闭 MATLAB。在位置 “D:
17、Program FilesMATLAB71workIIR_dspbuilder”(MATLAB 安装实验七 IIR 滤波器6目录下的 workIIR_dspbuilder)打开文件 IIR.qpf 。(17)工具栏中点击 Assignments,选中 Device,在器件 family 中选择 Cyclone ,选择下拉菜单中的 EP2C35F672C6.,点击 finish。(18)执行Assignmets-Assignment Editor,将Category 设为 Pin,按照表4-1 对引脚进行设置,并保存。(19)执行Tools-SignalTap Logic Analyzer,在D
18、ata窗口中的空白处双击,在弹出的对话框中将Fiter设为 all®isters:post fittings,点击List,将Output 添加至右边的窗口中,点击【OK 】确认。在右边的对话框中将Clock设为Clock信号;Sample depth设置为2K;点选Trigger in,Source 设为Clock信号,Pattern设为Rising edge;。保存该文件,若弹出对话框询问是否将文件添加至工程,选择 Yes。点击菜单栏中的(紫色三角) ,重新对工程进行编程。(20)打开实验箱,接入电源,用USB Blaster线将电脑和实验箱连接起来,选择菜单栏中的 图标,(21)点
19、击Hardware Setup,选择 USB-0,点击【OK】确认。选中IIR.sof文件,点击Start,将文件下载到实验板上。在Tools-SignalTap Logic Analyzer界面点击Hardware 右边的Setup ,将其设为USB-BlasterUSB-0。(22)将实验箱上的开关SW0。点击 开始运行工程, 10s后,点击 结束运行。SignalTap中的data窗口,右键点击Output,选择Ungroup;选中Output0Output6,右键点击选择Group。右键点击Output06,选择 Bus Display FormatSigned Line Chart,即可看到硬件实现的波形。五、实验结果:(1)Simulink仿真波形:(2)RTL级仿真波形实验七 IIR 滤波器7(3)硬件实现波形实验七 IIR 滤波器8六、讨论分析:(1)实验中遇到的问题和解决方法。问题:这个实验的计算量很大,计算机容易卡住,所以需要慢慢等待(2)介绍一下滤波器。滤波器中,把信号能够通过的频率范围,称为通频带或通带;反之,信号受到很大衰减或完全被抑制的频率范围称为阻带;通带和阻带之间的分界频率称为截止频率;理想滤波器在通带内的电压增益为常数,在阻带内的电压增益为零;实际滤波器的通带和阻带之间存在一定频率范围的过渡带