iir(infinite impulse response)无线脉冲响应滤波器。
系统传递函数为:
系统的差分方程可写为:
iir优缺点:
1)在相同的幅频条件下,滤波器阶数比fir滤波器低。
2)iir滤波器占用的硬件资源比较少(相比fir滤波器)。
3)不具备严格的线性相位特性。
1 iir数字滤波器的基本结构及类型
图1 直接i型
图2 直接ii型
图3 级联型
图4 并联型
2 设计目标
采用matlab buffer函数设计一个iir滤波器低通滤波器,通带截止频率为1khz,输入信号为1khz+3khz sin波形,经过iir滤波器后输出为1khz sin波,其他不做要求。(本文只对iir设计思想进行验证不做性能要求)。
3 matlab的设计验证
matlab源码:
%参数定义
fs =44100; %sample rate frequncyfc = 1000; %1khzfe = 3000; %外部输入信号 3khzn = 1024;q =16;
%波形产生
sin_osc =sin(t*fc);sin_e =sin(t*fe);sin_add = sin_osc+sin_e;
%iir 滤波器系数(低通滤波器)
[b a] = butter(3,fc/(fs/2),'low'); %滤波(混频后)y = filter(b,a,sin_add); f_osc =fft(sin_osc,n);f_osc=20*log(abs(f_osc))/log(10); %换算成dbw单位ft=[0:(fs/n):fs/2]; %转换横坐标以hz为单位f_osc=f_osc(1:length(ft));
%滤波器系数量化
mab =max(max(abs(a),abs(b)));%16bit 量化qb = round((b/mab)*(2^(q-1)-1));qa = round((a/mab)*(2^(q-1)-1));%%%%qm =floor(log2(mab/a(1)));if qm
%绘图
%时域波形图
figure(1),hold onsubplot(221),plot(t(1:128),sin_osc(1:128),'-');legend('sin 1khz');title('sin 1khz');subplot(222),plot(t(1:128),sin_e(1:128),'-');legend('sin 3khz');title('sin 3khz');subplot(223),plot(t(1:128),sin_add(1:128),'-');legend('sin 1khz add 3khz');title('sin 1khz add 3khz');subplot(224),plot(t(1:128),y(1:128),'-');legend('lpf 结果');title('lpf 结果');grid;hold off
%频域波形
figure(2),hold onsubplot(221);plot(ft,f_osc);xlabel('频率(hz)','fontsize',8); ylabel('功率(dbw)','fontsize',8);title('信号频谱图 2khz','fontsize',8);legend('sinosc');subplot(222);plot(ft,f_e);xlabel('频率(hz)','fontsize',8); ylabel('功率(dbw)','fontsize',8);title('信号频谱图3khz','fontsize',8);legend('sine');subplot(223);plot(ft,f_add);xlabel('频率(hz)','fontsize',8); ylabel('功率(dbw)','fontsize',8);title('信号频谱图2khz 和 3khz','fontsize',8);legend('sin add');subplot(224);plot(ft,y_f);xlabel('频率(hz)','fontsize',8); ylabel('功率(dbw)','fontsize',8);title('信号频谱图滤波后','fontsize',8);legend('lpf结果');hold off
%幅频响应
figure(3);subplot(211);stem(fb);title('fb单位抽样响应','fontsize',8);subplot(212);plot(f,mag);xlabel('频率(hz)','fontsize',8);ylabel('幅度(db)','fontsize',8);title('freqz()幅频响应','fontsize',8);
图5 matlab时域波形
如图5所示,(5,1)波形加(5,2)波形得到(5,3)波形,经过iir滤波器后得到(5,4)时域波形。
图6 matlab频域分析
如图6所示,(6,3)与(6,4)相比3khz大概被削弱25db左右。
图7 iir幅频响应分析
如图7所示,通过幅频响应(7,2)可知3khz所在位置大概被削弱25db。
4 fpga设计验证
fpga iir.v设计源码:
`timescale 1ps/1psmodule iir( input mclk,//45.1584mhz input reset_n, input signed[31:0] pcm_in, output signed[31:0] pcm_out ); localparam last_cycle = 1023;reg [9:0] i;wire signed [15:0] b1,b2,b3,b4;wire signed [15:0] a2,a3,a4;wire signed [31:0] xn;reg signed [31:0] xn1,xn2,xn3;reg signed [31:0] yn,yn1,yn2,yn3;reg signed [47:0] r_x1;reg signed [47:0] r_x2;reg signed [47:0] r_y;reg signed [47:0] r_s;reg signed [47:0] r_s1;//coffe bassign b1 = 3;assign b2 = 8;assign b3 = 8;assign b4 = 3;//coffe aassign a2 = -22243;assign a3 = 20231;assign a4 = -6159;assign xn = pcm_in;assign pcm_out = yn;always @(posedge mclk or negedge reset_n) begin if(reset_n == 1'b0) begin i <= 0;xn1 <= 0;xn2 <= 0;xn3 <= 0;yn <= 0;yn1 <= 0;yn2 <= 0;yn3 <= 0;r_x1 <= 0;r_x2 <= 0;r_y <= 0;r_s <= 0;r_s1 <= 0; end else begin i<= i+1; if(i==1) begin r_x1 <= b1*(xn + xn3); r_x2 <= b2*(xn1 + xn2);//zero(n) r_y <= a2*yn1+a3*yn2+a4*yn3;//pole(n) $display(r_x1 = %d,r_x2 = %d,r_y = %d,r_x1,r_x2,r_y);endif(i==2) begin r_s 13);if(i==4) yn <= r_s1[31:0];if(i==5) begin //pipeline xn1 <= xn; xn2 <= xn1; xn3 <= xn2; yn1 <= yn; yn2 <= yn1; yn3 <= yn2;end endend
endmodule
实验结果:
modelsim波
图8 modelsim 时域波形
由图8可知,pcm_out1(1khz + 3khz)经过iir滤波器后滤除了3khz,设计成功。
matlab结果分析:
图9 fpga输入波形matlab时域分析
图10 fpga结果数据分析
由图10的频域分析结果可知3khz大概被削弱25db左右,设计成功。
人工智能有望改变现有医疗格局
具有LCD显示屏的超声波传感器HC-SR04的制作
微软最有权势的华人陆奇谈云计算和人工智能
微软推ARM架构PC,Intel很受伤
智能家居演进需要物联网标准化
基于FPGA的IIR数字滤波器设计
南车与中科院联合发力“绿色中国芯”
RS485工业智能网关可以采集什么设备?有什么功能及特点
利用Tcl脚本节省编译时间
压力试验机,如何正确安装试验设备?
消费者应注意数字电视病毒风险
「方案分享」物联网智能家居无线传输解决方案
2019智能制造国际合作发展论坛成功举行,推动智能制造国际合作
华为携手中国联通共同打造开放的MEC应用体系和MEC社区
2017下半年最值得期待手机汇总:小米Note3、iPhone8、华为Mate10,是你你选谁?
关于无线体统共存干扰的诊断和优化介绍和应用
电磁屏蔽的作用
虹科方案|释放总线潜力:汽车总线离线模拟解决方案
“2013先进封装与制造技术论坛”聚焦如何实现小型化与微型化系统设计
Linear双通道降压型稳压器具有上电复位和看门狗定时器