1. 程式人生 > >用雙線性變換法設計IIR數字濾波器

用雙線性變換法設計IIR數字濾波器

目的

熟悉模擬巴特沃茲(Batterworth)濾波器設計和用雙線性變換去設計IIR數字濾波器的方法。

內容與要求

(1)編寫用雙性變換法設計巴特沃茲低通IIR數字濾波器的程式,要求通帶 內頻率低於0.2pirad時,容許幅度誤差在1dB之內,頻率在0.3pirad到pirad 之間的阻帶衰減大於10dB。 

(2)用雙線性變換法設計Butterworth低通IIR數字濾波器,要求使用buttord, butter和bilinear函式。濾波器技術指標:取樣頻率1Hz,通帶內臨界頻率0.2Hz,通帶內衰減小於1dB;阻帶臨界頻率0.3Hz,阻帶內衰減大於25dB。

(3)以pi/64為取樣間隔,在螢幕上打印出數字濾波器的頻率區間[0,pi] 上的幅 頻響應特性曲線(|H(ejw)|或20lg|H(ejw)|)。

(4)在螢幕上打印出H(z)的分子,分母多項式係數。

程式與結果

clear all;

wp=0.2*pi;

ws=0.3*pi;

Rp=1;

Rs=10;

Fs=1;

[N,Wn]=buttord(wp,ws,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)');

 

 

clear all;

wp=0.2*2*pi;

ws=0.3*2*pi;

Rp=1;

Rs=25;

Fs=1;

Ts=1/Fs;

wp1=wp*Ts;

ws1=ws*Ts;

wp2=2*Fs*tan(wp1/2);

ws2=2*Fs*tan(ws1/2);

[N,Wn]=buttord(wp2,ws2,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)');

 

clear all;

 

wp=0.2*2*pi;

ws=0.3*2*pi;

Rp=1;

Rs=25;

Fs=1;

Ts=1/Fs;

wp1=wp*Ts;

ws1=ws*Ts;

wp2=2*Fs*tan(wp1/2);

ws2=2*Fs*tan(ws1/2);

[N,Wn]=buttord(wp2,ws2,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,64);

subplot(2,2,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.2989    0.1501   -0.0208    0.0025

  • 模擬結果分析

圖一:通帶截止頻率為0.2prad,阻帶截止頻率為0.3prad,圖中橫座標w是數字頻率,對應的模擬頻率為0-fs/2。

圖二:通帶截止頻率為0.4prad,阻帶截止頻率為0.6prad

五、實驗問題解答與體會

通過這次實驗,我學會了如何看低通濾波器的幅頻特性,並掌握了用雙線性變換法設計巴特沃斯低通IIR數字濾波器的方法。雙線性變換法首先根據模擬濾波器的指標設計出相應的模擬濾波器,然後再講設計好的模擬濾波器轉換成滿足給定指標的數字濾波器。