許志敏 魏海峰 陸彥如
(江蘇科技大學電子信息學院 鎮(zhèn)江 212003)
數(shù)字信號處理技術(shù)伴隨著信息科學的發(fā)展而迅速發(fā)展,濾波器在數(shù)字信號處理中基礎(chǔ)而又十分重要。數(shù)字濾波器通過數(shù)值計算實現(xiàn)濾波,其工作穩(wěn)定、體積小、重量輕、靈活、處理精度高,并且可通過模擬信號和數(shù)字信號相互轉(zhuǎn)換的技術(shù)來處理模擬信號,這些優(yōu)點使其廣泛應用于語音圖像處理、數(shù)字通信、頻譜分析、模式識別、自動控制等領(lǐng)域,成為數(shù)字信號處理中最重要的組成部分之一。
數(shù)學信號處理器的出現(xiàn)徹底改變了通信,其具有高速靈活性、可編程性和低消耗等特點,讓其在圖形、圖像處理和語音處理等方面發(fā)揮著重要作用。數(shù)字信號處理器是一個專用處理器,在模擬信號轉(zhuǎn)換為數(shù)字信號后執(zhí)行高速實時處理,處理速度比CPU快10~50倍。在數(shù)字化時代背景下,DSP已經(jīng)成為通信、計算機、消費類電子產(chǎn)品等領(lǐng)域的基本組成部分。
有限沖激響應濾波器(FIR)和無限沖激響應濾波器(IIR)是常用的兩種數(shù)字濾波器,無限沖激響應濾波器(IIR)相較于有限沖激響應濾波器(FIR),實現(xiàn)算法更為復雜。但是IIR濾波器工作量相對小,可以用低階數(shù)來實現(xiàn)較高性能要求,所需的存儲單元少,從而運行效率得到提高,更加經(jīng)濟。
文獻[1]實現(xiàn)了IIR數(shù)字濾波器在Matlab中的仿真。文獻[2]介紹了后向差分法和雙線性變換法,以實現(xiàn)模擬控制器的離散化,本文將采用雙線性變換法。文獻[3]提出了四種典型的歸一化模擬器實現(xiàn)方法,并在Matlab進行仿真實驗。文獻[4]提出沖激響應不變法會帶來的頻譜混疊失真問題,“數(shù)字-數(shù)字頻帶變化”設計的數(shù)字濾波器是一種有效的抗混疊的設計辦法。文獻[5]在DSPTMS320C54x芯片上實現(xiàn)了FIR低通濾波器。文獻[6]用AT89C51合成脈沖波形。文獻[7]在DSPTMS320C55x實現(xiàn)IIR數(shù)字濾波器。文獻[8]通過FPGA實現(xiàn)IIR數(shù)字濾波器。文獻[9~10]說明濾波器在語音信號處理中的實際應用。文獻[11]設計基于Delphi環(huán)境實現(xiàn)了IIR濾波器。文獻[12~16]、[18]研究了數(shù)字濾波器的參數(shù)設定、優(yōu)化等問題。文獻[17]設計了基于FPGA的FIR數(shù)字帶通濾波器。
結(jié)合上述文獻,本文將采用雙線性變換法來設計巴特沃斯濾波器,并在DSP集成開發(fā)環(huán)境CCS上進行仿真實驗。
脈沖響應不變法和雙線性變換法是設計IIR數(shù)字濾波器的兩種常用方法,脈沖響應不變法無法有效解決頻譜混淆的問題。因此,本文采用雙線性變換法設計IIR數(shù)字低通濾波器。
設過渡模擬濾波器的系統(tǒng)函數(shù)用Ha(s),s=jΩ,將Ha(s)的復數(shù)自變量壓縮到±π/T得到系統(tǒng)函數(shù)用Ha(s1),s=jΩ1表示,用正切變換頻率進行壓縮,實現(xiàn)了s平面上整個虛軸完全壓縮到s1平面上虛軸的±π/T之間,得到
再按照Z=es1T從s1平面轉(zhuǎn)換到z平面變換成Ha(z),得到
此時便不會出現(xiàn)頻譜混淆的問題。式(2)分子、分母函數(shù)均是線性的,稱為雙線性變換。
圖1 雙線性變換過程示意圖
1)本系統(tǒng)的設計技術(shù)指標為
通帶邊緣頻率fp1、待求阻帶邊緣頻率fs1和待求阻帶衰減-20 logδsdB。
模擬邊緣頻率為fp1=1000Hz,fs1=12000Hz阻帶邊緣衰減為-20 logδs=30dB
2)將數(shù)字低通濾波器的技術(shù)指標轉(zhuǎn)換成模擬低通濾波器的技術(shù)指標。
用非線性關(guān)系Ω1=2πf/fs將待求邊緣頻率轉(zhuǎn)換成用弧度表示,得到Ωp1和Ωs1。
3)由于雙線性變換會出現(xiàn)頻率變換非線性,所以預扭曲模擬頻率來避免非線性引起的失真。由w=2fstan(Ω/2)求得wp1和ws1,單位為弧度/秒。
4)根據(jù)所需要的阻帶衰減-20 logδs來計算出阻帶邊緣增益δs。
因為-20 logδs=30,所以logδs=-30/20,δs=0.03162。
利用結(jié)束計算公式求模擬濾波器的最低階數(shù):
因此,一階巴特沃斯濾波便可達到要求,完成所需的性能指標。
一階巴特沃斯濾波器系統(tǒng)傳輸函數(shù)為
通過雙線性變換式(2)得到數(shù)字濾波器系統(tǒng)傳輸函數(shù)為
因此系統(tǒng)差分方程為
軟件設計分為兩大部分,波形產(chǎn)生子程序和無限沖激響應濾波器子程序,采用了C語言與匯編語言相合的方式,在開發(fā)環(huán)境方面,采用的是DSP集成開發(fā)環(huán)境Code Composer Studio(CCS)。
1)主程序模塊設計如圖2所示。
圖2 主程序模塊設計流程圖
2)波形產(chǎn)生子程序設計如圖3所示。
圖3 波形產(chǎn)生子程序流程圖
3)無限沖激響應濾波器(IIR)子程序設計如圖4所示。
圖4 無限沖激響應濾波器(IIR)子程序流程圖
軟件調(diào)試結(jié)果如圖5、6所示。
輸入波形是低頻正弦波和高頻余弦波的疊加。
由圖5所示的時域仿真結(jié)果可以看出:當?shù)皖l正弦波和高頻余弦波相互疊加的信號進入濾波器后,觀察輸出波形,高頻部分的余弦波受到遏制作用而衰減,低頻部分的正弦波信號得到保留。
圖5 時域仿真結(jié)果
結(jié)合圖6所示的頻域仿真結(jié)果可以更顯著地看出:低頻部分(橫坐標為0~0.1)的波形無明顯變化,而高頻部分(橫坐標為0.4附近)的波形幅值減小,表明高頻部分的波形受到明顯的遏制作用。
圖6 頻域仿真結(jié)果
本文采用CCS集成開發(fā)環(huán)境軟件設計雙線性變換法的IIR數(shù)字低通濾波器,當輸入波形是低頻的正弦波和高頻的余弦波疊加時,通過觀察頻域和時域的仿真結(jié)果圖,得知:當?shù)皖l正弦波和高頻余弦波相互疊加的信號進入濾波器后,高頻部分的余弦波收到遏制作用而衰減,低頻部分的正弦波信號得到保留。通過無限沖激響應低通濾波器,可以準確地過濾掉輸入波形中的高頻部分,顯示輸入波形中的低頻部分。
本文簡要說明了數(shù)字濾波器在數(shù)字信號處理的重要作用、數(shù)字信號處理器在通信方面的重要地位,分析了有限沖激響應濾波器(FIR)和無限沖激響應濾波器(IIR)的優(yōu)劣,通過巴特沃斯數(shù)字低通濾波器的實例,闡述了雙線性變換法的設計步驟,通過仿真結(jié)果得出:IIR數(shù)字低通濾波器可以準確過濾掉輸入信號中的高頻部分,顯示輸入波形中的低頻部分。