實驗4 用雙線性變換法設計 IIR 濾波器
實驗目的
熟悉模拟 Batterworth濾波器設計和用雙線性變換法設計IIR數字濾波器的方法。
實驗原理
利用雙線性變換設計 IIR濾波器,首先要設計出滿足名額要求的模拟濾波器的傳遞函數
,然後由
通過雙線性變換可得所要設計的 IIR濾波器的系統函數
。
如果給定的名額為數字濾波器的名額,則首先要轉換成模拟域名額。
- 低通數字濾波器設計
數字域與模拟域關系
- 高通數字濾波器設計
數字域與模拟域關系
實驗内容及要求
- 編寫用雙線性變換法設計 Batterworth 低通 IIR數字濾波器的程式,要求通帶内頻率低于 時,容許幅度誤差在 之内,頻率在 到 之間的阻帶衰減大于 15dB。其中要求參數 , , 和 可由鍵盤輸入。
- 以 為采樣間隔,在螢幕上列印出數字濾波器的頻率區間 上的幅頻響應特性曲線( )。
- 在螢幕上列印出 的分子,分母多項式系數。
實驗結果
實驗代碼如下:
close all
clear all
%可輸入
%wp=input('wp: '); %0.2*pi
%ws=input('ws: '); %0.3*pi
%Rp=input('Rp: '); %1
%Rs=input('Rs: '); %15
wp=0.2*pi;
ws=0.3*pi;
Rp=1;
Rs=15;
Fs=1;
wp1=2*Fs*tan(wp/2); %歸一化
ws1=2*Fs*tan(ws/2);
[N,Wn]=buttord(wp1,ws1,Rp,Rs,'s'); %巴特沃斯濾波器
%wp1模拟濾波器通帶截止頻率 wp2阻帶截止頻率 Rp通帶最大衰減 Rs阻帶最大衰減
%N最小階數 Wn濾波器固有頻率
[Z,P,K]=buttap(N); %低通原型模拟濾波器
%Z P K 零點矢量 極點矢量 增益
[Bap,Aap]=zp2tf(Z,P,K);
%Bap Aap 傳遞函數分子和分母的多項式系數
[b,a]=lp2lp(Bap,Aap,Wn); %b a 所設計的模拟濾波器系統函數的分子 分母系數
[bz,az]=bilinear(b,a,Fs); %bz az 所設計的數字濾波器系統函數的分子 分母系數
[H,W]=freqz(bz,az,64); %freqz函數自動将64個點均勻設定在[0~pi]之間 計算出64個點的頻率響應存放于H向量中,64個頻率存放在W向量中
subplot(2,1,1);
plot(W/pi,abs(H)); %幅頻特性
grid;
xlabel('頻率');
ylabel('幅頻響應特性曲線');
subplot(2,1,2);
plot(W/pi,20*log10(abs(H)));%幅頻特性(dB)
grid;
xlabel('頻率');
ylabel('幅頻響應特性曲線(dB)');
bz
az
實驗結果如下:
bz =
0.0007 0.0044 0.0111 0.0148 0.0111 0.0044 0.0007
az =
1.0000 -3.1836 4.6222 -3.7795 1.8136 -0.4800 0.0544
實驗5 用視窗法設計 FIR 濾波器
實驗目的
了解一個實際濾波器設計過程,加深掌握用視窗法設計FIR 濾波器的原理和窗函數對濾波器性能的影響。
實驗原理
設低通濾波器的時延為
,即:
則
這是一個以
為中心的偶對稱的無限長非因果序列。這樣一個無限長的序列怎樣用一個有限長序列去近似呢?最簡單的辦法就是直接截取它的一段來代替它。例如把
到
的一段截取來作為
,但是為要保證所得到的是線性相位濾波器。必須滿足
的對稱性,是以時延
應該取
長度的一半,即
即
但是一般來說,視窗函數并不一定是矩形函數,可以在矩形以内還對
作一定的權重處理,是以,一般可以表示為
這裡
就是視窗函數。這種對理想機關取樣響應加窗的處理對頻率響應會産生以下三點影響:
(1)使理想特性不連續的邊沿加寬,形成一過渡帶,過渡帶的寬度取決于視窗頻譜的主瓣寬度。
(2)在過渡帶兩旁産生肩峰和餘振,它們取決于視窗頻譜的旁瓣;旁瓣越多,餘振也越多;旁瓣相對值越大,肩峰則越強。
(3)增加截取長度
,隻能縮小視窗頻譜的主瓣寬度而不能改變旁瓣的相對值;旁瓣與主瓣的相對關系隻決定于視窗函靈敏的形狀。是以增加
,隻能相對應減小過渡帶寬。而不能改變肩峰值。肩峰值的大小直接決定通帶内的平穩和阻帶的衰減,對濾波器性能有很大關系。例如矩形窗的情況下,肩峰達
,緻使阻帶最小衰減隻有
分貝,這在工程上往往是不夠的。怎樣才能改善阻帶的衰減特性呢?隻能從改善視窗函數的形狀上找出路,是以希望的視窗頻譜中應該減少旁瓣,使能量集中在主瓣,這樣可以減少肩峰和餘振,提高阻帶的衰減。而且要求主瓣寬度盡量窄,以獲得較陡的過渡帶,然而這兩個要求總不能兼得,往往需要用增加主瓣寬度帶換取決瓣的抑制,于是提出了海明窗、凱寬窗、切比雪夫窗等視窗函數。
實驗内容及要求
用改進餘弦窗設計一個FIR 線性相應相位低通數字濾波器,已知
,
。編寫調試程式,要求在幕幕上顯示出機關脈沖響應
的數值,畫出其幅度響應
的曲線。
實驗結果
close all
clear all
wc=0.5*pi;
N=21;
r=(N-1)/2;
n=0:N-1;
hdn=sin(wc*(n-r))/pi./(n-r);
if rem(N,2)~=0;
hdn(r+1)=wc/pi;
end
wn=hamming(N);
h=hdn.*wn';
H=fft(h,512);
w=2*[0:511]/512;
subplot(3,1,1);
stem(n,h,'.');
title('h(n)');
xlabel('n');
ylabel('幅度');
subplot(3,1,2);
plot(w,abs(H));
title('H(exp(jw))');
xlabel('w/pi');
ylabel('幅度');
subplot(3,1,3);
plot(w,20*log10(abs(H)));
title('H(exp(jw))');
xlabel('w/pi');
ylabel('幅度(db)');
實驗6 IIR 和 FIR 濾波器過濾信号的實作及比較
實驗目的
1、 掌握數字濾波器的計算機仿真方法。
2、 通過觀察對實際心電圖信号的濾波作用,獲得數字濾波的感性知識。
實驗原理
若
是因果FIR 濾波器的機關脈沖響應,其長度為N,當輸入為
時,輸出序列
為:
取
為低通濾波器
,截止頻率
,采用海明窗設計出
。
若
是
濾波器,在通常内頻率低于
時,最大衰減小于
;在阻帶内
頻率區間上,最小衰減大于
。用雙線性變換法設計得到 Batterworth濾波器系統函數
為:
式中
濾波器
由三個二階濾波器
,
和
級聯組成,如下圖所示:
可得
當
時,
實驗内容及要求
1、 編寫FIR濾波器仿真程式,計算其對心電圖信号采樣序列
的響應序列
。
2、 編寫 IIR濾波器仿真程式,計算其對心電圖信号采樣序列
的響應序列
。
3、 在通用計算機上運作仿真濾波器程式,在螢幕上列印出
、
和
,并進行比較。
實驗結果
close all
clear all
x=[4 -2 0 -4 -6 -4 -2 -4 -6 -6 -4 -4 -6 -6 -2 6 12 8 0 -16 -38 -60 -84 -90-66 -32 -4 -2 -4 8 12 12 10 6 6 6 4 0 0 0 0 0 -2 -4 0 0 0 -2 -2 0 0 -2 -2 -2 -2 0];
A=0.2318;
B1=0.4164;
C1=-0.6006;
B2=0.3093;
C2=0.1888;
B3=0.2692;
C3=-0.0349;
a1=[1 B1 C1];
b1=[A 2*A A];
a2=[1 B2 C2];
b2=[A 2*A A];
a3=[1 B3 C3];
b3=[A 2*A A];
y1=filter(b1,a1,x);
y2=filter(b2,a2,y1);
y3=filter(b3,a3,y2);
y=y3;
subplot(3,1,1)
plot(x);
title('x(n)');
subplot(3,1,2)
plot(y);
title('IIR y2(n)');
subplot(3,1,3)
N=21;
Window = hamming(N);
wc=0.2*pi;
hn=fir1(N-1,wc/pi,Window);
yn=conv(x,hn);
plot(yn);
title('FIR y1(n)');
FIR 延遲
實驗總結
- 數字濾波器作用:利用離散時間系統的特性對輸入信号波形(或頻譜)進行加工處理,把輸入序列x(n)變換成一定的輸出序列y(n)進而達到改變信号頻譜的目的。
- 運算量 FIR 大原因:得到嚴格的線性相位,階數高,運算次數高,延時比較大。
- FIR 存儲速度更快: FIR 可以采用非遞歸結構;可以利用快速傅裡葉算法。
通過本次試驗,我明白了 FIR 和IIR的濾波原理,并了解了它們的差別。