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