孫重磊,王大慶
(空間電子信息技術研究院通信技術研究室,陜西西安 71000)
由于具有高集成度、高速、可編程等優點,現場可編程門陣列(Field Programmable Gate Array,FPGA)已經廣泛應用于多種高速信號實時處理領域中[1-2]。抽取濾波作為多速率信號處理中基本運算單元,基于FPGA的FIR抽取濾波器設計和實現是數字下變頻、信道化等眾多領域中一個重要環節[3-5]。目前,采用FPGA實現FIR濾波器主要存在的問題是FPGA芯片中乘法器資源較少。在已知硬件FPGA芯片乘法器資源約束條件下,設計更為有效的FIR濾波器實現結構是致力研究的內容[6-7]。
目前,Altera和Xilinx公司都提供了可塑性很強的FIR濾波器IP核,只要改動相應的參數設置,就可以應用于不同產品中。然而,在某些對性能和實時性要求較高的場合下,FIR濾波器階數和FPGA系統工作時鐘頻率均較高,上述FIR濾波器IP核無法直接使用,甚至無法應用。文中以Xilinx公司Virtex IV芯片為硬件平臺,針對整數倍FIR抽取濾波器的多相結構特點,提出一種高效FPGA實現結構。該結構能使用很少的乘法器資源完成高階FIR抽取濾波器,并且工作時鐘為輸入數據速率,有著良好的穩定性。
整數D倍抽取濾波器框圖如圖1所示[8],對應的輸入輸出關系為

其中,濾波器h(n1T1)的長度為N;T1和T2分別對應輸入序列和輸出序列時間間隔,且滿足T2=DT1。根據式(1)和式(2)可以得到輸出數據速率f2=1/T2為輸入數據速率f1=1/T1的1/D,即f2=f1/D。

圖1 D倍抽取濾波器結構框圖
利用多相分解第I型式可以將H(z1)分解為


圖2 抽取濾波器兩種多相實現結構
為進一步利用網絡結構等效性,可以將抽取與各支路濾波器進行等效變換,從而得到如圖2(b)所示更為有效的多相抽取濾波結構圖,其中

hk(rT2)=h[(rD+k)T1]稱為濾波器H(z1)的第k個多相分量。

