基于DSP的FIR數(shù)字濾波器的實現(xiàn)
摘要:在數(shù)字信號處理應用中,濾波占有十分重要的地位,如對信號的過濾、檢測、預測等,都要廣泛地用到濾波器。文中研究了FIR濾波器窗函數(shù)算法的基本思想給出了在定點DSP芯片上實現(xiàn)FIR數(shù)字濾波器的設計方法,并給出了仿真結(jié)果。
關(guān)鍵詞:DSP;FIR濾波器;循環(huán)尋址;漢寧窗
0 引言
數(shù)字信號處理現(xiàn)已在通信與信息系統(tǒng)、信號與信息系統(tǒng)、自動控制、需達、軍事、航空航天、醫(yī)療和家用電器等眾多領(lǐng)域得到了廣泛的應用。在數(shù)字信號處理應用中,濾波占有十分重要的地位,如對信號的過濾、檢測、預測等,都要廣泛地用到濾波器。IIR數(shù)字濾波器的設計保留了一些典型模擬濾波器優(yōu)良的幅度特性,但所涉及的濾波器相位特性一般是非線性的,而FIR濾波器則可在保證幅度特性并滿足技術(shù)要求的同時,也很容易做到嚴格的線性相位特性。
1 基于窗函數(shù)法的FIR濾波器設計
1.1 單位沖激響應
首先應根據(jù)技術(shù)要求確定待求濾波器的單位沖激響應hd(n)。如果給出待求濾波器的頻率為,那么單位取樣響應則可用下式求出:
當較復雜或不能用封閉公式表示時,就不能用上式求出hd(n)。此時可以對從ω=0到ω=2π采樣M個點, 采樣值為,k=0,1,2,…,M-1,并用2π/M代替(1)式中的dω,此時(1)式可近似寫成:
這樣,根據(jù)頻率采樣定理,hM(n)與hd(n)應滿足如下關(guān)系:
因此,如果M選得較大,就可以保證在窗口內(nèi),hM(n)有效逼近hd(n)。實際計算(2)式時,可以用的M點采樣值,來進行M點IDFT
(IFFT),從而得到(2)式的值。
如果給出通帶阻帶衰減和邊界頻率的要求,則可選用理想濾波器作為逼近函數(shù),從而用理想濾波器的特性作傅立葉逆變換,以求出hd(n)。若理想低通濾波器為:
那么,求出的單位取樣響應hd(n)則為:
為保證線性相位,通常應取α=(N-1)/2。
[!--empirenews.page--]
1.2 過渡帶及阻帶衰減
根據(jù)對過渡帶及阻帶衰減的要求,設計時可選擇窗函數(shù)的形狀,并估計窗口長度N。設待求濾波器的過渡帶用△ω表示,它近似等于窗函數(shù)的主瓣寬度。由于過渡帶△ω近似與窗口長度N成反比。即N=A/△ω,其中A決定于窗口形式,例如,矩形窗A=4π,哈明窗A=8π等。按照過渡帶及阻帶衰減情況,選擇窗函數(shù)形式。其設計原則是在保證阻帶衰減的情況下,盡量選擇主瓣比較窄的窗函數(shù)。
1.3 單位取樣響應的計算
計算濾波器的單位取樣響應h(n)時,可按正式進行:
式中,ω(n)是上面選擇好的窗函數(shù)。如果要求線性相位,則要求hd(n)和ω(n)均對(N-1)/2對稱,前面介紹的幾種窗函數(shù)已保證對(N-1)
/2偶對稱。而如要求h(n)對(N-1)/2奇對稱,只要保證hd(n)對(N-1)/2奇對稱即可。
驗算技術(shù)指標是否滿足要求時其設計出的濾波器頻率響應可采用下式進行計算:
計算上式時,可使用FFT算法。如果不能滿足要求,那么,根據(jù)具體情況,可重復上述設計,直到滿足要求為止。
2 基于DSP的FIR數(shù)字濾波器實現(xiàn)方案
2.1 濾波系統(tǒng)的差分方程
若輸入信號x(n)和濾波器的單位沖激響應h(n)在頻域分別為和,則其輸出信號的頻率響應為。根據(jù)離散傅氏變換的性質(zhì),可以得到濾波系統(tǒng)的差分方程。其中,h(n)的計算可依據(jù)濾波器的參數(shù),并借助MATLAB仿真工具計算得到。
2.2 實現(xiàn)方案
由于在卷積運算之前,h(n)的N個數(shù)值是已知的,因此,可先在程序存儲器中開辟N個單元來存放h(n)。由于輸入序列x(n)是不斷變化的,因此,在數(shù)據(jù)存儲器中可開辟N個存儲單元并對其進行移位寄存,其初始值分別為x(n)、x(n-1)……x(n-N-1),然后采用循環(huán)尋址的方法對其進行訪問。每次輸入新的樣本時,可以以新樣本改寫滑窗中的最老的數(shù)據(jù),而滑窗中的其他數(shù)據(jù)則不需要移動。利用片內(nèi)8 kB(循環(huán)緩沖區(qū)長度)寄存器可對滑窗進行間接尋址,循環(huán)緩沖區(qū)地址首尾相鄰。8級循環(huán)緩沖區(qū)的結(jié)構(gòu)如圖1所示,其中頂部為低地址,圖1中的(a)(b)(c)分別為初始狀態(tài)、輸入1個和2個樣本后的存儲情況。
[!--empirenews.page--]
3 仿真結(jié)果
下面是一組信號采樣序列樣本x(n),其中存在有高頻干擾。現(xiàn)以x(n)作為輸入序列,然后濾除其中的干擾成分。
本設計的線性相位低通FIR數(shù)字濾波器的截止頻率ωc為0.2πrad,窗口長度N為11。根據(jù)上述原理及實現(xiàn)方案,若采用漢寧窗來實現(xiàn),則可依據(jù)算式計算出用漢寧窗設計時的各h(n)的系數(shù):
在CCS2.0軟件中觀察x(n)的輸入曲線如圖2所示,圖3所示是其y(n)輸出曲線。
[!--empirenews.page--]
由圖2和圖3兩圖對比可見,經(jīng)過濾波后,其輸入曲線變平滑了。并且,根據(jù)計算所得:
4 結(jié)束語
通過實驗結(jié)果可見,本設計用DSP設計的FIR數(shù)字濾波器的輸出曲線對應值與計算所得值完全相符,由此證明,本設計的程序是正確的。