徐 歡,胡津津,袁 媛
(安徽電子信息職業(yè)技術(shù)學院 電子信息工程系,安徽 蚌埠 233030)
隨著計算機和微電子等學科的飛速發(fā)展,數(shù)字信號處理已經(jīng)成為當今極為重要的學科和技術(shù),應(yīng)用范圍也越來越廣泛.數(shù)字濾波器的設(shè)計和應(yīng)用在數(shù)字信號處理中有著非常重要的地位.數(shù)字濾波器按照長度分類可以分成有線長單位脈沖響應(yīng)(FIR)濾波器,和無限長單位脈沖響應(yīng)(IIR)濾波器.FIR濾波器相比較于IIR濾波器具有更多的優(yōu)點,如線性相位特性、系統(tǒng)的穩(wěn)定性等[1].
MATLAB軟件是mathworks公司開發(fā)的一種設(shè)計軟件,優(yōu)點很多,可以進行數(shù)值運算、符號運算和圖形處理等功能,廣泛用于各領(lǐng)域的分析、設(shè)計和復(fù)雜運算.隨著MATLAB軟件的不斷更新,特別是MATLAB的信號處理工具箱(FDATool)的推出,現(xiàn)在MATLAB軟件已經(jīng)成為數(shù)字信號處理應(yīng)用中用來分析和仿真設(shè)計的重要工具[2].本論文主要討論利用MATLAB軟件,結(jié)合窗函數(shù)法設(shè)計FIR數(shù)字濾波器的過程.
實際實現(xiàn)的濾波器的單位取樣響應(yīng)為h(n),長度為N,系統(tǒng)函數(shù)為H(z),顯然我們用一個有限長的序列h(n)去代替理想濾波器的單位取樣響應(yīng)hd(n)肯定會引起誤差,這就是所謂的吉布斯效應(yīng),該效應(yīng)引起通帶內(nèi)和阻帶內(nèi)的波動性,這是由于直接將hd(n)截斷引起的,也稱為截斷效應(yīng).窗函數(shù)法又稱為傅立葉級數(shù)法,選取的傅立葉級數(shù)的項數(shù)越多,引起的誤差就越小,但是隨著項數(shù)增多也會使得成本和體積加大,所以應(yīng)該在滿足技術(shù)要求的情況下盡量減少h(n)的長度.
窗函數(shù)的設(shè)計法是根據(jù)給定需要設(shè)計的濾波器的技術(shù)指標參數(shù),選擇濾波器的階數(shù)N和合適的窗函數(shù),設(shè)h(n)=hd(n)ω(n),ω(n)表示窗函數(shù).
窗函數(shù)設(shè)計法的條件是:
(1)通帶盡可能窄;
(2)阻帶內(nèi)的波動性可能小,增強阻帶的衰減.
實際常用的窗函數(shù)有矩形窗、三角形窗、漢寧窗、哈明窗、布萊克曼窗和凱賽—貝塞爾窗,設(shè)計時可參考這六種窗函數(shù)基本參數(shù),如表1.
表1 六種窗函數(shù)的基本參數(shù)
窗函數(shù)設(shè)計FIR濾波器的步驟如下:
(1)根據(jù)指標要求的頻率參數(shù),確定逼近理想濾波器的頻率響應(yīng)Hd(ejω);
(3)根據(jù)指標給出的濾波器幅度要求和過度帶寬的要求,選擇窗函數(shù)和窗長度N,原則是在保證阻帶衰減滿足要求的情況下,盡量選擇主瓣窄的窗函數(shù);
(4)加窗處理,計算濾波器的單位取樣響應(yīng)h(n),h(n)=hd(n)ω(n);
(5)檢驗h(n)的頻響H(ejω)是否滿足Hd(ejω)的要求,
(6)若滿足要求,根據(jù)h(n)畫出網(wǎng)絡(luò)結(jié)構(gòu)圖,若不滿足,重復(fù)(3)(4)(5)(6),一般N需要經(jīng)過多次試探.
用窗函數(shù)法設(shè)計一個FIR帶通濾波器,指標如下:
低端阻帶截止頻率ω1s=0.2π,低端通帶截止頻率ω1p=0.35π,高端通帶截止頻率ωhp=0.65π,高端阻帶截止頻率ωhs=0.8π,通帶最大衰減Rp=1dB,阻帶最小衰減Rs=40dB,繪出h(n)及其幅頻特性曲線.
根據(jù)設(shè)計要求,設(shè)計的是帶通濾波器,所以參數(shù)為ωc=[ωp/π,ωnp/π],根據(jù)阻帶最小衰減Rs=40dB,選擇漢寧窗,窗口長度N由過度帶寬B=0.15π決定,Blackman窗設(shè)計的濾波器的過度帶寬為8π/M,故N取54.因N=M+1,所以濾波器階數(shù)M=53.hanning窗設(shè)計程序示例如下:
clear all;
wls=0.2*pi;
wlp=0.35*pi;
whp=0.65*pi;
wc=[wlp/pi,whp/pi];
B=wlp-wls;
N=ceil(8/0.15);
n=0:N-1;
window=hanning(N);
[h1,w]=freqz(window,1);
subplot(2,2,1);stem(window);
axis([0 60 0 1.2]);
grid;
xlabel('n');
title('Hanning窗函數(shù)');
subplot(2,2,2);plot(w/pi,20*log(abs(h1)/abs(h1(1))));
axis([0 1 -350 0]);
grid;
xlabel('w/pi');
ylabel('幅度(dB)');
title('Hanning窗函數(shù)的頻譜');
hn=fir1(N-1,wc,hanning (N));
[h2,w]=freqz(hn,1,512);
subplot(2,2,3);stem(n,hn);
axis([0 60 -0.25 0.25]);
grid;
xlabel('n');
ylabel('h(n)');
title('Hanning窗函數(shù)的單位脈沖響應(yīng)');
subplot(2,2,4);
plot(w/pi,20*log(abs(h2)/abs(h2(1))));
grid;
xlabel('w/pi');
ylabel('幅度(dB)');
title('Hanning窗設(shè)計帶通濾波器的幅頻響應(yīng)');
仿真結(jié)果如圖1:
圖1 漢寧窗設(shè)計帶通濾波器的仿真
從圖1可以看出,漢寧窗設(shè)計的帶通濾波器帶通下限截止頻率大概為0.35π,帶通上線截止頻率大概為0.65π,對在通帶頻率之外的頻率信號的幅度衰減很厲害,以致信號不能通過濾波器,達到了選頻濾波的目的.
利用MATLAB語言設(shè)計FIR數(shù)字濾波器,由于在設(shè)計過程中方便、快捷,所以在很大程度上減輕了設(shè)計者的工作量.在設(shè)計過程中可以隨時改變設(shè)計參數(shù),根據(jù)仿真結(jié)果檢驗各濾波器
指標是否滿足,因此在設(shè)計過程中為設(shè)計者合理設(shè)計濾波器提供了可靠的依據(jù).
參考文獻:
[1]丁玉美,高西全.數(shù)字信號處理[M].西安:西安電子科技大學出版社,2000.
[2]陳懷琛,吳大正,高西全.MATLAB及在電子信息課程中的應(yīng)用[M].北京:電子工業(yè)出版社,2006.
[3]胡廣書.數(shù)字信號處理——理論算法與實現(xiàn)[M].北京:清華大學出版社,2003.