文獻(xiàn)標(biāo)識碼: A
文章編號: 0258-7998(2011)02-0057-03
隨著通信、雷達(dá)等技術(shù)的發(fā)展,,軟件無線電技術(shù)已經(jīng)被廣泛的用于無線基站,、雷達(dá)信號處理、軍用電臺等多個領(lǐng)域,。數(shù)字下變頻技術(shù)作為軟件無線電技術(shù)的重要組成部分,,主要完成中頻信號數(shù)模轉(zhuǎn)換后的變頻、濾波以及重采樣等工作,。數(shù)字下變頻的主要硬件框圖如圖1所示[1],。
根據(jù)不同的性能需求,濾波器組中采用以FIR濾波器為主,,與梳狀(CIC)濾波器,、半帶(HB)濾波器相互搭配來實現(xiàn)數(shù)字中頻信號的抽取與濾波。梳狀濾波器和半帶濾波器通常用于前級的抽取濾波,,以將信號速度降低到一定程度,。整個信道波形的整形則主要依靠FIR濾波器完成。隨著對信號處理精度和速度的要求不斷提高,,設(shè)計并實現(xiàn)更高速度和更高階數(shù)的FIR濾波器成為推進(jìn)數(shù)字下變頻繼續(xù)發(fā)展所需要克服的難題,。目前國內(nèi)很多論文發(fā)表FIR濾波器多為11階[2]、16階[3]等低階FIR濾波器,,其濾波效果很難滿足實際需要,。本文設(shè)計一種用于數(shù)字下變頻的256階分布式FIR濾波,并針對Cyclone III系列FPGA設(shè)計了合理的實現(xiàn)方法,。
1 分布式算法分析
FIR濾波器的表達(dá)式可以寫為:
其中hk為濾波器抽頭系數(shù),, xk為輸入數(shù)據(jù)。式(1)中K的大小表征了FIR濾波器的階數(shù),。如果采用通常的乘加算法來實現(xiàn)FIR濾波器,,K階濾波器需要使用K個嵌入式乘加單元。即使采用預(yù)加的實現(xiàn)方式也至少需要K/2個嵌入式乘加單元[4],。因此采用乘加算法直接實現(xiàn)高階濾波器會消耗大量的嵌入式乘加單元,。Cyclone III系列EP3C40F484C6N芯片上的嵌入式乘法單元僅為126個,直接使用硬件乘法器則FPGA片上資源無法滿足要求,。
2 分布式算法的變形與資源消耗推算
從式(7)可知yB可能的取值與濾波器的階數(shù)K有關(guān),,因此256階濾波器至少需要2256個存儲單元。從式(6)可知,如果xk的位寬為N,,則yN的值需要經(jīng)過N次移位相加后得到,。若取N為24,則計算一個濾波結(jié)果需要完成24次移位相加,。如果直接在FPGA上實現(xiàn)分布式算法,,存儲器資源和運(yùn)算速度均無法滿足需求,需要從濾波器階數(shù)和輸入數(shù)據(jù)位寬兩方面對式(4)進(jìn)行變形以減少存儲器資源的消耗并提高運(yùn)算速度,。
若N位的xk位寬劃分為m段,,每段L個比特,則可將式(4)變形為:
從式(8)可以看出求得Zn(n=0,,1,,2…,m-1)的值僅需要進(jìn)行L次移位相加運(yùn)算,,其運(yùn)算時間是未變形前的1/m,。但變形后需要同時使用m個查找表來并行完成查表運(yùn)算。變形后所對應(yīng)的硬件實現(xiàn)框圖如圖2所示,。
從圖2可知式(8)所對應(yīng)的實現(xiàn)電路主要由串并轉(zhuǎn)換模塊,、查找表、移位相加模塊以及錯位相加模塊組成,。串并轉(zhuǎn)換模塊將x0~xK-1對應(yīng)位串行移出組合后作為查找表的輸入,。查找表預(yù)先把所有可能的運(yùn)算結(jié)果預(yù)存,根據(jù)輸入數(shù)據(jù)查表直接求得濾波結(jié)果,。移位相加模塊完成查表輸出的移位相加,,求得表達(dá)式(8)中的Zn(n=0,1,,2…,,m-1)。最后根據(jù)Zn(n=0,,1,,2……,m-1)的權(quán)值不同,,將其錯位相加后可得到最終結(jié)果,。
查找表的大小由濾波器階數(shù)決定,因此可通過將將式(4)變形為多個子濾波器級聯(lián)的形式,。通過減少各個子濾波器的階數(shù)來減少查找表的大小,最后將各個子濾波器的結(jié)果求和可得到最終的濾波輸出,??蓪⑹?4)改寫為:
從式(9)可知,可以將K階FIR濾波器分解為t個S階的子濾波器。其實現(xiàn)框圖如圖3所示,。
由此可知每個子濾波器所需查找表的大小為2S,,則劃分為t個子濾波器后相比于未劃分之前的所需的存儲單元數(shù)量之比M0為:
由此可知若將K階濾波器劃分為多個子濾波器可以讓所需的儲存單元成指數(shù)級降低,而為提高速度所增加存儲單元只成線性增長,。因此根據(jù)FIR速度和FPGA上資源的情況設(shè)計合理的實現(xiàn)方案到達(dá)速度和資源上的平衡,。
3 FPGA實現(xiàn)方案及結(jié)果分析
嵌入式存儲器塊是現(xiàn)代FPGA中常見的資源,嵌入式存儲器塊可以配置成不同大小和不同位寬存儲器,。Cyclone III系列的FPGA中嵌入的存儲器塊為M9K,,每一個嵌入式存儲器塊容量為9 Kbit。M9K存儲器可以根據(jù)需求被配置為8 192×1,、4 096×2,、1 024×9、256×32等多種形式,。
采用嵌入式存儲器塊來實現(xiàn)查找表,,需要權(quán)衡子濾波器的階數(shù)以及輸出數(shù)據(jù)的精度。若考慮S階濾波器中加法運(yùn)算精度,,則需其位寬擴(kuò)展S-1位,。對于系數(shù)為24位FIR濾波器而言,其子濾波器的查找表滿足式(12)時可以將M9K的利用率發(fā)揮到最大,。
根據(jù)M9K嵌入式存儲器的配置規(guī)格可求得S=8時為近似最優(yōu)解,,所以可將嵌入式存儲器配置為256 × 32的模式,則每一個子濾波器為8階,。對于256階FIR濾波器而言需要32個子濾波器級聯(lián)而成,,則總共需要嵌入式存儲器塊32個。為提高運(yùn)算速度減少移位累加次數(shù),,根據(jù)公式(8)取m=3,,則總共需要96個M9K嵌入式存儲器,低于EP3C40F484C6N芯片所擁有的126個M9K嵌入式存儲器的總數(shù),。
根據(jù)前面所述設(shè)計RTL級代碼并仿真,,輸入采用頻率分別為50 kHz、2 MHz,、8 MHz正弦混合信號仿真結(jié)果如圖4,。
如圖4所示50 kHz和2 MHz正弦信號被保留,而8 MHz正弦信號被濾除,。
由表1可知,,在LE的使用率僅為37%時,RAM的使用率已達(dá)76%,,還有較多的LE未被使用,??稍陔S后的工作中進(jìn)一步改進(jìn)設(shè)計方案,采用超前進(jìn)位加法等方法縮短關(guān)鍵路徑,,進(jìn)一步提高濾波器的運(yùn)算速度,。
本文對分布式濾波算法進(jìn)行了詳細(xì)的分析和推導(dǎo),通過公式變形闡述了提高電路運(yùn)算速度和減小存儲器資源消耗的方法,。通過理論推導(dǎo)和對Cyclone III系列的FPGA中嵌入的存儲器塊的分析,,設(shè)計了一種適用于EP3C40F484C6N芯片的高階分布式FIR濾波器實現(xiàn)方案并進(jìn)行了仿真和綜合。結(jié)果表明,,采用該方案可以實現(xiàn)高階的FIR濾波器設(shè)計并得到很高的等效乘加運(yùn)算速度,。
參考文獻(xiàn)
[1] MALKI E S,SHEHATA K A,,MADIAN A H.Design of triple-mode digital down converter for WCDMA CDMA2000 and GSM of software defined radio.International Conference on Microelectronics(ICM),,2009.
[2] 趙遠(yuǎn)鴻,宋學(xué)瑞.基于FPGA的數(shù)字下變頻設(shè)計與實現(xiàn)[J].電子技術(shù)應(yīng)用,,2009,,34(2).
[3] 魏靈,楊日杰,,崔旭濤.基于分布式算法的數(shù)字濾波器設(shè)計[J].儀器儀表學(xué)報,,2008(10).
[4] YOO H,ANDERSON D.Hardware-efficient distributed arithmetic architecture for high-order digital filters.IEEE International Conference on Acoustics,,Speech,,and Signal Processing(ICASSP′05),2005,,5:125-128.