圖3 抽取濾波器的多相FPGA實現結構
相對圖1所示的直接實現結構,圖2(b)所示的高效實現結構具有如下兩個特點:(1)各支路濾波器輸入信號速率為原輸入信號速率的1/D,從而可以使得各支路濾波器工作在較低的速率上。(2)各支路濾波器系數個數為原濾波器系數個數的1/D。因此,相比圖1,圖2(b)所示的濾波器結構具有更高的運算效率。
采用多相結構實現抽取濾波器的基本思想是將輸入信號進行相應延遲和降采樣后,分別送至D個通道進行濾波,然后將每一支路濾波后的數據相加,得到最終輸出結果。如2(b)所示,降采樣后進行第一個濾波通道的信號數據為…,x(0T1),x(DT1),x(2DT1),…,進入第二個濾波通道的信號數據為…,x(-1T1),x((D-1)T1),x((2D-1)T1)…,進入最后一個通道的數據為…,x(( -D+1)T1),x(1T1),x((2D+1)T1),…,等等。結合上述特點,在FPGA進行實現時,可以將延遲和降采樣結合在一起,采用圖3(a)所示的實現結構進行抽取濾波。該結構中包括3個模塊:(1)串并轉換,將輸入數據轉換成D路并行信號。(2)多相濾波模塊,將得到的D路并行信號分別進行濾波,每一路所采用的濾波器為原濾波器相應的多相分量。(3)加法模塊,該模塊將上述得到D路濾波后的數據相加得到最終的一路輸出信號。
但隨著降采樣率D的增加,相應的所需要的FPGA資源也急劇增加。例如,當D=512時,圖3(a)對應的實現結構需要至少512個乘法器,這在實際中難以滿足要求。由于D較大時,各路濾波器工作時鐘頻率卻很低。為了更少地使用乘法器資源,同時提高系統的工作效率,在圖3(a)的基礎上可以進一步優化結構。
改進后的實現結構核心思想:可以將圖3(a)中D個通道分成L組,每組包括D/L通道,每一組采用分時復用方法進行實現濾波。同時,針對每一組濾波,進一步提高工作時鐘頻率,采用更少的乘法器實現抽取濾波器。下面將結合一個具體的設計要求給出更適合FPGA實現的多相濾波結構。該系統指標如下:輸入數據速率(或系統時鐘)f1=204.8 MHz;降采樣率D=512;濾波器階數N=4 096;FPGA芯片Xilinx公司的Virtex IV芯片。
如果采用圖1所示的直接型結構至少需要4 096個乘法器,采用圖2(b)所示的多相濾波結構也至少需要512個乘法器,均無法滿足指標要求。為此,可以采用復用方法進行實現。根據技術指標要求,原濾波器的多相分量含有N/D=8個系數,同時,每一路速率為fk=f1/D=0.4 MHz,因此,可以將D路濾波通道分成L=8組,每組D/L=64路信號復用,同時濾波時乘法器進一步復用,則每一個濾波器工作頻率為fl=fk×64×8=f1=204.8 MHz。圖3(b)給出了優化后的抽取濾波器多相實現結構。由于每組多相濾波模塊中同時完成64路的濾波功能,同時濾波器實現過程對成績和操作也進行復用,每一組多相濾波模塊只需1個乘法器,整個系統共需8個乘法器,大幅節約了乘法器資源。實際也可以根據不同的系統指標要求,針對不同的FPGA芯片性能,設置不同的復用路數和濾波器工作頻率,使整個系統資源和性能均滿足要求。
為驗證該結構的正確性,可分兩步完成:(1)采用Matlab程序進行功能仿真。(2)將FPGA程序運行結果與Matlab定點仿真程序結果進行進一步比較,以驗證FPGA程序的正確性。圖4給出了系統中采用的原型濾波器的幅頻響應曲線。圖5給出了采用Matlab分別對圖1和圖3(b)所對應的直接型結構和改進的多相結構仿真結果(灰色表示圖1對應的仿真結果,黑色表示圖3(b)對應的仿真結果)。從圖5可以看出,兩者運行結果相同,從而表明文中提出的FPGA結構正確。圖6給出了FPGA程序Modelsim仿真結果。圖7為FPGA程序輸出數據與Matlab定點仿真程序輸出數據對比結果(灰色表示Matlab定點程序對應的仿真結果,黑色表示Modelsim對應的仿真結果)。從圖7可以看出設計的FPGA程序正確。


圖7 Matlab定點仿真程序與Modelsim仿真結果對比圖
針對高階FIR抽取濾波器,提出了一種更適合FPGA實現的優化多相結構。相對應直接型和傳統的多相結構,設計的結構充分結合FPGA自身特點和多相濾波結構特性,采用分時復用技術,大幅降低了FPGA中乘法器資源的使用,能夠采用一片FPGA實現高階濾波。目前,該FPGA模塊已經應用于一個實際的數字分路系統中,程序運行正確。
[1]朱明程,董爾令.可編程邏輯器件及應用[M].西安:西安電子科技大學出版社,2004.
[2]張有志.可編程邏輯器件(PLD)原理與應用[M].北京:中國鐵道出版社,1996.
[3]ABUALSAUD W A,STUDER G L.Efficient wideband channelized for software radio systems using modulated PR filterbanks[J].IEEE Transcations on Signal Processing,2004,52(10):2807-2820.
[4]任春陽,張文旭,陳強.一種高效動態信道化接收機設計[J].應用科技,2010,37(9):13 -16.
[5]邵菲.基于FPGA的高速數字分路算法的研究和實現[D].西安:西安電子科技大學,2010.
[6]陳俊,汪學剛.高效實時的抽取濾波器的FPGA實現[J].電子科技大學學報,2005,34(6):755 -758.
[7]劉瀛棋,金力軍,陳吉鋒.軟件無線電中抽取濾波器的研究與 FPGA 實現[J].電子科技,2006,(7):38-42
[8]克勞切R E,拉賓納L R.多抽樣率數字信號處理[M].北京:人民郵電出版社,1988.