实验七、用双线性变换法设计IIR数字滤波器
一、源程序
程序一
clc;
clear all;
close all;
wp=0.2;
ws=0.3;
Rp=1;
Rs=10;
Fs=1000;
wp1=2*Fs*tan(wp/2);
ws1=2*Fs*tan(ws/2);
[N,Wn]=buttord(wp1,ws1,Rp,Rs,'s');
[Z,P,K]=buttap(N);
[Bap,Aap]=zp2tf(Z,P,K);
[b,a]=lp2lp(Bap,Aap,Wn);
[bz,az]=bilinear(b,a,Fs);
[H,W]=freqz(bz,az);
subplot(2,1,1);
plot(W/pi,abs(H));
grid;
xlabel('频率');
ylabel('幅度');
subplot(2,1,2);
plot(W/pi,20*log10(abs(H)));
grid;
xlabel('频率');
ylabel('幅度(db)');
1.51幅度0.5000.10.20.30.40.5频率0.60.70.80.911000幅度(db)-100-200-30000.10.20.30.40.5频率0.60.70.80.91
程序二
clc;
clear all;
close all;
wp=0.2*2*pi;
ws=0.3*2*pi;
Rp=1;
Rs=25;
Fs=1;
wp1=2*Fs*tan(wp/2);
ws1=2*Fs*tan(ws/2);
[N,Wn]=buttord(wp1,ws1,Rp,Rs,'s');
[Z,P,K]=buttap(N);
[Bap,Aap]=zp2tf(Z,P,K);
[b,a]=lp2lp(Bap,Aap,Wn);
[bz,az]=bilinear(b,a,Fs);
[H,W]=freqz(bz,az);
subplot(2,1,1);
plot(W/pi,abs(H));
grid;
xlabel('频率');
ylabel('幅度');
subplot(2,1,2);
plot(W/pi,20*log10(abs(H)));
grid;
xlabel('频率');
ylabel('幅度(db)');
1.51幅度0.5000.10.20.30.40.5频率0.60.70.80.911000幅度(db)-100-200-30000.10.20.30.40.5频率0.60.70.80.91
程序三
clc;
clear all;
close all;
wp=0.2*2*pi;
ws=0.3*2*pi;
Rp=1;
Rs=25;
Fs=1;
wp1=2*Fs*tan(wp/2);
ws1=2*Fs*tan(ws/2);
[N,Wn]=buttord(wp1,ws1,Rp,Rs,'s');
[Z,P,K]=buttap(N);
[Bap,Aap]=zp2tf(Z,P,K);
[b,a]=lp2lp(Bap,Aap,Wn);
[bz,az]=bilinear(b,a,Fs);
[H,W]=freqz(bz,az,);
figure(1)
subplot(2,1,1);
plot(W/pi,abs(H));
grid;
xlabel('频率');
ylabel('幅度');
subplot(2,1,2);
plot(W/pi,20*log10(abs(H)));
grid;
xlabel('频率');
ylabel('幅度(db)');
1.51幅度0.5000.10.20.30.40.5频率0.60.70.80.911000幅度(db)-100-200-30000.10.20.30.40.5频率0.60.70.80.91
程序四:
clc;
clear all;
close all;
wp=0.2*2*pi;
ws=0.3*2*pi;
Rp=1;
Rs=25;
Fs=1;
wp1=2*Fs*tan(wp/2);
ws1=2*Fs*tan(ws/2);
[N,Wn]=buttord(wp1,ws1,Rp,Rs,'s');
[Z,P,K]=buttap(N);
[Bap,Aap]=zp2tf(Z,P,K);
[b,a]=lp2lp(Bap,Aap,Wn);
[bz,az]=bilinear(b,a,Fs);
[H,W]=freqz(bz,az);
figure(1)
subplot(2,1,1);
plot(W/pi,abs(H));
grid;
xlabel('频率');
ylabel('幅度');
subplot(2,1,2);
plot(W/pi,20*log10(abs(H)));
grid;
xlabel('频率');
ylabel('幅度(db)');
bz
az
运行结果:
bz =
0.0179 0.1072 0.2681
0.3575 0.2681 0.1072 0.0179
az =
1.0000 -0.6019 0.9130 -0.29 0.1501 -0.0208 0.0025
三、实验总结:
脉冲响应不变法和双线性变换法都是将模拟滤波器变换为数字滤波器,但前者不可避免的存在频谱混叠,后者能克服这一缺点,同时,不能用脉冲响应不变法将模拟高通和带阻滤波器转换为数字滤波器。
双线性变换法不同于脉冲响应不变法,s平面z平面是单值的一一对应关系,不存在频谱混淆的问题,数字频域和模拟频域的频率不是线性关系。这种非线性关系式的通带截止频率、过渡带的边缘频率的相对应位置都发生了非线性畸变。