常用二阶IIR滤波系统的计算

原址: http://home.eeworld.com.cn/my/space.php?uid=210489&do=blog&id=52787

 

IIR滤波器是无限冲击响应滤波器,
其优点:
      1. 采用模拟原型滤波的标准设计,容易理解。
      2. 可以用低阶设计实现,并且可以高速运行
      3.  对于相同公差设计方案,其阶数比FIR短。
      4.  可以采用闭环设计
其缺点:
      1. 非线性相位
      2. 可能会出现极限环
      3. 多频道设计困难,只能设计低通、高通和带通
      4. 反馈会引入不稳定

      5. 非常难得到高速流水线设计 

 

IIR滤波器可以模拟4类原型滤波器:ButterWorth、ChebyShevI、ChebyShevII、椭圆 。
典型的二阶滤波器函数公式:
     H(Z)=(b0+b1*Z^-1+b2*Z^-2)/(a0+a1*Z^-1+a2*Z^-2);
典型理想IIR输出公式:
    Y(n)={b0x(n)+b1x(n-1)+...+bmx(n-m)}-{a1x(n-1)+a2x(n-2)+...+amx(n-m)}
对于二阶IIR滤波器,输出公式

   Y(n)=b0xn+b1xn-1+b2xn-2-(a1xn-1+a2xn-2)   式1 

式1中a1,a2,b0,b1,b2是二阶滤波器IIR系数,其决定滤波器的频响应曲线以及增益。如何求a0,a1,a2,b0,b1,b2?
对于一个二阶IIR滤波器,标准的技术指标如下:
       1. 中心频率f0;
       2. 采样频率fs;
       3. 增益db;
       4. 品质因数;

根据上面技术指标,可以确定二阶IIR滤波的低通,带通或高通的系数 

根据上面的技术指标,可以确定以下几个通用计算量:
      A=sqrt[10^(db/20)];
      Omega=2*Pi*f0/fs;
      sin=sin(omega);
      cons=cos(omega);
      alpha=sin(2*Q);
所以二阶IIR高通滤波器系数的计算:
      b0=(1+cos)/2;
      b1=-(1+cos);
      b2=(1+cos)/2;
      a0=1+alpha;
      a2=1-alpha;
    二阶IIR低通滤波器系数的计算:
      b0=(1-cos)/2;
      b1=1-cos;
      b2=(1-cos)/2;
      a0=1+alpha;
      a1=-2*cos;
      a2=1-alpha;
   二阶IIR带通滤波器的系数的计算:
      b0=sin/2=Q*alhpa;
      b1=0;
      b2=-sin/2=-Q*alpha;
      a0=1+alpha;
      a1=-2*cos;

      a2=1-alpha; 

posted @ 2012-04-22 22:53  没头的苍蝇  阅读(8473)  评论(0编辑  收藏  举报