魏莉,林平分
(北京工業大學北京市嵌入式重點實驗室,北京 100122)
0 引言
降采樣數字濾波器可廣泛應用于通信、聲音和圖像處理系統中。而當輸入信號的帶寬高于需處理的帶寬時,對信號進行降采樣處理可以大大減少數據量,提高數據率使實時處理容易實現。同時,為了克服在頻域上的混疊,還需要先用低通濾波器過濾非處理帶寬的信號能量,然后再降采樣,以避免混疊。
本文以LTE無線通信系統為例,提出了一種完整的降采樣FIR濾波器的設計和硬件實現方案。該方案在利用FDAtool得到濾波器系數之后再進行定點化,并將各系數拆分成2的冪次方相加減的形式,以便進行移位相加。對于降采樣,該設計沒有使用傳統的先濾波后采樣的方案,而是在濾波過程中滲入了采樣操作。這樣就大大減少了硬件資源的消耗,并可將乘法器的使用數目降低到零。
1 降采樣濾波器的結構原理
降采樣濾波器的典型結構如圖1所示,包括抗混疊濾波器和降采樣器。其中D為降采樣率,k表示濾波器階數。從圖1可以看出,抗混疊濾波器的輸出y(n)是對輸入序列x(n)加權求和的結果,即:
降采樣后的輸出為:
直接降低采樣率往往會使信號在頻域上出現混疊,所以,一般需要預先通過一個低通濾波器抗混疊處理后再進行降采樣,這個濾波器一般也稱為抗混疊濾波器。圖2所示是預濾波器的原理示意圖。抗混疊濾波就是在滿足一定分辨率和通信帶寬的前提下,盡可能降低數據量,從而節約計算資源、節省存儲空間,使實時處理容易實現。
2 降采樣濾波器的設計與硬件實現
2.1 降采樣濾波器的設計
利用matlab工具箱中自帶的FDAtool可以確定濾波器的系數。首先根據系統要求確定濾波器的性能參數,比如在LTE系統中,數據傳輸帶寬為10 MHz,其中用到一個降采樣濾波器,將采樣頻率為61.44 MHz的信號降采樣兩倍后為30.72 MHz。本設計方法選擇低通FIR等紋波濾波器。濾波器的階數可以自己指定,也可以通過設置通帶紋波擺幅和阻帶衰減自行得到,一般通帶紋波擺幅設為0.1dB,而阻帶衰減設為60 dB。在滿足這些性能指標的前提下,為了便于實現,濾波器的階數設計為30階,故有31個抽頭。其設計出的低通濾波器如圖3所示。
單擊工具欄中的[b,a]圖標,就可以得到濾波器的系數。
2.2 降采樣濾波器的硬件實現
根據上述方案得到濾波器系數之后,再利用FDAtool所提供的量化功能,并根據該降采樣濾波器前后模塊的精度需求,可以選擇量化精度為12,于是得到的濾波器定點化之后的系數如下:
[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],可見,該濾波器的系數是關于b15對稱的,這一點也驗證了FIR濾波器系數對稱的特點。圖4所示是本文初步設計的濾波器硬件架構。
為了進一步降低硬件復雜度,可將定點化的系數拆分成2的冪次方相加減的形式。以圖3中設計出的系數為例:
[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)
結合濾波器的階數可知式(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)
將以上各系數用(3)中的拆分結果替換,可將式(5)進一步寫為:
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濾波器便告設計完成。
由圖2可知,抗混疊濾波器輸出信號必須經過降采樣才能輸出。而對于本設計的濾波器,其降采樣率為2:l,理論上把式(6)取出一半即可滿足降采樣要求,但是,這樣就意味著之前浪費了一部分硬件資源去計算這一半不用的數據。基于此考慮,在設計濾波器時可加上一個降采樣控制器,x(n)還是正常輸入,每一拍進一個新的采樣點,而濾波過程則用降采樣控制器控制,這樣可使計算每隔一拍進行一次。
3 仿真結果分析
3.1 濾波器的幅頻響應
圖5所示是在matlab中利用定點化之后的濾波器系數畫出濾波器的幅頻響應特性曲線。
該曲線與2.1中設計的濾波器幅頻曲線基本一致,從而驗證了本設計的正確性。
3.2 硬件代碼的仿真波形
對于本文中設計的硬件架構,用Verilog語言寫出相應的硬件實現代碼,再用modelsim軟件進行波形仿真,其仿真結果如圖6所示。
由圖6所示的仿真結果可見,在降采樣控制器的控制下,輸入濾波器的數據經過濾波器之后,其輸出頻率降低一半。
3.3 綜合、布局和布線結果
上述設計可用QuartusⅡ9.O進行綜合、布局和布線,選用stratixⅢ的器件EP3SL340F151713,所得到的硬件資源占用情況如圖7所示。此時,該濾波器最高可以run到170.07 MHz,可以符合系統要求。
實際上,用OuartusⅡ9.0也可以對傳統方法設計出的濾波器進行綜合、布局布線,并選擇同樣的器件。因為,傳統的設計只是利用了系數的對稱特點,而沒有對系數進行分解。由于是直接和輸入相乘疊加,因此濾波器的硬件代碼最高只能跑到59.51MHz。其硬件資源占用情況如圖8所示。
比較圖7和圖8的報告結果可見,本文提出的設計方法在LUT資源的占有和濾波器最高工作頻率方面都有明顯的改進。從而解決了傳統設計需要專門對濾波器輸出信號進行2倍降采樣而耗費硬件資源的問題。
4 結束語
本文通過基于matlab自帶的工具來對降采樣FIR數字濾波器進行原型設計,給出了硬件資源占用少且工作頻率高的降采樣濾波器的實現方案。該設計經過modelsim軟件的功能仿真和QuartusⅡ軟件進行綜合、布局布線驗證,其均可達到系統要求。