降采樣FIR濾波器的設(shè)計與硬件實(shí)現(xiàn)
摘要:提出了一種完整的降采樣FIR濾波器的設(shè)計和硬件實(shí)現(xiàn)方法。該方法首先利用matlab工具箱自帶的FDAtool設(shè)計出降采樣FIR濾波器的系數(shù),然后采用橫向抽頭式結(jié)構(gòu)進(jìn)行硬件實(shí)現(xiàn)。硬件實(shí)現(xiàn)時,先利用FIR濾波器系數(shù)對稱的特點(diǎn)將乘法器的數(shù)目減半進(jìn)行初步優(yōu)化,然后采用移位相加的硬件結(jié)構(gòu)來取代所有的乘法器,從而使降采樣通過在濾波器中加入降采樣控制單元來一并完成。
關(guān)鍵詞:FIR濾波器;濾波器系數(shù);降采樣;硬件資源
0 引言
降采樣數(shù)字濾波器可廣泛應(yīng)用于通信、聲音和圖像處理系統(tǒng)中。而當(dāng)輸入信號的帶寬高于需處理的帶寬時,對信號進(jìn)行降采樣處理可以大大減少數(shù)據(jù)量,提高數(shù)據(jù)率使實(shí)時處理容易實(shí)現(xiàn)。同時,為了克服在頻域上的混疊,還需要先用低通濾波器過濾非處理帶寬的信號能量,然后再降采樣,以避免混疊。
本文以LTE無線通信系統(tǒng)為例,提出了一種完整的降采樣FIR濾波器的設(shè)計和硬件實(shí)現(xiàn)方案。該方案在利用FDAtool得到濾波器系數(shù)之后再進(jìn)行定點(diǎn)化,并將各系數(shù)拆分成2的冪次方相加減的形式,以便進(jìn)行移位相加。對于降采樣,該設(shè)計沒有使用傳統(tǒng)的先濾波后采樣的方案,而是在濾波過程中滲入了采樣操作。這樣就大大減少了硬件資源的消耗,并可將乘法器的使用數(shù)目降低到零。
1 降采樣濾波器的結(jié)構(gòu)原理
降采樣濾波器的典型結(jié)構(gòu)如圖1所示,包括抗混疊濾波器和降采樣器。其中D為降采樣率,k表示濾波器階數(shù)。從圖1可以看出,抗混疊濾波器的輸出y(n)是對輸入序列x(n)加權(quán)求和的結(jié)果,即:
直接降低采樣率往往會使信號在頻域上出現(xiàn)混疊,所以,一般需要預(yù)先通過一個低通濾波器抗混疊處理后再進(jìn)行降采樣,這個濾波器一般也稱為抗混疊濾波器。圖2所示是預(yù)濾波器的原理示意圖??够殳B濾波就是在滿足一定分辨率和通信帶寬的前提下,盡可能降低數(shù)據(jù)量,從而節(jié)約計算資源、節(jié)省存儲空間,使實(shí)時處理容易實(shí)現(xiàn)。
2 降采樣濾波器的設(shè)計與硬件實(shí)現(xiàn)
2.1 降采樣濾波器的設(shè)計
利用matlab工具箱中自帶的FDAtool可以確定濾波器的系數(shù)。首先根據(jù)系統(tǒng)要求確定濾波器的性能參數(shù),比如在LTE系統(tǒng)中,數(shù)據(jù)傳輸帶寬為10 MHz,其中用到一個降采樣濾波器,將采樣頻率為61.44 MHz的信號降采樣兩倍后為30.72 MHz。本設(shè)計方法選擇低通FIR等紋波濾波器。濾波器的階數(shù)可以自己指定,也可以通過設(shè)置通帶紋波擺幅和阻帶衰減自行得到,一般通帶紋波擺幅設(shè)為0.1dB,而阻帶衰減設(shè)為60 dB。在滿足這些性能指標(biāo)的前提下,為了便于實(shí)現(xiàn),濾波器的階數(shù)設(shè)計為30階,故有31個抽頭。其設(shè)計出的低通濾波器如圖3所示。
單擊工具欄中的[b,a]圖標(biāo),就可以得到濾波器的系數(shù)。
2.2 降采樣濾波器的硬件實(shí)現(xiàn)
根據(jù)上述方案得到濾波器系數(shù)之后,再利用FDAtool所提供的量化功能,并根據(jù)該降采樣濾波器前后模塊的精度需求,可以選擇量化精度為12,于是得到的濾波器定點(diǎn)化之后的系數(shù)如下:
[b0, b1, …, b30] =[-21, -8l, -58,77,173,9,-29l,-250,284,641,33,-109l,-990,1454,4938,6599,4938,1454,-990, -1091, 33, 64l, 284, -250, -291,9,173,77,-58,-81,-21],可見,該濾波器的系數(shù)是關(guān)于b15對稱的,這一點(diǎn)也驗(yàn)證了FIR濾波器系數(shù)對稱的特點(diǎn)。圖4所示是本文初步設(shè)計的濾波器硬件架構(gòu)。
為了進(jìn)一步降低硬件復(fù)雜度,可將定點(diǎn)化的系數(shù)拆分成2的冪次方相加減的形式。以圖3中設(shè)計出的系數(shù)為例:
[b0,b1,…,b15] = [-21,-8l,-58,77,173,9,-29l,-250, 284, 641, 33, -109l, -990,1454,4938,6599]
=[ -(16+4+1),
-(64+16+1),
-(64-8+2),
(64+16-4+1),
(256-64-16-4+1),
(8+1),
-(256+32+4-1),
-(256-8+2),
(256+32-4),
(512+128+1),
(32+1),
-(1024+64+4-1),
-(1024-32-2),
(2048-512-64-16-2),
(4096+1024-256+64+8+2),
(8192-2048+512-64+8-1)]. (3)
結(jié)合濾波器的階數(shù)可知式(1)中的h(n)可以表示為:
h(n)=-21×[δ(n)+δ(n-30)]-8l×[δ(n-1)+δ(n-29)]-58×[δ(n-2)+δ(n-29)]+…+6599×δ(n-15). (4)
于是,有:y(n)=-21×[x(n)+x(n-30)]-8l×[x(n-1)+x(n-29)]-58×[x(n-2)+x(n-29)]+…+6599×x(n-15). (5)
將以上各系數(shù)用(3)中的拆分結(jié)果替換,可將式(5)進(jìn)一步寫為:
y(n)=-(16+4+1) [x(n)+x(n-30)]-(64+16+1) [x(n-1)+x(n-29)]-(64-8+2) [x(n-2)+x(n-29)]+…+(8192-2048+512-64+8-1)·x(n-15). (6)
這樣,輸出y(n)可表示成輸入移位相加減的形式。至此,抗混疊FIR濾波器便告設(shè)計完成。
由圖2可知,抗混疊濾波器輸出信號必須經(jīng)過降采樣才能輸出。而對于本設(shè)計的濾波器,其降采樣率為2:l,理論上把式(6)取出一半即可滿足降采樣要求,但是,這樣就意味著之前浪費(fèi)了一部分硬件資源去計算這一半不用的數(shù)據(jù)?;诖丝紤],在設(shè)計濾波器時可加上一個降采樣控制器,x(n)還是正常輸入,每一拍進(jìn)一個新的采樣點(diǎn),而濾波過程則用降采樣控制器控制,這樣可使計算每隔一拍進(jìn)行一次。
3 仿真結(jié)果分析
3.1 濾波器的幅頻響應(yīng)
圖5所示是在matlab中利用定點(diǎn)化之后的濾波器系數(shù)畫出濾波器的幅頻響應(yīng)特性曲線。
該曲線與2.1中設(shè)計的濾波器幅頻曲線基本一致,從而驗(yàn)證了本設(shè)計的正確性。
3.2 硬件代碼的仿真波形
對于本文中設(shè)計的硬件架構(gòu),用Verilog語言寫出相應(yīng)的硬件實(shí)現(xiàn)代碼,再用modelsim軟件進(jìn)行波形仿真,其仿真結(jié)果如圖6所示。
由圖6所示的仿真結(jié)果可見,在降采樣控制器的控制下,輸入濾波器的數(shù)據(jù)經(jīng)過濾波器之后,其輸出頻率降低一半。
3.3 綜合、布局和布線結(jié)果
上述設(shè)計可用QuartusⅡ9.O進(jìn)行綜合、布局和布線,選用stratixⅢ的器件EP3SL340F151713,所得到的硬件資源占用情況如圖7所示。此時,該濾波器最高可以run到170.07 MHz,可以符合系統(tǒng)要求。
實(shí)際上,用OuartusⅡ9.0也可以對傳統(tǒng)方法設(shè)計出的濾波器進(jìn)行綜合、布局布線,并選擇同樣的器件。因?yàn)?,傳統(tǒng)的設(shè)計只是利用了系數(shù)的對稱特點(diǎn),而沒有對系數(shù)進(jìn)行分解。由于是直接和輸入相乘疊加,因此濾波器的硬件代碼最高只能跑到59.51MHz。其硬件資源占用情況如圖8所示。
比較圖7和圖8的報告結(jié)果可見,本文提出的設(shè)計方法在LUT資源的占有和濾波器最高工作頻率方面都有明顯的改進(jìn)。從而解決了傳統(tǒng)設(shè)計需要專門對濾波器輸出信號進(jìn)行2倍降采樣而耗費(fèi)硬件資源的問題。
4 結(jié)束語
本文通過基于matlab自帶的工具來對降采樣FIR數(shù)字濾波器進(jìn)行原型設(shè)計,給出了硬件資源占用少且工作頻率高的降采樣濾波器的實(shí)現(xiàn)方
案。該設(shè)計經(jīng)過modelsim軟件的功能仿真和QuartusⅡ軟件進(jìn)行綜合、布局布線驗(yàn)證,其均可達(dá)到系統(tǒng)要求。