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

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

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


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

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

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


圖7 Matlab定點仿真程序與Modelsim仿真結(jié)果對比圖
針對高階FIR抽取濾波器,提出了一種更適合FPGA實現(xiàn)的優(yōu)化多相結(jié)構(gòu)。相對應(yīng)直接型和傳統(tǒng)的多相結(jié)構(gòu),設(shè)計的結(jié)構(gòu)充分結(jié)合FPGA自身特點和多相濾波結(jié)構(gòu)特性,采用分時復(fù)用技術(shù),大幅降低了FPGA中乘法器資源的使用,能夠采用一片F(xiàn)PGA實現(xiàn)高階濾波。目前,該FPGA模塊已經(jīng)應(yīng)用于一個實際的數(shù)字分路系統(tǒng)中,程序運行正確。
[1]朱明程,董爾令.可編程邏輯器件及應(yīng)用[M].西安:西安電子科技大學(xué)出版社,2004.
[2]張有志.可編程邏輯器件(PLD)原理與應(yīng)用[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]任春陽,張文旭,陳強.一種高效動態(tài)信道化接收機設(shè)計[J].應(yīng)用科技,2010,37(9):13 -16.
[5]邵菲.基于FPGA的高速數(shù)字分路算法的研究和實現(xiàn)[D].西安:西安電子科技大學(xué),2010.
[6]陳俊,汪學(xué)剛.高效實時的抽取濾波器的FPGA實現(xiàn)[J].電子科技大學(xué)學(xué)報,2005,34(6):755 -758.
[7]劉瀛棋,金力軍,陳吉鋒.軟件無線電中抽取濾波器的研究與 FPGA 實現(xiàn)[J].電子科技,2006,(7):38-42
[8]克勞切R E,拉賓納L R.多抽樣率數(shù)字信號處理[M].北京:人民郵電出版社,1988.