iir滤波器_iir滤波器去噪 - CSDN
精华内容
参与话题
  • 引言经典IIR(Infiniti Impulse Response)数字滤波器,虽然我在《信号与系统》和《数字信号处理》里学过,但现在已经忘得差不多了。翻翻书,还是能回忆起来。好像有Butterworth滤波器,ChebyshevI型、II型滤波器、...

    引言

    经典IIR(Infiniti Impulse Response)数字滤波器,虽然我在《信号与系统》和《数字信号处理》里学过,但现在已经忘得差不多了。翻翻书,还是能回忆起来。

    好像有Butterworth滤波器,ChebyshevI型、II型滤波器、椭圆滤波器,等等。根据通带特性,分为低通、高通、带通、带阻、全通等。

    设计方法,如果用手算的话,模拟的好像还要查表,数字的好像是先设计模拟的,再用脉冲响应不变法、双线性变换法设计数字的。

    这里有IIR数字滤波器的百度词条,可以看看。


    设计步骤

    整个设计的步骤大致如下。

    1. 根据需求,提出所需滤波器的类型和相应的(模拟)指标;

    2. 根据1的指标,转换为数字指标;

    3. 求滤波器的阶数;

    4. 求滤波器的系数;

    5. 根据系数,检验其频率响应是否满足1的需求。如果满足,结束;否则,重新设计。


    设计实例

    下面给出LPF和HPF的例子。

    IIR 低通(Low Pass Filter)

    %% 内容:我自己设计的LPF滤波器
    % 作者:qcy
    % 版本:v1.0
    % 时间:2016年10月27日20:13:01
    
    %% 设计一个数字低通滤波器 IIR
    % fp = 500 Hz, fs = 750 Hz, Fs = 8000 Hz, Rp = 3 dB, Rs = 50 dB
    
    clear;
    close all;
    clc
    
    %% 0. 把所有模拟指标变换为数字指标
    fp = 500; % Hz
    fs = 750;
    Fs = 8000;
    Fs2 = Fs/2;
    Rp = 3;
    Rs = 50;
    
    Wp = fp/Fs2; % 注意,这个是对(Fs/2)归一化的频率!!! 量纲为[1]
    Ws = fs/Fs2; % 注意,这个是归一化频率!!!
    
    %% 1. Butterworth  --> 最平坦
    % (1) 确定阶数
    [n,Wn] = buttord(Wp,Ws,Rp,Rs); % Wn 是对(Fs/2)归一化的频率。 量纲为[1]
    % (2) 确定系数
    [b,a] = butter(n,Wn);
    % freqz(b,a,1e4);
    [H,w] = freqz(b,a,1e4);
    figure;
    plot(w/2/pi*Fs,20*log10(abs(H)+eps));
    
    figure
    zplane(b,a);
    
    %% 2. Chebyshev II型 --> 阻带等波纹
    [n,Wn] = cheb2ord(Wp,Ws,Rp,Rs);
    [b,a] = cheby2(n,Rs,Wn);
    [H,w] = freqz(b,a,1e4);
    figure;
    plot(w/2/pi*Fs,20*log10(abs(H)+eps));
    
    figure
    zplane(b,a);
    
    %% 3. Chebyshev I型 --> 通带等波纹
    [n,Wn] = cheb1ord(Wp,Ws,Rp,Rs);
    [b,a] = cheby1(n,Rs,Wn);
    [H,w] = freqz(b,a,1e4);
    figure;
    plot(w/2/pi*Fs,20*log10(abs(H)+eps));
    
    figure
    zplane(b,a);

    Butterworth LPF



    Chebyshev I LPF --> 因为要设计低通,所以通带等波纹的Chebyshev II型肯定是不行的。如下图。


    Chebyshev II LPF。阻带等波纹还可以。



    IIR 高通(High Pass Filter)


    %% 内容:我自己设计的HPF滤波器
    % 作者:qcy
    % 版本:v1.0
    % 时间:2016年10月27日20:54:10
    
    %% 设计一个数字高通滤波器 IIR
    % fp = 200 Hz, fs = 1000 Hz, Fs = 8000 Hz, Rp = 3 dB, Rs = 20 dB
    
    clear;
    close all;
    clc
    
    %% 0. 把所有模拟指标变换为数字指标
    fp = 200; % Hz
    fs = 800;
    Fs = 8000;
    Fs2 = Fs/2;
    Rp = 3;
    Rs = 20;
    
    Wp = fp/Fs2; % 注意,这个是对(Fs/2)归一化的频率!!! 量纲为[1]
    Ws = fs/Fs2; % 注意,这个是归一化频率!!!
    
    %% 1. Butterworth  --> 最平坦
    % (1) 确定阶数
    [n,Wn] = buttord(Wp,Ws,Rp,Rs); % Wn 是对(Fs/2)归一化的频率。 量纲为[1]
    % (2) 确定系数
    [b,a] = butter(n,Wn,'high');
    % freqz(b,a,1e4);
    [h,w] = freqz(b,a,1e4);
    figure(1);
    plot(w/2/pi*Fs,20*log10(abs(h)+eps));
    
    %% 2. Chebyshev II型 --> 阻带等波纹
    [n,Wn] = cheb2ord(Wp,Ws,Rp,Rs);
    [b,a] = cheby2(n,Rs,Wn,'high');
    [h,w] = freqz(b,a,1e4);
    figure(2);
    plot(w/2/pi*Fs,20*log10(abs(h)+eps));
    
    %% 3. Chebyshev I型 --> 通带等波纹
    [n,Wn] = cheb1ord(Wp,Ws,Rp,Rs);
    [b,a] = cheby1(n,Rs,Wn,'high');
    [h,w] = freqz(b,a,1e4);
    figure(3);
    plot(w/2/pi*Fs,20*log10(abs(h)+eps));


    Chebyshev I LPF --> 因为要设计高通,所以阻带等波纹的Chebyshev I型是不行的。
    阻带等波纹,相当于是会有很多低频也能通过HPF。明显不能实现HPF的功能。

    展开全文
  • IIR数字滤波器设计(数字信号处理)

    万次阅读 多人点赞 2019-09-14 16:15:59
    IIR数字滤波器设计(数字信号处理) 一、实验目的 1.熟悉双线性变换法设计IIR数字滤波器的原理与方法。 2.掌握IIR数字滤波器的MATLAB实现方法,会调用ellipord()和ellip() 函数设计各种滤波器。 3.观察分析...

    ~~ 如果有什么问题可以在我的个人博客留言 ,我会及时回复。欢迎来访交流 ~~


                   IIR数字滤波器设计(数字信号处理)

    一、实验目的

    1.熟悉双线性变换法设计IIR数字滤波器的原理与方法。

    2.掌握IIR数字滤波器的MATLAB实现方法,会调用ellipord()和ellip() 

    函数设计各种滤波器。

    3.观察分析滤波器输入输出数据波形,理解数字滤波的概念。

                 

    二、实验原理及步骤

    (一)实验原理-双线性变换法

    数字滤波器是对数字信号实现滤波的线性时不变系统。数字滤波实质上是一种运算过程,实现对信号的运算处理。输入数字信号(数字序列)通过特定的运算转变为输出的数字序列,因此,数字滤波器本质上是一个完成特定运算的数字计算过程,也可以理解为是一台计算机。描述离散系统输出与输入关系的卷积和差分方程只是给数字信号滤波器提供运算规则,使其按照这个规则完成对输入数据的处理。时域离散系统的频域特性:

    其中 分别是数字滤波器的输出序列和输入序列的频域特性(或称为频谱特性),是数字滤波器的单位取样响应的频谱,又称为数字滤经过滤波后的频域响应。只要按照输入信号频谱的特点和处理信号的目的,适当选择,使得滤波后满足设计的要求,这就是数字滤波器的滤波原理。

    数字滤波器根据其冲激响应函数的时域特性,可分为两种,即无限长冲激响应(IIR)数字滤波器和有限长冲激响应(FIR)数字滤波器。IIR 数字滤波器的特征是,具有无限持续时间冲激响应,需要用递归模型来实现,其差分方程为:

     

    系统函数为:

                 

    设计IIR滤波器的任务就是寻求一个物理上可实现的系统函数H(z),使其频率响应H(z)满足所希望得到的频域指标,即符合给定的通带截止频率、阻带截止频率、通带衰减系数和阻带衰减系数。

    基本设计过程如下:

    1.将给定的数字滤波器指标转换成模拟滤波器的指标。

    2.设计模拟滤波器。

    3.将模拟滤波器转换成数字滤波器系统函数。

    (二)实验步骤

    1.在完成滤波器设计之后,采用filter()对输入信号进行滤波处理。调用信号产生函数mstg产生由抑制载波调制信号相加构成的复合信号st,该函数还会自动绘图显示其时域波形和幅频特性曲线,如下图1所示。

     

    由图1中(a)和(b)可见,三路信号时域混叠无法在时域分离,但在频域是可以分离的,可以通过滤波的方法进行分离,即通过设计IIR滤波器,分离这三个不同频率的信号。

    2.要求将三路信号进行分离,通过观察st信号的幅频特性曲线,分别确定可以分离st中三路抑制载波单频调幅信号的三个滤波器(低通滤波器、带通滤波器、高通滤波器)的通带截止频率和阻带截止频率。滤波器的通带最大衰减为0.1dB,阻带最小衰减为60dB。

    3.调用ellipord()和ellip()分别设计这三个椭圆滤波器,并绘图显示其损耗函数曲线分别如图2,图3,图4。

                                                                     图2 低通损耗函数曲线

    4.调用filter(),用三个滤波器分别对信号产生函数mstg产生的信号进行滤波,分离出st中的不同载波频率信号,并绘图显示三个信号的时域波形,分别如图5,图6,图7。

     

     

    三、实验结果分析

    (一)函数mstg

    阅读信号产生函数mstg,确定三路调幅信号的载波频率和调制信号频率。第1路调幅信号的载波频率fc1=1000Hz,调制信号频率fm1=100Hz。第2路调幅信号的载波频率fc2=500Hz,调制信号频率fm2=50Hz。第3路调幅信号的载波频率fc2=250Hz,调制信号频率fm2=25Hz。

    • 采样点数对频谱图的影响

    1.调幅信号

    当N=800,1600,1800,2000时,调幅信号产生的频谱图如图8,9,10,11所示。

                                                                 图8 N=800时s(t)的波形及频谱图

    分析:因为信号s(t)是周期序列,频谱分析时要求观察时间为整数倍周期。s(t)的每个频率成分都是25Hz的整数倍。采样频率Fs=10kHz=25*400Hz,即在25Hz的正弦波的一个周期中采样400个点。所以,当N为400的整数倍时一定为s(t)的整数倍周期。因此,采样点数N=800,1600,2000时,对s(t)进行N点FFT可以得6根理想谱线,而当N=1800时,不是400的整数倍,则不能得到。

    2.AM调幅信号

    当N=800,1600,1800,2000时产生的频谱图如图12,13,14,15所示。

    分析:因为信号s(t)时周期序列,频谱分析时要求观察时间为整数倍周期。因此,采样点数N=800,1600,2000时,对s(t)进行N点FFT可以得理想谱线,而当N=1800时,不是400的整数倍,则不能得到。当将该调幅信号修改为AM信号后,s(t)的频谱中有较大的频谱分量。如图所示。

    • IIR滤波器
    1. 滤波器参数选取

    由(一)可知,三路调幅信号的载波频率分别为250Hz,500Hz,1000Hz。带宽为50Hz,100Hz,200Hz。所以分离混合信号st中三路抑制载波单频调幅信号的三个滤波器(低通滤波器、带通滤波器、高通滤波器)的指标参数选取如下:

    对载波频率为250Hz的调幅信号,用低通滤波器分离,其通带截止频率fp=280Hz,通带最大衰减ap=0.1dB,阻带截止频率为fs=450Hz,阻带最小衰减as=60dB。对载波频率为500Hz的调幅信号,用低通滤波器分离,其通带截止频率fpl=440Hz、fph=560Hz,通带最大衰减ap=0.1dB,阻带截止频率为fsl=275Hz、fsh=900Hz阻带最小衰减as=60dB。对载波频率为1000Hz的调幅信号,用低通滤波器分离,其通带截止频率fp=890Hz,通带最大衰减ap=0.1dB,阻带截止频率为fs=600Hz,阻带最小衰减as=60dB。

     

     

    IIR.m

    function main
    st=mstg;   %调用信号产生函数mstg产生由三路抑制载波调幅信号相加构成的复合信号s
    Fs=10000; T=1/Fs;  %采样频率
    fp=280; fs=450;wp=2*fp/Fs;ws=2*fs/Fs; %低通
       name='y_1(t)';LHL_filter(wp,ws,name,st,T,'low');
    fp_L=440; fp_R=560;fs_L=275; fs_R=900;%带通
       wp=[2*fp_L/Fs,2*fp_R/Fs];ws=[2*fs_L/Fs,2*fs_R/Fs];
       name='y_2(t)'; LHL_filter(wp,ws,name,st,T,'bandpass');
    fp=890; fs=600;wp=2*fp/Fs;ws=2*fs/Fs; %高通
       name='y_3(t)';LHL_filter(wp,ws,name,st,T,'high');
    end
    function LHL_filter(wp,ws,name,st,T,flag)
    rp=0.1;rs=60; %DF指标(低通滤波器的通、阻带边界频)
    [N,wp]=ellipord(wp,ws,rp,rs); %调用ellipord计算椭圆DF阶数N和通带截止频率wp?
    [B,A]=ellip(N,rp,rs,wp,flag); %调用ellip计算椭圆带通DF系统函数系数向量B和A
    yt=filter(B,A,st); %滤波器软件实现
     figure; freqz(B,A);%B,A分别为系统函数分子,分母多项式系数向量?
     figure;tplot(st,yt,T,name);
    end
    function tplot(st,xn,T,name)
    %时域序列连续曲线绘图函数?
    %?xn:信号数据序列,%?T为采样间隔
    N=length(xn);n=0:N-1; t=n*T; Tp=N*T; f=n/Tp;
    subplot(311);plot(t,xn);xlabel('t/s');ylabel(name);
    axis([0,t(end),min(xn),1.2*max(xn)]);
    subplot(312);stem(f,abs(fftshift(fft(st,N))));
    title('原 st(t)的频谱');xlabel('f/Hz');ylabel('幅度');
    subplot(313);stem(f,abs(fftshift(fft(xn,N))));
    title('滤波后xn(t)的频谱');xlabel('f/Hz');ylabel('幅度');
    end
    function st=mstg
    %产生信号序列向量st,并显示st的时域波形和频谱
    %st=mstg 返回三路调幅信号相加形成的混合信号,长度N=1600
    N=1600;Fs=10000;T=1/Fs;Tp=N*T; % N为信号st的长度。采样频率Fs=10kHz,Tp为采样时间
    t=0:T:(N-1)*T;k=0:N-1;f=k/Tp;
    fc1=Fs/10;fm1=fc1/10;%第1路调幅信号的载波频率fc1=1000Hz,调制信号频率fm1=100Hz
    fc2=Fs/20;fm2=fc2/10;%第2路调幅信号的载波频率fc2=500Hz,调制信号频率fm2=50Hz
    fc3=Fs/40;fm3=fc3/10;%第3路调幅信号的载波频率fc3=250Hz,调制信号频率fm3=25Hz                  
    xt1=cos(2*pi*fm1*t).*cos(2*pi*fc1*t); %产生第1路调幅信号
    xt2=cos(2*pi*fm2*t).*cos(2*pi*fc2*t); %产生第2路调幅信号
    xt3=cos(2*pi*fm3*t).*cos(2*pi*fc3*t); %产生第3路调幅信号
    st=xt1+xt2+xt3;         %三路调幅信号相加
    fxt=fft(st,N);          %计算信号st的频谱
    subplot(211);plot(t,st);xlabel('t/s');ylabel('s(t)');
    axis([0,Tp/2,min(st),max(st)]);title('(a) s(t)的波形');
    subplot(212);stem(f,abs(fxt)./max(abs(fxt)));
    title('(频谱');xlabel('f/Hz');ylabel('幅度');
    end

    mstg.m

    function st=mstg
    %产生信号序列向量st,并显示st的时域波形和频谱
    %st=mstg; 返回三路调幅信号相加形成的混合信号,长度N=1600
    N=2000;Fs=10000;T=1/Fs;Tp=N*T; % N为信号st的长度。采样频率Fs=10kHz,Tp为采样时间
    t=0:T:(N-1)*T;k=0:N-1;f=k/Tp;
    fc1=Fs/10;fm1=fc1/10;%第1路调幅信号的载波频率fc1=1000Hz,调制信号频率fm1=100Hz
    fc2=Fs/20;fm2=fc2/10;%第2路调幅信号的载波频率fc2=500Hz,调制信号频率fm2=50Hz
    fc3=Fs/40;fm3=fc3/10;%第3路调幅信号的载波频率fc3=250Hz,调制信号频率fm3=25Hz                  
    xt1=cos(2*pi*fm1*t).*cos(2*pi*fc1*t); %产生第1路调幅信号
    xt2=cos(2*pi*fm2*t).*cos(2*pi*fc2*t); %产生第2路调幅信号
    xt3=cos(2*pi*fm3*t).*cos(2*pi*fc3*t); %产生第3路调幅信号
    st=xt1+xt2+xt3;         %三路调幅信号相加
    fxt=fft(st,N);          %计算信号st的频谱
    subplot(2,1,1);plot(t,st);xlabel('t/s');ylabel('s(t)');
    title(['N=',num2str(N),'s(t)的波形']);axis([0,Tp/8,min(st),max(st)]);
    subplot(2,1,2);stem(f,abs(fxt)/max(abs(fxt)));
    title(['N=',num2str(N),'s(t)的频谱']);xlabel('f/Hz');ylabel('幅度');
     axis([0,Fs/5,0,1.2]);
    end

    AM_mstg.m

    function AM_mstg
    N=2000; Fs=10000;T=1/Fs;Tp=N*T;t=0:T:(N-1)*T;k=0:N-1;f=k/Tp;
    fc1=Fs/10;fm1=fc1/10;%第1路调幅信号的载波频率fc1=1000Hz,调制信号频率fm1=100Hz
    fc2=Fs/20;fm2=fc2/10;%第2路调幅信号的载波频率fc2=500Hz,调制信号频率fm2=50Hz
    fc3=Fs/40;fm3=fc3/10;%第3路调幅信号的载波频率fc3=250Hz,调制信号频率fm3=25Hz
    xt1=[1+cos(2*pi*fm1*t)].*cos(2*pi*fc1*t);
    xt2=[1+cos(2*pi*fm2*t)].*cos(2*pi*fc2*t);
    xt3=[1+cos(2*pi*fm3*t)].*cos(2*pi*fc3*t);
    st=xt1+xt2+xt3;fxt=fft(st,N);
    subplot(211);plot(t,st);xlabel('t/s');ylabel('s(t)');
    axis([0,Tp/8,min(st),max(st)]);title(['N=',num2str(N),' AM s(t)波形图'])
    subplot(212);stem(f,abs(fxt)/max(abs(fxt)));title(['N= ',num2str(N),'频谱图'])
    axis([0,Fs/5,0,1.2]);xlabel('f/Hz');ylabel('幅度');
    end

    资源点击下载

    展开全文
  • IIR数字滤波器的实现(C语言)

    万次阅读 多人点赞 2017-12-29 13:17:06
    经典滤波器和数字滤波器  一般滤波器可以分为经典滤波器和数字滤波器。 经典滤波器:假定输入信号中的有用成分和希望去除的成分各自占有不同的频带。如果信号和噪声的频谱相互重迭,经典滤波器无能为力。比如...
    • 经典滤波器和数字滤波器

      一般滤波器可以分为经典滤波器和数字滤波器。

    1. 经典滤波器:假定输入信号中的有用成分和希望去除的成分各自占有不同的频带。如果信号和噪声的频谱相互重迭,经典滤波器无能为力。比如 FIR 和 IIR 滤波器等。  
    2. 现代滤波器:从含有噪声的时间序列中估计出信号的某些特征或信号本身。现代滤波器将信号和噪声都视为随机信号。包括 Wiener Filter、Kalman Filter、线性预测器、自适应滤波器等
    • Z变换和差分方程

      在连续系统中采用拉普拉斯变换求解微分方程,并直接定义了传递函数,成为研究系统的基本工具。在采样系统中,连续变量变成了离散量,将Laplace变换用于离散量中,就得到了Z变换。和拉氏变换一样,Z变换可用来求解差分方程,定义Z传递函数成为分析研究采样系统的基本工具。

      对于一般常用的信号序列,可以直接查表找出其Z变换。相应地,也可由信号序列的Z变换查出原信号序列,从而使求取信号序列的Z变换较为简便易行。

      Z变换有许多重要的性质和定理:

    • 线性定理

      设a,a1,a2为任意常数,连续时间函数f(t),f1(t),f2(t)的Z变换分别为F(z),F1(z),F2(z),则有

    Z[af(t)]=aF(z)Z[af(t)]=aF(z)
    Z[a1f1(t)+a2f2(t)]=a1F1(z)+a2F2(z)Z[a1f1(t)+a2f2(t)]=a1F1(z)+a2F2(z)

    • 滞后定理

      设连续时间函数在t<0时,f(t)=0,且f(t)的Z变换为F(z),则有

    Z[f(tkT)]=zkF(z)Z[f(t−kT)]=z−kF(z)

     

      应用Z变换求解差分方程的一个例子:已知系统的差分方程表达式为y(n)0.9y(n1)=0.05u(n)y(n)−0.9y(n−1)=0.05u(n),若边界条件y(1)=1y(−1)=1,求系统的完全响应。

      解:方程两端取z变换

    Y(z)0.9[z1Y(z)+y(1)]=0.05zz1Y(z)=0.05z2(z1)(z0.9)+0.9y(1)zz0.9Y(z)−0.9[z−1Y(z)+y(−1)]=0.05zz−1Y(z)=0.05z2(z−1)(z−0.9)+0.9y(−1)zz−0.9

      可得

    Y(z)z=A1zz1+A2zz0.9Y(z)z=A1zz−1+A2zz−0.9

      其中A1=0.5,A2=0.45,于是y(n)=0.5+0.45×(0.9)n(n0)y(n)=0.5+0.45×(0.9)n(n≥0)

    •  IIR数字滤波器的差分方程和系统函数

       IIR数字滤波器是一类递归型的线性时不变因果系统,其差分方程可以写为:

    y(n)=i=0Maix(ni)+i=1Nbiy(ni)y(n)=∑i=0Maix(n−i)+∑i=1Nbiy(n−i)

      进行Z变换,可得:

    Y(z)=i=0MaiziX(z)+i=1NbiziY(z)Y(z)=∑i=0Maiz−iX(z)+∑i=1Nbiz−iY(z)

      于是得到IIR数字滤波器的系统函数:

    H(z)=Y(z)X(z)=Mi=0aizi1Ni=1bizi=a0Mi=1(1ciz1)Ni=1(1diz1)H(z)=Y(z)X(z)=∑i=0Maiz−i1−∑i=1Nbiz−i=a0∏i=1M(1−ciz−1)∏i=1N(1−diz−1)

      其中ci为零点而di为极点。H(z)的设计就是要确定系数、或者零极点,以使滤波器满足给定的性能指标。

    •  IIR数字滤波器结构

       数字滤波器的功能本质上是将一组输入数字序列通过一定的运算后转变为另一组输出数字序列。滤波器系统函数可以表达为多种不同的形式,每一种对应着不同的算法,也就对应着不同的实现结构。例如:

    H(z)=110.3z10.4z2H(z)=11−0.3z−1−0.4z−2

      可以分解为:

    H(z)=110.8z111+0.5z1H(z)=11−0.8z−1⋅11+0.5z−1

      或

    H(z)=0.615410.8z1+0.38461+0.5z1H(z)=0.61541−0.8z−1+0.38461+0.5z−1

      上述同一系统的三种不同描述形式就对应了不同的实现结构,或者说不同的滤波器结构可以实现相同的传递函数。IIR滤波器常见的结构形式有直接Ⅰ型、直接Ⅱ型(典范型)、级联型、并联型。通过差分方程能够画出包含反馈结构的数字网络称为直接型。

      直接Ⅰ型滤波器的网络结构可以根据差分方程很直观地画出(The Direct-Form I structure implements the feed-forward terms first followed by the feedback terms):

       可以看出直接Ⅰ型滤波器需要N+M个延时单元(N≥M)。直接Ⅱ型结构是对直接Ⅰ型的变型,将上面网络的零点与极点的级联次序互换,并将延时单元合并。实现N阶滤波器只需要N个延时单元(The Direct-Form II structure uses fewer delay blocks than Direct-Form I),故称为典范型。

      直接Ⅱ型看上去不那么直观,可以通过下图进行理解。我们可以将整个滤波器系统看成A、B两个子系统串联而成,由于为线性系统因此交换顺序不影响最终输出结果,传递函数可写为:

    H(z)=B(z)1A(z)=1A(z)B(z)H(z)=B(z)⋅1A(z)=1A(z)⋅B(z)

      直接型优点:直接型结构简单,用的延迟器较少(N和M中较大者的个数);缺点:系数ak,bk对滤波器性能的控制关系不直接,因此调整不方便;具体实现滤波器时ak,bk的量化误差将使滤波器的频率响应产生很大的改变,甚至影响系统的稳定性。直接型结构一般用于实现低阶系统。

      级联型:将系统传递函数H(z)因式分解为多个二阶子系统,系统函数就可以表示为这些二阶子系统传递函数的乘积实现时将每个二阶子系统用直接型实现,整个系统函数用二阶环节的级联实现
      并联型:与级联型类似,用部分分式展开法将系统函数表示为二阶子系统传递函数的和。每个二阶子系统仍然用直接型实现,整个系统函数用二阶环节的并联实现。
     
      在IIR滤波器设计过程中,通常利用模拟滤波器来设计数字滤波器,要先根据滤波器的性能指标设计出相应的模拟滤波器的系统函数H(s),然后由H(s)经变换得到所需要的数字滤波器的系统函数H(z)。常用的变换方法有冲激响应不变法和双线性变换法。下面使用MATLAB等工具直接生成数字滤波器系数:
      在MATLAB命令行中输入fdatool打开滤波器设计工具箱,为了便于分析,我们先从设计一个简单的2阶低通滤波器。Design Method用于选择IIR滤波器还是FIR滤波器,这里我们选择IIR滤波器,类型选择Butterworth,当然也可以选择其他类型,不同类型的频率响应不同,选择后默认的滤波器结构是直接II型。ResponseType用于选择低通、高通、带通、带阻等类型,选择低通滤波“Lowpass”。Frequency Specifications用于设置采样频率以及截止频率,这里填入200以及20,即采样率为200Hz,20Hz以上的频率将被滤除掉。Fiter Order 选择滤波器阶数,为了简单起见,先选择一个2阶滤波器做实验。
       参数设置好后点击Design filter按钮,将按要求设计滤波器。默认生成的IIR滤波器类型是Direct-Form II,Second-Order Sections(直接Ⅱ型,每个Section是一个二阶滤波器),在工具栏上点击Filter Coefficients图标或菜单栏上选择Analysis→Filter Coefficients可以查看生成的滤波器系数。

      MATLAB中二阶滤波器差分方程公式如下(注意反馈项符号为负号):

    y[n]=b0x[n]+b1x[n1]+b2x[n2]a1y[n1]a2y[n2]y[n]=b0⋅x[n]+b1⋅x[n−1]+b2⋅x[n−2]−a1⋅y[n−1]−a2⋅y[n−2]

      高阶IIR滤波器的实现是采用二阶滤波器级联的方式来实现的。默认情况下,Filter Coefficients把结果分成多个2阶Section显示,其中还有增益。增益的目的是为了保证计算的精度和系统的稳定性。选择[edit]→[Convert to Single Section],这时候系数变成我们熟悉的形式:

      按照上面的公式,滤波器差分方程为:y[n] = 0.06745527*x[n] + 0.134910547*x[n-1] + 0.06745527*x[n-2] - (-1.1429805025)*y[n-1] - (0.412801596)*y[n-2]

      滤波器设计完成后还可以生成Simulink模型进行仿真:按照下图中数字标号进行,第一步点击左边Realize Model图标,第二步勾选“Build model using basic elements”这一项,右边四个灰色的项将自动打钩,最后点击“Realize Model”,matlab将自动生成滤波器模型,在弹出的窗口中双击模型可以观察该模型的内部结构。

      下面是按照设计要求生成的2阶滤波器直接Ⅰ型的结构:

      Direct-Form I

      下面是直接Ⅱ型的内部结构:

    Direct-Form II

      使用生成的滤波器搭建一个简答的测试模型:将两个幅值为1,频率分别为10Hz、50Hz的正弦波叠加,输入滤波器后观察滤波前后的波形。仿真时间设为1s,仿真参数中求解器类型设为固定步长,求解器选择discrete(它适用于离散无连续状态的系统),步长设为0.005s(200Hz)

      点击Run按钮开始进行仿真:

       打开示波器结果如下图所示:上面一栏是不同频率叠加的波形,下面是10Hz正弦波和滤波后得到的波形的对比。由于50Hz正弦波频率高于滤波器截止频率20Hz,因此被滤除,同时滤波也产生了一定的滞后和失真。

      知道了差分方程的形式并通过MATLAB得到滤波器系数后很容易写出相应的代码来实现数字滤波,另外还有一个网站能根据设计指标直接生成C代码:http://www-users.cs.york.ac.uk/~fisher/mkfilter/

      根据前面的设计指标,在网页上填入相应参数后提交,会得到下面的C语言代码。简单修改后就可以使用:

    复制代码
    #define NZEROS 2
    #define NPOLES 2
    #define GAIN   1.482463775e+01
    
    static float xv[NZEROS+1], yv[NPOLES+1];
    
    static void filterloop()
    { 
      for (;;) {
         xv[
    0] = xv[1]; xv[1] = xv[2]; xv[2] = next input value / GAIN; yv[0] = yv[1]; yv[1] = yv[2]; yv[2] = (xv[0] + xv[2]) + 2 * xv[1] + ( -0.4128015981 * yv[0]) + ( 1.1429805025 * yv[1]); next output value = yv[2]; } }
    复制代码

      

      在LabVIEW中为了自己实现IIR滤波器可以使用反馈结点来存储数据,下面的程序框图实现了与MATLAB模型相同的功能:

      前面板波形图如下图所示:

     

    展开全文
  • 滤波器简介:FIR与IIR

    万次阅读 多人点赞 2019-07-19 16:33:43
    关于本博文的说明:本博文为翻译文章,主要分享数字滤波器相关知识,包括有限脉冲响应数字滤波器(finiteimpulseresponse, FIR)和无限脉冲响应数字滤波器(infiniteimpulseresponse,IIR). 原文为‘Introduction to ...

    关于本博文的说明:本博文为翻译文章,主要分享数字滤波器相关知识,包括有限脉冲响应数字滤波器(finite impulse response, FIR)和无限脉冲响应数字滤波器(infinite impulse response, IIR). 原文为‘Introduction to Filters: FIR versus IIR’,由Siemens Phenom发布,原文链接为https://community.plm.automation.siemens.com/t5/Testing-Knowledge-Base/Introduction-to-Filters-FIR-versus-IIR/ta-p/520959

    1. 引言

    滤波器在数据采集和分析中具有很多应用. 它们通过减小或放大某些频率来改变时间信号的频率成分. 例如,如图1所示,低通滤   波器以三种不同的方式影响信号中的频率成分:一些频率成分保持不变,而其它频率成分的幅度变小或从信号中完全移除. 

                  filter_overview.png

    Figure 1: A low pass filter passes low frequencies unaltered (left) and removes high frequencies (right)..

    滤波器还可以放大特定的频带,而不仅仅是减弱或删除部分频带. 滤波器调整信号的幅度可以用线性形式表示(即放大系数)或增益/衰减分贝,如图2所示.

    filter_gain_attenutation.png

    Figure 2: Left graph – Linear filter amplitude in multiplication factor versus frequency, Right graph – Same filter in decibel scale of attenuation versus frequency.

    线性度量指标和分贝度量指标有以下等价关系:

    1. 线性振幅的1/2代表6分贝的衰减
    2. 没有调整的频带对应线性增益为1,或0分贝衰减

    虽然在频域查看滤波器特性很有用,但是滤波器是在时域进行工作的(图3). 滤波器以时域信号为输入,修改频率内容,得到新的时域信号.

                   filter_what_it_does.png

    Figure 3: An input signal with high frequency noise is passed through a low pass filter. The resulting output has the high frequency noise removed, resulting in a clean signal. (带有高频噪声的输入信号经过低通滤波器后得到纯净的输出信号)

    2. 滤波器的应用(Applications of Filters)

    滤波器可用于信号清理与信号分析. 在某些应用中,滤波器用于通过衰减不需要的频率内容来调节时域信号. 例如:

    • 抗混叠滤波器(Anti-Aliasing Filter)—抗混叠滤波器用于去除模拟数字转换前不能正确数字化的信号频带
    • 去噪(Noise Removal)—可以用来去除信号中不需要的高频噪声,例如在音乐录音中的呲呲声
    • 漂移消除(Drift Removal)—通过高通滤波器或交流耦合器(AC coupling)从信号中消除漂移或较大的偏移

    有时滤波器用于将特定的信号特性保留下来用于后续分析:

    • A加权(A-Weighting)—A加权滤波器(图4)用于将人的听觉特性引入麦克风数据采集. 麦克风在听不同频率的信号时,其状态是一样的,即无法区分不同的频率输入,而人耳却能感觉到不同频率信号的差异. A加权滤波器降低麦克风采集信号的高频和低频部分,以模拟人耳感知声音的方式

     

     

    Figure 4: A-weighting filter frequency domain shape. Y-axis is gain or attenuation in dB versus X-axis in frequency.

    • 全身振动加权(Whole Body Vibration Weighting)—人体对某些特定的振动频率比较敏感,因此,基于加速度计的振动信号,结合全身振动加权滤波器(ISO 2631)可以对人体的健康和舒适度进行评价

    滤波器可应用于模拟系统(针对实时信号),或数字系统(针对PC上已记录的信号).

    3. 滤波器类型(Filter Types)

    滤波器可以针对不同的任务进行设计. 例如,滤波器可以分为高通(high pass)、低通(low pass)、带阻(band stop)或带通(band pass)滤波器(参见图5).

                        filter_types.png

    Figure 5: Types of Filters

    滤波器类型:

    • 高通滤波器—高通滤波器用于去除信号中的低频偏移. 例如,如果仅对应变仪信号的动态内容感兴趣,则可以使用高通滤波器去除仪表中的任何低频漂移
    • 低通滤波器—低通滤波器衰减或消除指定频率以上的频率. 例如,其可以用来去除音频记录中的高频嘶嘶声
    • 带通滤波器—此滤波器用于仅允许指定频率范围内的信号通过滤波器
    • 带阻滤波器—带阻滤波器用于去除指定范围内的信号频率

    这些滤波器类型可以使用FIR或IIR滤波器来实现, 也可以使用这些组合来生成任意形状的滤波器.

    4. FIR和IIR(FIR versus IIR)

    两类数字滤波器是有限脉冲响应(Finite Impulse Response, FIR)和无限脉冲响应(Infinite Impulse Response , IIR).

    脉冲响应是指滤波器在时域内的出现,滤波器通常具有较宽的频率响应,这对应于时域内的短时间脉冲,如图6所示.

    freq_vs_time_filt.png

    Figure 6: Frequency (left) and time (right) domain representations of filter shape.

    IIR和FIR滤波器的方程如式1所示. 滤波器的输入为时间序列x(n),滤波器的输出为时间序列y(n). 第一个样本点在n=0处.

         filter_equation.png

    Equation 1: Finite Impulse Response (FIR) filter equations versus Infinite Impulse Response (IIR) filter.

    IIR和FIR实现之间的数学区别在于IIR滤波器使用一些滤波器的输出作为输入. 这使得IIR滤波器成为一个递归函数.

    每个方程都有三个数字序列: 输入时间序列、滤波器和输出时间序列(图7).

    • x(n)—输入时间序列是x(0), x(1), x(2), ..., x(n). 小写n是输入时间序列中数据点的总数
    •  a(k)—FIR滤波器用字符“a” 表示,IIR滤波器用字符“a”和“b”. 大写字母N和P分别表示滤波器中的项数,也称为滤波器的阶数
    • y(n)—输出时间序列y(0), y(1), y(2), …

    filter_eqn_graphic.png

    Figure 7: Time series for input time history, “x(n)” , FIR filter - Series “a(k)”, and output time history, “y(n)”.

    在实践中,FIR和IIR滤波器具有重要的性能差异,如图8所示.

     

    Figure 8: Summary of differences between IIR and FIR filters.

    IIR滤波器的优点是,对于与FIR类似的滤波器,可以使用较低的阶数或项数. 这意味着实现相同结果所需的计算量更少,使得IIR的计算速度更快. 然而,IIR具有非线性相位和稳定性问题. 这有点像龟兔赛跑的寓言,FIR滤波器就像赛跑中的乌龟—缓慢而稳定,总是能跑完全程. 兔子就像IIR滤波器—非常快,但有时崩溃,并没有完成比赛.

    4.1. 滤波器阶数和计算速度(Filter Order and Computational Speed)

    由式1中的FIR滤波器方程可知,N越大,滤波器的阶数越高. 例如,如果滤波器项数为10,而不是5,那么滤波器的计算将花费两倍的时间。然而,滤波器的频率下降会更清晰,如图9所示.

             5term_vs_10term_filter.png

    Figure 9: Top – The roll off sharpness of the filter (top) with fewer terms is less sharp than filter with more terms (bottom).

    包含更多项(阶数更高)滤波器在通过频率和截止频率之间有更剧烈的转换. 图10显示了相同滤波器类型在使用不同阶数计算时的幅频响应图. 使滤波器的幅频响应变化更锐利是通过增加滤波器阶数来实现的,这意味着需要更多的计算,同时也会影响滤波器引入的时间延迟.

                                       filter_rolloff_vs_order.png

    Figure 10: Increasing the order of filter, but keeping all else the same, increases the sharpness of the filter roll off.

                          Key - order vs sharp.png

    阶数越高,滤波器的幅频响应变化曲线越陡峭,滤波器对滤除的频率截断效果越显著.

    对于相同的阶数,FIR和IIR滤波器的锐度差别很大,如图11所示. 由于IIR滤波器的递归性质(见公式1),其中部分滤波器输出用作输入,它可以使用相同阶的滤波器实现更陡峭的增益变化.

                                                    filter_iir_fir_same_order.png

    Figure 11: For the same order, the IIR filter has a sharper roll off than a FIR filter.

    因此,IIR可以使用更少的阶数来实现与FIR相同的性能,如图12所示. 

                                                     iir_vs_fir_different_order.png

    Figure 12: An IIR filter can achieve similar performance to an FIR filter with a lower order.

    从计算的角度来看,这使得IIR滤波器比FIR滤波器更快. 如果必须在实时应用程序中实现滤波器(例如在监听时进行交互过滤),通常选择IIR.

    然而,使用IIR滤波器也有一些潜在的缺点: 

    • 延迟—IIR在不同频率下的延迟不同,而FIR在每个频率的延迟一致
    • 稳定性—由于其结构的特殊性,IIR滤波器有时可能是不稳定的,可能出现无法计算或应用于数据的情况,而FIR滤波器的计算始终是稳定的

    key_fir_iir_rolloff.png

    即想要达到相同的滤波效果,IIR滤波器所需的阶数更少,计算量更小,速度也就更快.

    4.2. 滤波器的时间延迟(Time Delay)

    滤波后的时间序列,与原始时间序列相比,会出现轻微的偏移或时间延迟. 图13显示了同步采集的声音数据(红色曲线,顶部)和振动数据(蓝色曲线,底部). 对声音数据滤波器后(绿色曲线,顶部)会导致声音和振动数据之间出现时延现象.

                                   filter_time_shift.png

    Figure 13: Top - Original time signal (red) is time delayed (green) by filter. Bottom – Vibration signal (blue) no longer aligned with filtered sound signal (green).

    在某些应用程序中,这不是问题,因为偏移量是已知的,可以忽略. 而在其他应用程序中,这种延迟可能很重要. 例如:

    • 故障排除(Troubleshooting)—对于多通道的声音和振动数据,如果只对声音通道使用滤波器,相对于振动通道,滤波后的声音会引入一个时间延迟(见图13底部图). 当试图确定一个振动事件是否产生了一个声音时,这一次的不对齐将很难看到振动和声音事件是否相关
    • 运行变形振型(Operational Deflection Shapes)—如果运行变形振型中的某些振动通道使用了滤波器,而其它通道没有,这将导致这些通道之间的相位关系发生改变,结果其animation(实在不知道该如何翻译,超出大纲了TAT)将不正确

    是什么原因导致滤波器在输出时间序列中引入了时间延迟?

    从图14中得到FIR滤波器的方程,通过对该方程的分析,可以看出产生时延的原因.

                                       filter_delay_equation.png

    Figure 14: To be fully realized (i.e., actually work) the filter requires as many data points (n) as the terms (N) to be passed through the filter.

    输入信号(x)中的一些时间序列样本必须通过与项数(N)成比例的滤波器,然后滤波器才会工作。此外,在输入滤波器的样本点数(n)大于N以前,滤波后的时间序列不会开始输出.

    因为必须先有一些数据通过滤波器才能创建输出,所以与输入时间序列(x)相比,输出时间序列(y)的创建会有一个延迟,如图13所示. 滤波器的幅频响应变化曲线越陡峭锐利,这种延迟就越长.

                          key_sharp_time.png

    FIR和IIR滤波器的延迟特性有很大的不同,如图15所示. FIR滤波器在所有频率上具有相同的时延,而IIR滤波器的时延随频率而变化. 通常IIR滤波器中最大的时延出现在滤波器的截止频率处.

                                filter_iir_fir_delay.png

    Figure 15: IIR and FIR Filter amplitude (top) and time delay (bottom). A FIR has equal delay at all frequencies while the IIR filter time delay varies with frequency.

                 key_iir_vs_fir_delay.png

    FIR滤波器在所有频率上具有相同的时延,而IIR滤波器的时延随频率而变化.

    所有的滤波器都会产生某种时延(模拟或数字),根据滤波器的特性,延迟或长或短,它们也可以是频率的函数.

    4.3. 零相位滤波(Zero Phase)

    通过“前向和后向”滤波,输出时间序列中的时延可以被消除. 在对x(n)滤波得到输出y(n)之后,可以对y(n)再次进行滤波,首先将y(n)中的数据点反转,再输入滤波器进行滤波. 这就是所谓的零相位滤波(zero phase filtering),结果如图16所示.

                    direct_versus_zero_phase.png

    Figure 16: Original signal (red) filtered directly (green) and with zero phase (blue). Zero phase removes the delay, but data is lost at the end of zero phase filtered time history.

    注意,时间延迟位于零相位滤波输出的末尾(蓝色).

    零相位滤波的输出y(n)与x(n)实现了对齐,但数据由于滤波了两次,衰减加倍. 当使用零相位滤波器时,需要进行以下权衡:

    • 计算时间加倍
    • 针对数字信号的实现比较容易,针对模拟信号并不是
    • 输出序列末尾的样本点被消除了

    key_zero_phase.png
    5. 滤波器属性(Filter Methods and Attributes)

    可以选择滤波器的系数a(n)来控制特定的滤波器属性,如图17所示.

                                              Filter_bands.png

    Figure 17: Pass, Transition, and Stop band.

    滤波器有四个主要的属性:

    • 通频带(Pass Band)–通频带中的数据直接输出到输出时间序列. 为了保证通频带内的数据与原始时程数据一致,滤波器中不应有纹波. 纹波是振幅随频率的微小变化,理想情况下,在这个波段,滤波器的振幅应该恰好为1.
    • 过渡带宽(Transition Width)–根据应用程序的不同,可能希望通过和截止频带之间的转换在频率方面尽可能窄,该方法和滤波器的阶数决定了通带和截止带之间转换发生的速度.
    • 截止频带(Stop Band)–如果滤波器有纹波,截止带也可以包含输出数据. 在某些应用中,纹波的存在可能无关紧要,而在某些特定的场合下,则不能接受纹波的存在.
    • 群时延(Group Delay/Phase)–滤波器在输出时间序列中引入了时延,该时延可能是随频率变化的函数. 如前所述,通过前向和后向滤波器(零相位滤波器)可以消除输出时间序列中的时延现象. 在某些应用程,相位也是很重要的,此时就不能再用零相位滤波器了.

    5.1 FIR滤波方法(FIR Filter Methods)

    下面列出了有限脉冲响应(FIR)滤波器的方法,如图18所示.

                                  fir_filter_types.png

    Figure 18: FIR Filter Methods.

    FIR方法在从频域到时域的转换中使用了不同的谱窗。一些窗口方法包括:

    • Chebyshev - 停止带纹波最小,过渡带最宽
    • Hamming - 过渡区窄,波纹比Hanning小
    • Kaiser - 在停止区有较小的纹波
    • Hanning - 过渡带最窄,停止带纹波较大
    • Rectangular - 纹波最大,甚至影响通带

    5.2 IIR滤波方法(IIR Filter Methods)

    无限脉冲响应滤波器的方法如图19所示.

            iir_filter_methods.png

    Figure 19: Comparison of Low Pass IIR filters with same order and cutoff frequency.

    不同IIR滤波方法的属性:

    • Butterworth - 在通带和停止带响应平稳,但过渡区较宽
    • Inverse Chebyshev - 通带平坦,过渡带宽度比巴特沃斯滤波器窄,但在停止带有波纹
    • Chebyshev - 在通带可以有纹波,但其过渡带比反向Chebyshev更短
    • Cauer - 过渡带最短,通带和停止带均有纹波
    • Bessel - 在通带和停止带均出现幅度倾斜(Sloping),过度带非常宽

          key_filter_methods.png

    The END.

    由于翻译水平有限(主要是对滤波器相关知识理解得不是很到位),文中可能存在一些错误,还请各位看官结合原文进行深度理解 :-).

    展开全文
  • 讲述IIR滤波器的原理及其特点.同时对fir进行比较
  • IIR滤波器(2)

    2020-02-13 16:36:16
    通过对传递函数的进一步变形,我们还可以将IIR滤波器变为级联型和并联型。 级联型 上文中提到,IIR滤波器的系统传递函数为: H(z)=∑k=0Nbkz−k1−∑k=1Nakz−k; H(z) = \frac{\sum_{k=0}^Nb_kz^{-k}}{1-\sum_{k=1}^...
  • IIR 滤波器

    2018-04-16 21:04:00
    IIR 滤波器的实现(C++) 原创 2014年08月26日 16:46:32 &lt;ul class="article_tags clearfix...
  • IIR数字滤波器实现(mantlab+C语言)

    万次阅读 2013-06-08 09:01:01
    按照采样率变换理论,首先应该通过一个低通滤波器,滤掉[pi/2, pi]这个区间上的频率,以防止下采样造成的频率混叠。这个低通滤波器在很多书上都用FIR滤波去实现,并且可以用FIR滤波的多相结构去实现。这样滤波和下...
  • iir滤波器特点

    千次阅读 2013-12-08 16:06:11
    iir滤波器有以下几个特点 1 iir数字滤波器的系统函数可以写成封闭函数的形式。 2 iir数字滤波器采用递归型结构,即结构上带有反馈环路。iir滤波器运算结构通常由延时、乘以系数和相加等基本运算组成,可以组合成...
  • 1.FIR数字滤波器 有限冲激响应(FIR)滤波器是对N个采样数据执行加权和平均的处理。处理过程公式为: 如三抽头FIR滤波器结构: 一个低通滤波器结构: 设计滤波器就是选取合适的滤波器系数W,使滤波器达到...
  • IIR滤波器

    2019-09-29 14:31:55
    IIR滤波器的单位冲击响应是无限的。 N表示滤波器的级数 N=1时 y为输出数据,x为输入数据,a.b为滤波器系数。 x[n]为本次滤波的输入数据,x[n-1]为上一次滤波前的输入数据,y[n-1]为上一次滤波器输出的数据 ...
  • IIR 滤波器的实现(C++)

    千次阅读 2019-04-29 18:55:00
    ...最近在写的一个程序需要用到IIR滤波器,而且IIR滤波器的系数需要动态调整。因此就花了点时间研究IIR滤波器的实现。 以前用到的IIR滤波器的参数都是事先确定好的,有个网站,只要把滤波器...
  • 本文将简单介绍另一种数字滤波器——IIR滤波器的原理,详细介绍使用Verilog HDL设计直接型IIR滤波器的方法,下一篇会介绍如何用Verilog HDL设计级联型IIR滤波器。 数字滤波器 数字滤波器从实现结构上划分,有...
  • Matlab下 IIR 滤波器实现(Simulink仿真和C语言实现)

    千次阅读 多人点赞 2019-01-15 14:52:50
    经典滤波器和现代滤波器 ...比如 FIR 和 IIR 滤波器等。  现代滤波器:从含有噪声的时间序列中估计出信号的某些特征或信号本身。现代滤波器将信号和噪声都视为随机信号。包括 Wiener Filter、Kalman Fi...
  • IIR滤波器设计——个人感悟

    万次阅读 2017-05-02 20:13:21
    查过很多资料,对于IIR滤波器结构和原理介绍很多,但是,真正对于FPGA的快速设计介绍很少。我对IIR滤波器的MATLAB仿真和FPGA硬件仿真做了充分的对比,关于IIR滤波器设计和实现做一下总结: 说明:IIR滤波器最佳实现...
  • IIR滤波器与FIR滤波器的对比

    千次阅读 2019-04-04 09:14:41
    对于IIR滤波器,冲激响应理论上应会无限持续,其输出不仅取决于当前和过去的输入信号值,也取决于过去的信号输出值。 2.FIR:有限脉冲响应滤波器。有限说明其脉冲响应是有限的。与IIR相比...
  • IIR滤波器和FIR滤波器的区别与联系

    千次阅读 2018-07-08 15:06:38
    1.两种滤波器都是数字滤波器。根据冲激响应的不同,将...对于IIR滤波器,冲激响应理论上应会无限持续,其输出不仅取决于当前和过去的输入信号值,也取决于过去的信号输出值。--------------------------------------...
  •  对于滤波器设计,以前虽然学过相关的理论(现代数字信号处理和DSP设计),但一直不求甚解,也没用过。... 先来说说IIR滤波器设计,理论与原理参考如下博客,写得简明易懂,不错。 http://blog.c
  • [数字信号处理]IIR滤波器基础

    万次阅读 2013-06-06 14:27:53
    1.IIR滤波器构造  之前在介绍FIR滤波器的时候,我们提到过,IIR滤波器的单位冲击响应是无限的!用差分方程来表达一个滤波器,应该是下式这个样子的。    这个式子是N次差分方程的表达式。我们明显可以看出,...
  • 基于FPGA的IIR滤波器

    2019-05-27 14:57:54
    1.说明 写了那么多数字图像处理的,再写点其他的吧,今天写点FPGA的东西,是之前EDA做的综合大实验,拿出来和大家分享分享! 先说一下,此篇文章是基于你有IIR...至于IIR滤波器的原理和Verilog HDL语言,我这...
1 2 3 4 5 ... 20
收藏数 2,591
精华内容 1,036
关键字:

iir滤波器