1、IIRIIR滤波器的高效率波器的高效率设计12 2ContentsContents研究背景研究背景IIR滤波器的原理波器的原理VerilogHDL设计Quartus时序仿真序仿真FPGA设计及及验证结论23 3研究目的:研究目的:随着社会随着社会经济的的飞速速发展,科技的展,科技的进步,人步,人们对滤波器的了波器的了解在不断的加深,解在不断的加深,对此的研究也在不断的此的研究也在不断的进步当中。步当中。研究意研究意义:数字数字滤波器在各种数字信号波器在各种数字信号处理中理中发挥着十分重要的作用着十分重要的作用.以硬件描述以硬件描述语言言设计电路,路,烧至至FPGA测试,是,是现代技代技术主流。
2、主流。主要研究内容:主要研究内容:-IIR-IIR滤波器的原理及波器的原理及结构。构。-基于基于Verilog HDLVerilog HDL语言言对IIR IIR 滤波器波器设计。-使用使用FPGAFPGA进行仿真行仿真验证。研究背景34实现数字数字滤波的核心器件,是通波的核心器件,是通过一定的运算关系改一定的运算关系改变输入信入信号所含号所含频率成分的相率成分的相对比例或者比例或者滤除某些除某些频率成分,达到提取率成分,达到提取和加和加强信号中的有用成分,削弱无用的干信号中的有用成分,削弱无用的干扰成分的目的的。成分的目的的。数字数字滤波器:波器:数字数字滤波器波器 数字数字滤波器的分波器的
3、分类:数字数字滤波器按照其冲激响波器按照其冲激响应函数的函数的时域特性,可分域特性,可分为无限无限长冲激响冲激响(infiniteimpulseresponse,IIR)滤波器和有限波器和有限长冲冲激响激响应(finiteimpulseResponse,FIR)滤波器。波器。45在在满足相同指足相同指标下,下,IIR数字数字滤波器因具有波器因具有结构构简单、占、占用存用存储空空间少、运算速度快、少、运算速度快、较高的高的计算精度和能算精度和能够用用较低的低的阶数数实现、较好的好的选频特性等特点,在不要求特性等特点,在不要求严格格线性相位的情况下,性相位的情况下,IIR滤波器的波器的应用相当广泛
4、用相当广泛。IIRIIR滤波器:波器:IIRIIR滤波器:波器:IIR(InfiniteImpulseResponse),又名,又名“无限脉冲响无限脉冲响应数字数字滤波器波器”,或,或“递归滤波器波器”。IIR滤波器波器5IIR滤波器的波器的设计方法方法IIRIIRIIR滤波器波器又名又名递归滤波器,波器,顾名思名思义,具有反,具有反馈,一般,一般认为具有无限的脉冲响具有无限的脉冲响应。系系统传递函数函数为:6IIR滤波器的波器的设计方法方法a(0)a(1)a(2)a(M)b(N)z-1 b(2)z-1 b(1)z-1 z-1z-1z-1x(n)x(n-1)x(n-2)x(n-M).y(n)
5、y(n-1)y(n-2)y(n-N)IIRIIR滤波器的波器的结构构图反馈环路前馈环路78 脉冲响脉冲响应不不变法法:存在存在频谱混叠混叠现象象 双双线性不性不变法法:会出会出现相位失真相位失真 高效率高效率设计:-引入引入ROMROM-采用采用ROMROM查找表方法可以避免使用硬件乘法器找表方法可以避免使用硬件乘法器-可以根据不同的要求在不同可以根据不同的要求在不同规模的模的FPGAFPGA上加以上加以实现IIR滤滤波器的波器的设计设计方法方法8IIR滤波器的波器的设计方法方法 模模拟滤波器系波器系统函数函数 进行拉普拉氏反行拉普拉氏反变换 脉冲响脉冲响应变换法法9IIR滤波器的波器的设计方
6、法方法 数字数字积分器的系分器的系统函数函数即一般模即一般模拟滤波器基本波器基本单元元 得到与其性能相近的数字得到与其性能相近的数字滤波器:波器:s与与z之之间的关系的关系:双双线性性变换给定定H(s),将上式将上式带入即可:入即可:1011IIR滤滤波器的波器的VerilogHDL设计设计(1)主程序:主程序:moduleIIR(W,En,Data_out,clock,reset);input3:0W;inputEn;output17:0Data_out;reg15:0Y;wire59:0rom_out1;wire59:0rom_out2;inputclock,reset;reg7:0Sam
7、ples_in1:8;reg7:0Samples_out1:8;wire17:0Data_feedforward;wire17:0Data_feedback;integerk;dec4to16dec(W,En,Y);rom1rom1(Y,rom_out1);rom2rom2(Y,rom_out2);assignData_feedforward=rom_out15:0*Y13:6+rom_out111:6*Samples_in1+rom_out117:12*Samples_in2+rom_out123:18*Samples_in3+rom_out129:24*Samples_in4+rom_ou
8、t135:30*Samples_in5+rom_out141:36*Samples_in6+rom_out147:42*Samples_in7+rom_out153:48*Samples_in8;1112IIR滤滤波器的波器的VerilogHDL设计设计(2)assignData_feedback=rom_out25:0*Samples_out1+rom_out211:6*Samples_out2+rom_out217:12*Samples_out3+rom_out223:18*Samples_out4+rom_out229:24*Samples_out5+rom_out235:30*Samp
9、les_out6+rom_out241:36*Samples_out7+rom_out247:42*Samples_out8;assignData_out=Data_feedforward+Data_feedback;always(posedgeclock)if(reset=1)for(k=1;k=8;k=k+1)beginSamples_ink=0;Samples_outk=0;endelsebeginSamples_in1=Y13:6;Samples_out1=Data_out;for(k=2;k=8;k=k+1)beginSamples_ink=Samples_ink-1;Samples
10、outk=Samples_outk-1;endendendmodule1213IIR滤滤波器的波器的VerilogHDL设计设计(3)译码器子程序:器子程序:moduledec4to16(W,En,Y);input3:0W;inputEn;outputreg15:0Y;always(W,En)beginif(En=0)Y=16b0000000000000000;else case(W)0:Y=16b0000000000000001;1:Y=16b0000000000000010;2:Y=16b0000000000000100;3:Y=16b0000000000001000;4:Y=16b00
11、00000000010000;5:Y=16b0000000000100000;6:Y=16b0000000001000000;7:Y=16b0000000010000000;8:Y=16b0000000100000000;9:Y=16b0000001000000000;10:Y=16b0000010000000000;11:Y=16b0000100000000000;12:Y=16b0001000000000000;13:Y=16b0010000000000000;14:Y=16b0100000000000000;15:Y=16b1000000000000000;endcaseendendmo
12、dule1314IIR滤滤波器的波器的VerilogHDL设计设计(4)rom1rom1子程序:子程序:modulerom1(Y,rom_out1);input15:0Y;output59:0rom_out1;reg59:0rom_out1;always(Y2:0)begincase(Y2:0)3d0:rom_out1=6d1,6d7,6d13,6d15,6d36,6d78,6d59,6d6,6d14;3d1:rom_out1=6d3,6d14,6d23,6d25,6d46,6d68,6d51,6d9,6d17;3d2:rom_out1=6d5,6d21,6d33,6d35,6d38,6d58
13、6d55,6d79,6d21;3d3:rom_out1=6d7,6d28,6d43,6d45,6d39,6d48,6d53,6d43,6d23;3d4:rom_out1=6d9,6d35,6d53,6d55,6d32,6d38,6d51,6d33,6d26;3d5:rom_out1=6d11,6d42,6d63,6d65,6d57,6d28,6d76,6d44,6d33;3d6:rom_out1=6d13,6d49,6d73,6d75,6d65,6d18,6d66,6d54,6d34;3d7:rom_out1=6d15,6d56,6d83,6d85,6d87,6d8,6d56,6d34,6d
14、51;endcaseendendmodule1415IIR滤滤波器的波器的VerilogHDL设计设计(5)rom2rom2子程序:子程序:modulerom2(Y,rom_out2);input15:0Y;output59:0rom_out2;reg59:0rom_out2;always(Y5:3)begincase(Y5:3)3d0:rom_out2=6d11,6d7,6d13,6d15,6d36,6d78,6d59,6d6;3d1:rom_out2=6d13,6d14,6d23,6d25,6d46,6d68,6d51,6d9;3d2:rom_out2=6d15,6d2,6d33,6d35
15、6d38,6d58,6d55,6d79;3d3:rom_out2=6d17,6d8,6d43,6d45,6d39,6d48,6d53,6d43;3d4:rom_out2=6d19,6d5,6d53,6d55,6d32,6d38,6d51,6d33;3d5:rom_out2=6d21,6d42,6d63,6d65,6d57,6d28,6d76,6d44;3d6:rom_out2=6d23,6d49,6d73,6d75,6d65,6d18,6d66,6d54;3d7:rom_out2=6d25,6d6,6d8,6d85,6d87,6d8,6d56,6d34;endcaseendendmodule
16、1516 输入信号入信号clk,reset,Wclk,reset,W,EnEn 给输入信号入信号赋4 4位有效位有效值 W:1100W:1100 输出出结果果Data_outData_out时序仿真序仿真结果果图IIR滤滤波器的波器的时时序仿真序仿真161717FPGAFPGA设计及及验证 FPGA FPGA(FieldFieldProgrammable Gate ArrayProgrammable Gate Array):):现场可可编程程门 阵列,一片列,一片FPGAFPGA、不同的、不同的编程数据,可程数据,可实现不同的不同的电路功能。路功能。FPGAFPGA设计顺序:序:-基于基于Ve
17、rilog HDLVerilog HDL编程程-Quartus Quartus 时序仿真序仿真-FPGAFPGA设计-逻辑分析分析仪1718 译码器器(dec4to16):(dec4to16):输入入4 4位地址位地址线W W、一位使能信号、一位使能信号线EnEn,输出出1616位的位的Y Y信号,再信号,再 将将这1616位位输出分出分别作作为两个两个romrom和和IIRIIR模模块的的输入。入。rom1rom1:存存储前向反前向反馈系数的系数的值,共有,共有8种种选择空空间。rom2:rom2:存存储后向反后向反馈系数的系数的值,也是有种,也是有种选择空空间。FPGAFPGA设计方案(方
18、案(1 1)18FPGAFPGA设计方案(方案(2 2)clkRSTWData_out19dec4to16rom1rom2IIR滤波波器器En该方案基于方案基于FPGA的的设计图如下所示:如下所示:19输入数据输入时钟信号清零信号生成器输出数据FPGA模模块图2021FPGA设计环境电脑FPGA逻辑分析分析仪下下载输出信号出信号FPGAFPGA设计流程流程图实际FPGAFPGA测试环境境2122逻辑分析分析仪中的仿真中的仿真结果果CH0是是Data_out的最低位,的最低位,CH17是是Data_out的最高位,的最高位,自下而上自下而上读出出结果果为Data_out=000000001110
19、000000。经过验证,此,此结果与理果与理论值相符合,相符合,FPGA仿真成功。仿真成功。222323结 论 介介绍并并给出了高效率出了高效率IIRIIR滤滤波器的波器的Verilog HDLVerilog HDL设计设计。高效率高效率高效率高效率设计设计设计设计关关关关键键键键所在:所在:所在:所在:-引入引入引入引入ROMROM -采用采用ROMROM查查找表方法找表方法,存存储储反反馈馈系数,且系数系数,且系数选择选择空空间间 大,大,节省了省了FPGAFPGA硬件硬件资资源。源。最最终终以以FPGAFPGA实实践践 提高可行性、提高可行性、应应用性用性 -处处理器理器:EXCALIBUR ARM:EXCALIBUR ARM -FPGA-FPGA集成集成块组块组件件:EPXA4F672C3:EPXA4F672C3 -逻辑单逻辑单元元:411/10,570:411/10,570 -端口端口:25/336:25/33623
©2010-2025 宁波自信网络信息技术有限公司 版权所有
客服电话:4009-655-100 投诉/维权电话:18658249818