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