资源描述
实验1用脉冲响应不变法设计IIR滤波器
一. 实验目的
1.加深对脉冲响应不变法设计IIR滤波器数字滤波器基本方法的了解,熟悉这一设计的计算机编程。
2.观察用脉冲响应不变法设计的数字滤波器和响应模拟滤波器的时域特性和频域特性,比较所涉及的数字滤波器和响应的模拟滤波器的频域特性,观察脉冲响应不变法设计中产生的频域混淆现象。
3.观察参数变化对滤波器性能的影响;了解脉冲响应不变法的优缺点,熟悉该方法的应用范围。
二. 实验原理与方法
脉冲响应不变法是实现模拟滤波器数字化的一种直观而常用的方法。它特别适合于对滤波器的时域特性有一定要求的场合。
一个模拟滤波器的传递函数可以用有理分式表达式表示为:
(1)
通过反拉普拉斯变换我们就可以得到它的冲激相应:
(2)
脉冲响应不变法就是要保证脉冲响应不变,即:
(3)
对上式的冲激相应序列作变换,就可以得到数字滤波器的传递函数:
(4)
一般来说,的分母多项式阶次总是大于分子多项式的阶次。假定的没有多重极点,则式(1)就可分解为:
(5)
式中,均为复数,是的极点。其拉氏变换为
一般来说,的分母多项式阶次总是大于分子多项式的阶次。数字滤波器的传递函数H(z)经过合并简化,成为一般形式的有理分式传递函数
(6)
在讨论采样序列z变换与模拟信号拉氏变换之间关系的有关章节中,我们已经知道
(7)
按照z=的关系,每一个s平面上宽度为/T的水平条带将重迭映射到z平面上。因此脉冲响应不变法将s平面映射到z平面,不是一个简单的一一对应的关系。对于高采样频率(T小)的情况,数字滤波器在频域可能有极高的增益。为此我们采用
(8)
(9)
在脉冲响应不变法设计中,模拟频率与数字频率之间的转换关系是线性的()。同时,它可以保持脉冲响应不变, =。因此,这一方法往往用于低通时域数字滤波器设计及相应的模拟系统数字仿真设计。
3. 实验内容及步骤:
1.复习脉冲响应不变法设计IIR滤波器和模拟滤波器设计的有关内容,认真阅读本实验原理与方法的内容,熟悉脉冲响应不变法的设计步骤。
2.编制一个用脉冲响应不变法设计IIR滤波器的程序:
(1)采样频率f s=4Hz,周期T=0.25s,设计一个四阶Butterworth低通滤波器,其3dB截止频率fc=1Hz。
(2)采样频率为1Hz,设计一个数字低通滤波器,要求其通带临界频率fp=0.2Hz,通带内衰减小于1dB,阻带临界频率f s=0.3Hz,阻带衰减大于25dB。
a.用Butterworth逼近设计该滤波器。
b.用Chebyshev逼近设计该滤波器。
在matlab上建立M文件如下:
T=0.25;Fs=4;Q=2*pi;Omegac=Q/T;N=4;t=[0:0.01:3];n=[0:1:3/T];
[b,a]=butter(N,Omegac,'s'); [c,d]=impinvar(b,a,T);
[h,w]=freqs(b,a); [hg,x,t]=impulse(b,a);
mag = abs(h);mag = 20*log10(mag);
figure(1);impz(ha);
title('h(n)');ylabel('幅度');grid on;
figure(2)
plot(t,hg);title('单位脉冲响应h (t)');grid on;
figure(3)
subplot(321);plot(w,mag);title('幅度响应Hg(j/Omega)');grid on;
[h,w]=freqz(b,a);mag = abs(h);mag = 20*log10(mag);
subplot(322);plot(w,mag);title('幅度响应H(e^jw)');grid on;
%%%%%%%%%%%%%%%%用Butterworth设计%%%%%%%%%%%%
Fs=1;Omegap=0.4;Omegar=0.6;Ap=1;Ar=25;T=1/Fs;
[n,Wn] = buttord(Omegap,Omegar,Ap,Ar)
[cs,ds]= butter(n,Wn); [b,a]=impinvar(cs,ds,T); [h,w]=freqz(b,a);
mag = abs(h);db = 20*log10(mag);
subplot(323);plot(w/pi,mag);title('幅度响应H(e^jw)');grid on;
subplot(324);plot(w/pi,db);title('巴特沃斯幅度响应(db)');grid on;
%%%%%%%%%%%%%采用chebyshev设计%%%%%%%%%%%%%%%%
Fs=1;Omegap=0.4*pi;Omegar=0.6*pi;Ap=1;Ar=25;T=1/Fs;
[n,Wn] = cheb1ord(Omegap/pi,Omegar/pi,Ap,Ar);
[cs,ds] = cheby1(n,Ap,Wn);
[b,a]=impinvar(cs,ds,T); [h,w]=freqz(b,a);
mag = abs(h);db = 20*log10(mag);
subplot(325);plot(w/pi,mag);title('幅度响应H(e^jw)');grid on;
subplot(326);plot(w/pi,db);title('切比雪夫1型幅度响应(db)');grid on;
3.运行程序得到了下面的三幅比较图,实验结果为:n=6,Wn=0.4493
展开阅读全文