MATLAB沖激響應(yīng)不變法和雙線性變換法
e小白網(wǎng)址:www.e-xiaobai.com
% 采用沖激響應(yīng)不變法將模擬系統(tǒng)函數(shù)Ha(s)=2/((s+1)*(s+3))轉(zhuǎn)換為數(shù)字系統(tǒng)函數(shù)H(z),設(shè)采樣周期T=0.5s.
b=[0 0 2];a=[1 4 3];
T=0.5;
fs=1/T;
[bz,az]=impinvar(b,a,fs)%沖激響應(yīng)不變法,b和a分別為模擬系統(tǒng)函數(shù)的分子和分母多項式系數(shù),fs為采樣頻率,返回bz和az分別為數(shù)字濾波器的分子和分母多項式系數(shù).

% 采用雙線性變換法設(shè)計切比雪夫I型低通數(shù)字濾波器,要求技術(shù)指標(biāo)為:Wp=0.2pi,Rp=1dB,Ws=0.4pi,Rs=15dB,T=1s.
wp=0.2*pi;ws=0.4*pi;
Rp=1;Rs=15;T=1;fs=1/T;
monip=2/T*tan(wp/2);%由數(shù)字濾波器指標(biāo)wp轉(zhuǎn)化為模擬濾波器指標(biāo)monip
monis=2/T*tan(ws/2);%由數(shù)字濾波器指標(biāo)ws轉(zhuǎn)化為模擬濾波器指標(biāo)monis
[N,Wn]=cheb1ord(monip,monis,Rp,Rs,'s');%由模擬濾波器指標(biāo)返回切比雪夫I型濾波器的參數(shù)N,Wn
[B,A]=cheby1(N,Rp,Wn,'s');%由切比雪夫I型濾波器的參數(shù)N,Rp,Wn返回模擬濾波器的分子和分母多項式的系數(shù)B,A
[b,a]=bilinear(B,A,fs);%由模擬濾波器的分子和分母多項式系數(shù)B,A和采樣頻率fs通過雙線性變換法返回數(shù)字濾波器的分子和分母多項式系數(shù)b,a.
[h,w]=freqz(b,a,256);%由數(shù)字濾波器的分子和分母多項式系數(shù)b,a返回頻率w及相應(yīng)的頻率響應(yīng).
figure(2)
plot(w/pi,20*log10(abs(h)));
grid;
xlabel('f in pi unit');
ylabel('gain in db');
title('雙線性變換法設(shè)計切比雪夫I型低通數(shù)字濾波器');

