大脑供氧不足:冲击响应不变法1 - 光子的日志 - 网易博客

来源:百度文库 编辑:偶看新闻 时间:2024/05/02 08:49:48

冲击响应不变法

滤波器 2009-09-18 20:11:33 阅读109 评论0   字号: 订阅

          冲击响应不变法的基本原理是从滤波器的冲击响应出发,对具有传递函数G(s)的模拟滤波器的冲击响应g(t),以周期T采样所得的离散序列g(nT)作为数字滤波器的冲击响应。

          考虑:h(t)=∑g(nT)δ (t-nT)                n>=0;

对上式进行拉普拉斯变换就可以得到

                   H(s)=∑g(nT)*exp(-nTs)            n>=0;

由于H(s)是exp(sT)的函数,并令z=exp(sT),于是得到

                  H(z)=∑g(nT)*z^(-n)                    n>=0;

           这样就完成了从s域到z域的变换。这实际上是从拉普拉斯变换到z变换的标准变换,或者叫做冲击响应不变变换。上式是非递归的,但是如果G(s)是s的有理函数,即:

               G(s)=∑c(k)*s^k / ∑d(k)*s^k         分子中的k取值为0<=k<=M,分母中的k取值为0<=k<=N;且M

则根据冲击响应不变变换原理,H(z)也是一个有理函数,这样可以用递归形式实现IIR滤波器。

 

        在MATLAB信号处理工具箱中为冲击响应不变法提供了函数impinvar(),这个函数用来实现从模拟到数字的变换。具体函数的使用如下:

      [BZ, AZ]=impinvar(B, A, Fs)     该函数把具有[B, A]模拟滤波器传递函数模型转换成采样频率为Fs的数字滤波器传递函数模型。如果在函数中没有指定采样频率Fs时,函数默认为1Hz。

 

例子运用冲击响应不变法设计一个低通Chebshev1型数字滤波器,其通带上限临界频率是3Hz,阻带临界频率是5H,采样频率是1000Hz,在通带内的最大衰减为0.3dB,阻带内的最小衰减为80dB。

MATLAB程序如下:
clc;
clear all;
%把数字滤波器的频率特征转换成模拟滤波器的频率特征
wp=300*2*pi; ws=400*2*pi; rp=0.3; rs=80; Fs=1000;

%选择滤波器的最小阶数。
[N,Wn]=cheb1ord(wp,ws,rp,rs,'s');

%创建Chebyshev1低通滤波器的原型
[Z,P,K]=cheb1ap(N,rp);
[A,B,C,D]=zp2ss(Z,P,K);

%实现低通向低通的转换
[AT,BT,CT,DT]=lp2lp(A,B,C,D,Wn);
[num1,den1]=ss2tf(AT,BT,CT,DT);

%运用冲击响应不变法把模拟滤波器转换成数字滤波器
[num2,den2]=impinvar(num1,den1,1000);

%绘出频率响应曲线
[H,W]=freqz(num2,den2);
plot(W*Fs/(2*pi),abs(H)); grid
xlabel('幅值');
ylabel('频率');

 

 

冲击响应不变法的特点总结如下:

(1)模拟频率与线性频率之间的转换是线性的,并保持了模拟滤波器的时域瞬态特性,这是冲击响应不变法的优点。

(2)当模拟滤波器频率响应不是严格限带时,用冲击响应不变法设计出的数字滤波器会出现混叠现象,这是冲击响应不变法的缺点。

(3)由于在(2)中的提到的缺陷,使这种设计方法受到限制,即当G(jΩ)不是严格限带或在时域g(t)变化不太稳,而设计性能又要求较高时,则不宜使用这种方法。