黃永平,李彩霞,田曉燕
(河北大學 電子信息工程學院,河北 保定 071002)
IIR(無限長單位脈沖響應)數字濾波器可以借助模擬濾波器的理論和設計方法來設計,模擬濾波器的設計理論比較成熟,有比較簡單的、現成的設計公式和圖表,根據設計指標,利用設計手冊進行設計,方便準確,設計工作量較小。根據模擬濾波器的設計理論設計數字濾波器有兩種方法:脈沖響應不變法和雙線性變換法。脈沖響應不變法雖然可以保持數字濾波器時域瞬態的特性,但是時域采樣會造成頻域的混疊失真,不能用來設計高通和帶阻濾波器;雙線性變換法不會產生頻率特性的混疊失真,可以設計低通、高通、帶通、帶阻等各種類型的數字濾波器,而且可以通過采樣預畸變的方法克服模擬頻率和數字頻率非線性關系造成的幅頻特性失真,設計方法簡單,應用普遍、有效。
MATLAB是由美國MathWorks公司推出的軟件產品,是一款功能強、效率高、可視化,便于進行科學和工程計算的交互式軟件包,其中包含的各種函數可以為數字信號處理的各項內容快捷、方便地提供正確的答案和直觀的圖形顯示。本文通過MATLAB的GUI功能設計制作,在設計的GUI界面,選擇濾波器的性能指標參數,通過運行編寫的程序可以得到所設計濾波器的系統函數、幅頻特性、相位特性等相關數據和圖形以及給定信號濾波前后的頻率特性等,進而更好地分析濾波器的性能。
雙線性變換法是根據指標求出模擬濾波器傳遞函數,再經過雙線性變換,帶入變換公式求出數字濾波器的系統函數。該方法通過頻率預畸變使數字濾波器的頻率響應逼近模擬濾波器的頻率響應。
(2)利用函數如buttord、buttap等求模擬低通原型傳遞函數;
(3)利用函數如lp2hp、lp2bs等將模擬低通原型轉換成實際模擬濾波器;
(4)利用雙線性變換法函數bilinear將模擬濾波器轉換成數字濾波器。
在MATLAB中打開GUI設計的圖形界面,然后拖入所要的圖形控件,修改控件的外觀和空間屬性。本設計共包括三個界面:模擬原型濾波器選擇界面、巴特沃思濾波器和切比雪夫濾波器設計界面。
(1)模擬低通原型濾波器選擇界面(如圖1所示),用于選擇原始的模擬低通原型,即巴特沃斯類型或切比雪夫類型;選擇低通原型后點擊“確定”按鈕,進入相應的設計界面。

圖1 模擬原型濾波器選擇界面該設計界面
(2)巴特沃思濾波器和切比雪夫濾波器設計界面(如圖2所示),用于進行濾波器的設計和仿真。包含以下四個區域:
1)參數設定區:由靜態文本框和編輯框組成,實時地進行系統參數的設定。
2)對象模型區:由下拉菜單選定數字濾波器類型即Lowpass(低通)、Highpass(高通)、Bandpass(帶通)、Bandstop(帶阻)四種類型。當用戶輸入的參數發生變化時,可通過單擊響應的“確定”按鈕,實現設計結果的實時刷新與顯示。
3)數據顯示區:對應于圖形顯示結果,實時顯示濾波器階次和分子分母多項式系數。
4)圖形區:用于顯示各模塊的仿真曲線。
在該界面中,在下拉菜單中選擇濾波器類型,在參數輸入中,可輸入濾波器通帶臨界頻率(wp1)、濾波器阻帶臨界頻率(ws2)、通帶內的最大衰減(rp)、阻帶內的最大衰減(rs)、抽樣頻率(fs)。點擊“確定”以后,在界面中部上方可以顯示出所設計的濾波器階數、濾波器系統函數的分子及分母系數、濾波器的幅頻響應,以及濾波器對任意信號濾波后的頻譜圖(本設計中任意信號只包含頻率30Hz、60Hz和90Hz)。主要程序如下:


圖2 巴特沃思及切比雪夫低通濾波器設計界面
(1)用巴特沃斯濾波器設計,在“濾波器類型”中選擇lowpass,輸入參數通帶臨界頻率、濾波器阻帶臨界頻率、通帶內的最大衰減、阻帶內的最大衰減、抽樣頻率分別為50、80、0.2、20、200,點擊“確定”按鈕后,界面如圖2所示。
由圖2可知,設計的數字濾波器階數是4,相應的傳遞函數為:

此低通濾波器的通帶及阻帶的截止頻率是50Hz和80Hz,濾波器的幅頻特性如上,對比通過濾波器前后的任意波形的頻率特性可以看出,信號中頻率為60Hz的部分幅度有些衰減,頻率為30Hz的部分完全通過了濾波器,頻率為90Hz的部分完全被濾波器截止了。實驗驗證了所設計的低通濾波器滿足指標要求。
(2)用切比雪夫濾波器設計,在“濾波器類型”中選擇lowpass后,輸入同樣的參數,按下“確定”按鈕后,界面如圖2所示。
由圖2可知設計出的濾波器階數是3,相應的傳遞函數為:

波形通過濾波器后,頻率中90Hz的部分完全得到了抑制,頻率為30Hz的部分完全通過了濾波器,頻率為60Hz的部分幅度衰減,相比于巴特沃斯濾波器頻率為60Hz的部分衰減的幅度更大,從而可知設計出的低通濾波器效果更好,但是階數稍高些。
傳統的數字濾波器設計工作量很大,而利用MATLAB的信號處理工具箱,結合雙線性變換法可以快速、直觀、有效地實現IIR數字濾波器的設計與仿真。圖形用戶界面的應用可以通過修改不同的參數實現滿足不同指標要求的數字濾波器設計任務,并可對相同指標、不同類型的濾波器性能進行比較,從中選優。而且,如果讓學生對所設計的界面和源程序加以改進,可以使學生更好地理解雙線性變換法設計數字濾波器的基本理論和基本方法,同時,可以用其他方法通過修改函數進行濾波器設計,從而培養學生綜合運用知識的能力和創新能力。
[1]周利清,蘇菲.數字信號處理基礎(第2版)[M].北京:北京郵電大學出版社,2008.
[2]李芬華,常鐵原,等.數字信號處理[M].北京:中國計量出版社,2007.
[3]唐向宏,岳恒立,等.MATLAB及在電子信息類課程中的應用[M].北京:電子工業出版社,2006.
[4]陳杰.MATLAB寶典[M].北京:電子工業出版社,2007.