摘 要: 介紹了一種基于新型FPGA的高速數(shù)字下變頻" title="數(shù)字下變頻">數(shù)字下變頻的實現(xiàn)方法,它充分利用數(shù)字下變頻的優(yōu)化算法以及FPGA領(lǐng)域的新技術(shù),去除由于數(shù)據(jù)速率過高而造成的各種瓶頸,極大地減少了計算量和FPGA片內(nèi)資源的消耗。
關(guān)鍵詞: 數(shù)字下變頻 多相" title="多相">多相濾波器 FPGA
在現(xiàn)階段的軟件無線電平臺中,直接對射頻(RF)進行采樣還很難實現(xiàn),成本上也很不合算。所以在目前的研究中,大部分都是首先將射頻信號轉(zhuǎn)換到中頻(IF)上,在中頻對模擬信號進行數(shù)字化,然后采用數(shù)字下變頻(Digital Down Conversion,DDC) 技術(shù),將采樣率較低的信號送給后續(xù)的基帶信號處理單元。
實現(xiàn)DDC主要有三種途徑:(1)采用已有的專用芯片;(2)自己制作專用芯片;(3)基于FPGA或DSP等通用芯片自建平臺實現(xiàn)DDC。但是在高采樣速率的系統(tǒng)中,如A/D" title="A/D">A/D采樣的速率為400MHz時,這三種方法顯示出各自的弊端:商用專用芯片要求A/D轉(zhuǎn)換器轉(zhuǎn)換出的數(shù)據(jù)速率較低,比如AD6620要求數(shù)據(jù)速率小于70MHz,HSP50016要求數(shù)據(jù)速率小于75MHz;而自己制作專用芯片,由于成本過高和國內(nèi)技術(shù)條件的限制,在小規(guī)模的研發(fā)生產(chǎn)中幾乎是不可能的;用DSP芯片自建平臺實現(xiàn)DDC時,雖然DSP可以高速執(zhí)行乘加指令,但由于DSP是串行執(zhí)行指令的,在高速處理中會遇到處理能力過低的問題;雖然用FPGA片內(nèi)資源可以同時進行多個乘加運算,但是用FPGA片內(nèi)資源實現(xiàn)的乘法器" title="乘法器">乘法器速度較慢,很難實現(xiàn)高速數(shù)據(jù)流的實時乘加處理。
本文介紹一種基于新型FPGA的高速數(shù)字下變頻的實現(xiàn)方法,它充分利用數(shù)字下變頻的優(yōu)化算法以及FPGA領(lǐng)域的新技術(shù),去除由于數(shù)據(jù)速率過高而造成的各種瓶頸,極大地減少了計算量和FPGA片內(nèi)資源的消耗。
1 數(shù)字下變頻算法的改進優(yōu)化
數(shù)字下變頻的基本功能是將速率較高的數(shù)字中頻信號下變頻為數(shù)字基帶信號,并降低信號的采樣速率。圖1是數(shù)字下變頻的基本模型。圖中將高速A/D轉(zhuǎn)換器的輸出信號送入數(shù)字下變頻器;經(jīng)兩個相乘器所構(gòu)成的混頻器后,將輸入的數(shù)字信號和復正弦信號產(chǎn)生器產(chǎn)生的正交正弦信號相乘,相乘結(jié)果為I、Q兩路信號;再分別經(jīng)高抽取濾波器" title="抽取濾波器">抽取濾波器和有限長沖擊響應(yīng)(FIR)濾波器進行處理。由這兩個濾波器構(gòu)成的復合濾波器的功能是低通濾波和抽取,其輸出是數(shù)據(jù)流降低了的數(shù)字基帶信號。
用FPGA實現(xiàn)圖1所示的經(jīng)典的數(shù)字下變頻會遇到如下幾個瓶頸:(1)當中頻信號采樣速率較高時(大于200MHz),
FPGA無法用普通I/O引腳接收;(2)用常用的查表法無法實現(xiàn)高速NCO;(3)混頻器用到的高速乘法器無法實現(xiàn);(4)抽取濾波器中的高速乘法器和加法器實現(xiàn)困難。
解決上述問題的基本思想方法為:利用多速率信號處理理論,先抽取后處理,這樣就能避開由于高速率而帶來的瓶頸。
1.1 多相抽取濾波器
如果用傳統(tǒng)的方法對信號進行抽取(抽取因子為D),其過程為:先將信號輸入一個L階的線性時不變FIR濾波器進行抗混迭濾波,然后再進行抽取;如果采用多相抽取濾波器,可以實現(xiàn)先抽取后濾波,其過程為:先對信號進行抽取和分路,然后將抽取的結(jié)果輸入各多相分支濾波器。
多相分支濾波器的實現(xiàn)方法如下:把這個L階的抗混迭濾波器“拆分”為D個P階的濾波器,其中P=L/D是各個分支濾波器的階數(shù)。設(shè)原L階濾波器的沖擊相應(yīng)為H(n),n=0、1、2、…、L-1,那么每個分支濾波器的沖擊響應(yīng)由下式?jīng)Q定:
Hk(n)=H(k+nD)
式中,k表示第k支路,k=0、1、2、…、D-1;n=0、1、2、…、P-1。
利用多相分解得到的多相抽取濾波器如圖2所示,圖3是一個具體的多相濾波器的例子。在圖3中,濾波器要實現(xiàn)間隔為4的抽取,抽取濾波器的階數(shù)為16,經(jīng)多相拆分為4個分支濾波器。
1.2 高速NCO的等效處理
在數(shù)字下變頻的實現(xiàn)中,高速NCO的實現(xiàn)是系統(tǒng)的另外一個瓶頸。下面介紹高速NCO的等效處理。
將0~fs的頻帶作如下劃分:將整個頻帶劃分為N個信道,N=2D,D為抽取因子,設(shè)每個信道的帶寬為B,B=fs/D,相鄰信道間的交疊為50%。當D=4時,信道的劃分如圖4所示。只要抽樣速率符合奈奎斯特定理,這樣劃分就可以保證信號完整地存在于某一個信道內(nèi)。
假設(shè)帶通信號的調(diào)諧頻率為f0,將這個調(diào)諧頻率f0分解如下:f0=m+fd,其中m
是第m個信道的中心頻率,fd是f0和m
的頻差,取m的值使得fd最小。當信號帶寬完全位于第m個信道中時,由于第m信道的中心頻率為m
,選擇序列
與輸入序列相乘進行混頻,然后進行抽取、多相濾波。這個過程如圖5所示,混頻之后的信號會帶有頻差fd,因fd較小,故可以在數(shù)字下變頻之后用其它的方法進行消除。由于fd的消除并不是本文討論的主要問題,故下面只討論各個信道的下變頻。
注意到Wm(n)具有以下性質(zhì):
當n<D時,
因此,如果信號帶寬位于偶數(shù)信道內(nèi),即m為偶數(shù),混頻器序列的周期為D,那么在多相濾波器中,Wm(n)可以相應(yīng)地分配給各個分支,其實現(xiàn)過程如圖6所示。
如果信號帶寬位于奇數(shù)信道內(nèi),即m為奇數(shù),混頻器序列周期為2D,且Wm(n)=-Wm(n+D),那么由于輸入數(shù)據(jù)在輸入多相濾波器之前已經(jīng)進行過間隔為D的抽取,因此可以將抽取后的數(shù)據(jù)進行模2編號,編號為0的數(shù)據(jù)不變,編號為1的數(shù)據(jù)取相反數(shù)。其具體實現(xiàn)框圖如圖7所示。
圖7中只畫出了一路分支濾波器的實現(xiàn)方法,其它分支濾波器的處理同理可得。
2 高速數(shù)字下變頻的實現(xiàn)方案
綜上所述,通過對DDC實現(xiàn)方法的優(yōu)化,極大地減小了計算量,降低了對器件處理速度的要求,但是當信號帶寬較寬時,改進算法后計算量仍然很大。比如,前端A/D轉(zhuǎn)換器輸出的數(shù)字信號速率為400MHz,經(jīng)過抽取因子為4的抽取后,信號的速率仍然有100MHz。顯然,用單片DSP很難完成抽取濾波和混頻處理工作,于是用FPGA實現(xiàn)DDC就成了唯一選擇。
運用FPGA片內(nèi)的高速數(shù)據(jù)接口和DSP功能,結(jié)合上述優(yōu)化算法,就可以有效地解決高速數(shù)據(jù)實時處理的問題。
基于FPGA技術(shù)的DDC實現(xiàn)框圖如圖8所示。圖中,系統(tǒng)參考時鐘fr=fs/D。在A/D端,用PLL產(chǎn)生采樣時鐘fs,其上升沿和參考時鐘fr的上升沿對齊。在數(shù)據(jù)接收端,F(xiàn)PGA內(nèi)置PLL產(chǎn)生時鐘信號驅(qū)動片內(nèi)LVDS接口,這個時鐘信號的上升沿和參考時鐘上升沿對齊。LVDS接口接收高速差分信號,同時進行串/并轉(zhuǎn)換和比特重組。串/并轉(zhuǎn)換過程等效地完成了抽取工作。
圖9(a)所示的是在Quartus II集成開發(fā)環(huán)境中調(diào)用庫函數(shù)ALTLVDS實現(xiàn)的LVDS接收接口,其功能為:接收速率為400MHz的輸入信號,并作串/并轉(zhuǎn)換,以實現(xiàn)抽取因子為4的抽取,抽取后的數(shù)據(jù)分四路輸出,速率為100MHz。圖9(b)是LVDS接口的仿真波形,圖中rx_in[7..0]是A/D轉(zhuǎn)換器輸出的數(shù)字信號,位寬為8位;rx_clock為參考時鐘fr,頻率為100MHz;rx_outclock是輸出信號時鐘,其頻率為fr,這個時鐘和輸出的數(shù)據(jù)之間有固定的相位關(guān)系,這個相位關(guān)系由數(shù)據(jù)對齊方式(一般是沿對齊)指定;rx_out[31..0]為串/并轉(zhuǎn)換后的輸出結(jié)果,經(jīng)過比特重組后,可以得到四路數(shù)字信號out1st[7..0]、out2nd[7..0]、out3nd[7..0]、out_4th[7..0],這四路信號將分別輸入四個分支濾波器。
抽取工作完成后,將各個支路的數(shù)據(jù)分別按時序送入相應(yīng)的分支濾波器。由于FPGA的邏輯資源和寄存器資源有限,而乘法器的實現(xiàn)(尤其是位數(shù)較高時)比較多地耗費FPGA內(nèi)部的寄存器資源,同時用邏輯和寄存器資源實現(xiàn)的乘法器運算速度比較慢,常常達不到建立時間和保持時間的要求,因此應(yīng)該盡量利用片內(nèi)專用乘法器來實現(xiàn)濾波器。
在Quartus II中,用戶可以通過調(diào)用庫函數(shù)ALTMULT_ADD來使用片內(nèi)專用乘法器。圖10(a)中所示的是調(diào)用ALTMULT_ADD函數(shù)生成的四階多相分支濾波器。圖中dataa[7..0]為分支濾波器的輸入數(shù)據(jù);datab_0[7..0]、datab_1[7..0]、datab_2[7..0]、datab_3[7..0]是濾波器系數(shù)。in_clock為輸入數(shù)據(jù)的時鐘信號,其頻率為fr,同時這個時鐘還控制著濾波器輸出的Pipeline時序,result[17..0]為濾波器的輸出數(shù)據(jù)。
圖10(b)是時序仿真的結(jié)果,由于運用了片內(nèi)硬件乘法器,運算速度大為提高。圖中in_clock的頻率為100MHz,在這個頻率下,濾波器輸出的數(shù)字信號完全可以達到建立時間和保持時間的要求。
用QuartusII實現(xiàn)DDC的頂層模塊如圖11所示。在實際系統(tǒng)中,它對如下中頻信號作DDC處理:中頻信號的調(diào)諧頻率為100MHz,信號帶寬為10MHz;前端A/D采樣速率為400MHz,位寬為8位;要求產(chǎn)生速率為100MHz的基帶信號。
由于信號帶寬位于第二信道內(nèi),因此混頻序列Wm。
在現(xiàn)有的技術(shù)條件下,用經(jīng)典的數(shù)字下變頻實現(xiàn)方案來對上述實驗中的高速率信號進行DDC處理幾乎是不可能的。而采用優(yōu)化過的算法同時結(jié)合FPGA領(lǐng)域的新技術(shù),不僅降低了系統(tǒng)對電子器件運算速率的要求,而且使運算量大約降低到原來的1/30,這樣就可以克服DDC處理中的各種瓶頸。本方案用于在FPGA片內(nèi)實現(xiàn)高速DDC,對于寬帶高中頻系統(tǒng)的數(shù)字下變頻處理有極大的參考價值。
上述DDC已運用于某擴頻通信設(shè)備中,效果良好,成功地實現(xiàn)了寬帶高速率信號的DDC處理。
參考文獻
1 Jerry Fudge, Mike Legako, C.Sehreiner.An Approach to Efficient Wideband Digital Downconversion[C]. Toronto,Canada:Proc ICSPAT, 1998:713~717
2 宗孔德. 多抽樣速率信號處理[M]. 北京: 清華大學出版社, 1996
3 李玉柏,彭啟琮. 軟件數(shù)字下變頻的實現(xiàn)與算法分析[J].通信學報,2000;21(10):44~49
4 Altera Co. Implementing High-Performance DSP Functions in Stratix & Stratix GX Devices[EB/OL]. http://www.altera.com
5 Altera Co. Stratix Device Handbook[EB/OL].http://www.altera.com