% 實驗任務(wù)
% 設(shè)計一 IIR 數(shù)字帶通濾波器,給定指標(biāo)為
% (1) 200Hz600Hz,衰減>20dB
% (3)抽樣頻率 fs=2kHz
% (1)用巴特沃斯濾波器,沖擊響應(yīng)不變法;
% (2)用巴特沃斯濾波器,雙線性變換法;
% (3)用切比雪夫濾波器,沖擊響應(yīng)不變法;
% (4)用切比雪夫濾波器,雙線性變換法。
%(1)用巴特沃斯濾波器,沖擊響應(yīng)不變法;
fs=2000;
Wp=2*pi*[200,400]; ? ?%模擬
Ws=2*pi*[100,600]; ? ?%模擬
Rp=2;
Rst=20;
[N,Wn]=buttord(Wp,Ws,Rp,Rst,'s');%'s'表示模擬濾波器,N 為階數(shù),Wn 為 3dB 截止頻率.
[B,A]=butter(N,Wn,'s');%返回模擬濾波器的系統(tǒng)函數(shù),B 為分子多項式,A 為分母多項式.
[bz,az]=impinvar(B,A,fs);%沖激響應(yīng)不變法,B和A分別為模擬系統(tǒng)函數(shù)的分子和分母多項式系數(shù),fs為采樣頻率,返回bz和az分別為數(shù)字濾波器的分子和分母多項式系數(shù).
[h,w]=freqz(bz,az,256);%由數(shù)字濾波器的分子和分母多項式系數(shù)bz,az返回頻率w及相應(yīng)的頻率響應(yīng).
figure(3)
subplot(2,2,1)
plot(w/pi,20*log10(abs(h)));
grid;
xlabel('f in pi');
ylabel('gain in db');
title('巴特沃斯濾波器,沖擊響應(yīng)不變法')
% (2)用巴特沃斯濾波器,雙線性變換法;
fs=2000;
T=1/fs;
Wp=2*pi*[200,400]; ? ?%模擬
Ws=2*pi*[100,600]; ? ?%模擬
Rp=2;
Rst=20;
Wp=Wp*T; ? ?%數(shù)字
Ws=Ws*T; ? ?%數(shù)字
monip=2/T*tan(Wp/2);%由數(shù)字濾波器指標(biāo)wp轉(zhuǎn)化為模擬濾波器指標(biāo)monip
monis=2/T*tan(Ws/2);%由數(shù)字濾波器指標(biāo)ws轉(zhuǎn)化為模擬濾波器指標(biāo)monis
[N,Wn]=buttord(monip,monis,Rp,Rst,'s');%'s'表示模擬濾波器
[B,A]=butter(N,Wn,'s');%返回模擬濾波器的系統(tǒng)函數(shù),B 為分子多項式,A 為分母多項式.
[bz,az]=bilinear(B,A,fs);%由模擬濾波器的分子和分母多項式系數(shù)B,A和采樣頻率fs通過雙線性變換法返回數(shù)字濾波器的分子和分母多項式系數(shù)b,a.
[h,w]=freqz(bz,az,256);%由數(shù)字濾波器的分子和分母多項式系數(shù)bz,az返回頻率w及相應(yīng)的頻率響應(yīng).
subplot(2,2,2)
plot(w/pi,20*log10(abs(h)));
grid;
xlabel('f in pi');
ylabel('gain in db');
title('巴特沃斯濾波器,雙線性變換法')
% (3)用切比雪夫濾波器,沖擊響應(yīng)不變法;
fs=2000;
Wp=2*pi*[200,400]; ? ?%模擬
Ws=2*pi*[100,600]; ? ?%模擬
Rp=2;
Rst=20;
[N,Wn]=cheb1ord(Wp,Ws,Rp,Rst,'s');%由模擬濾波器指標(biāo)返回切比雪夫I型濾波器的參數(shù)N,Wn
[B,A]=cheby1(N,Rp,Wn,'s');%由切比雪夫I型濾波器的參數(shù)N,Rp,Wn返回模擬濾波器的分子和分母多項式的系數(shù)B,A
[bz,az]=impinvar(B,A,fs);%沖激響應(yīng)不變法,B和A分別為模擬系統(tǒng)函數(shù)的分子和分母多項式系數(shù),fs為采樣頻率,返回bz和az分別為數(shù)字濾波器的分子和分母多項式系數(shù).
[h,w]=freqz(bz,az,256);%由數(shù)字濾波器的分子和分母多項式系數(shù)bz,az返回頻率w及相應(yīng)的頻率響應(yīng).
subplot(2,2,3)
plot(w/pi,20*log10(abs(h)));
grid;
xlabel('f in pi');
ylabel('gain in db');
title('切比雪夫濾波器,沖擊響應(yīng)不變法')
%(4)用切比雪夫濾波器,雙線性變換法。
fs=2000;
T=1/fs;
Wp=2*pi*[200,400]; ? ?%模擬
Ws=2*pi*[100,600]; ? ?%模擬
Rp=2;
Rst=20;
Wp=Wp*T; ? ?%數(shù)字
Ws=Ws*T; ? ?%數(shù)字
monip=2/T*tan(Wp/2);%由數(shù)字濾波器指標(biāo)wp轉(zhuǎn)化為模擬濾波器指標(biāo)monip
monis=2/T*tan(Ws/2);%由數(shù)字濾波器指標(biāo)ws轉(zhuǎn)化為模擬濾波器指標(biāo)monis
[N,Wn]=cheb1ord(monip,monis,Rp,Rst,'s');%由模擬濾波器指標(biāo)返回切比雪夫I型濾波器的參數(shù)N,Wn
[B,A]=cheby1(N,Rp,Wn,'s');%由切比雪夫I型濾波器的參數(shù)N,Rp,Wn返回模擬濾波器的分子和分母多項式的系數(shù)B,A
[bz,az]=bilinear(B,A,fs);%由模擬濾波器的分子和分母多項式系數(shù)B,A和采樣頻率fs通過雙線性變換法返回數(shù)字濾波器的分子和分母多項式系數(shù)b,a.
[h,w]=freqz(bz,az,256);%由數(shù)字濾波器的分子和分母多項式系數(shù)bz,az返回頻率w及相應(yīng)的頻率響應(yīng).
subplot(2,2,4)
plot(w/pi,20*log10(abs(h)));
grid;
xlabel('f in pi');
ylabel('gain in db');
title('切比雪夫濾波器,雙線性變換法')

標(biāo)簽: