摘 要: 數(shù)字下變頻是軟件無線電" title="軟件無線電">軟件無線電的核心技術(shù)之一。闡述了多級抽取結(jié)構(gòu)數(shù)字下變頻器" title="下變頻器">下變頻器的原理,介紹了系統(tǒng)級設(shè)計的新方法,利用系統(tǒng)工具DSPBuilder給出了數(shù)字下變頻器的FPGA設(shè)計方法,討論了各個抽取濾波器的性能要求。用雙邊帶調(diào)幅信號(DSB)作為激勵信號" title="激勵信號">激勵信號,給出了具體的仿真驗(yàn)證" title="仿真驗(yàn)證">仿真驗(yàn)證。
關(guān)鍵詞: 軟件無線電 數(shù)字下變頻 FPGA DSPBuilder
軟件無線電是以具有開放性、通用性、可擴(kuò)展性的最簡單硬件為平臺,通過加載各種應(yīng)用軟件來實(shí)現(xiàn)各種無線電功能,借以適應(yīng)不同用戶、不同應(yīng)用環(huán)境的需求。但由于受A/D轉(zhuǎn)換器和DSP器件硬件水平的制約,目前軟件無線電大多采用數(shù)字上、下變頻技術(shù)來實(shí)現(xiàn),其結(jié)構(gòu)如圖1所示。在下變頻的具體實(shí)現(xiàn)中,常見的是使用專門的DSP芯片(如Harris公司的HSP50214系列),但專用芯片串行執(zhí)行指令的特點(diǎn)使得其在高速信號處理中無法滿足設(shè)計需要。高性能大規(guī)??删幊踢壿嬈骷某霈F(xiàn),使得在FPGA中用軟件實(shí)現(xiàn)數(shù)字下變頻成為可能,并且FPGA豐富的片內(nèi)資源和并行的處理速度已經(jīng)使其成為設(shè)計的首選。圖2為多級抽取數(shù)字下變頻器的原理框圖。
本文利用系統(tǒng)工具DSPBuilder對多級抽取結(jié)構(gòu)的數(shù)字下變頻器的FPGA設(shè)計進(jìn)行具體討論和分析,并進(jìn)行仿真驗(yàn)證。從仿真結(jié)果可以看出,本設(shè)計可以滿足軟件無線電中寬帶數(shù)字解調(diào)的要求。
?
1 系統(tǒng)級設(shè)計新方法
數(shù)字下變頻器的傳統(tǒng)設(shè)計方法是將系統(tǒng)設(shè)計和具體實(shí)現(xiàn)分隔開來進(jìn)行,因此存在開發(fā)復(fù)雜、設(shè)計周期長和開發(fā)費(fèi)用昂貴等缺點(diǎn)。本文采用DSPBuilder系統(tǒng)級工具進(jìn)行設(shè)計,從系統(tǒng)設(shè)計到具體實(shí)現(xiàn)做出了很多革新。它架構(gòu)在多個軟件之上,把系統(tǒng)級和RTL級兩個設(shè)計領(lǐng)域的設(shè)計工具結(jié)合起來,最大程度地發(fā)揮了兩種工具的優(yōu)勢,并且提供了一個從MATLAB/Simulink直接到FPGA硬件實(shí)現(xiàn)的設(shè)計接口。DSPBuilder極大地簡化了硬件實(shí)現(xiàn)流程,同時提供了系統(tǒng)仿真測試功能,使利用FPGA設(shè)計并實(shí)現(xiàn)數(shù)字下變頻器更加靈活,更容易開發(fā)。其開發(fā)流程如圖3所示。
2 數(shù)字下變頻器的結(jié)構(gòu)
數(shù)字下變頻器的功能是從輸入的寬帶數(shù)字信號中提取所需要的窄帶信號,并將其下變頻為數(shù)字基帶信號。在多速率信號處理中,數(shù)字下變頻器的基本結(jié)構(gòu)如圖4所示。
在圖4中,A/D輸出的已調(diào)信號X(n)經(jīng)過正交混頻和D倍抽取后得到正交基帶信號I(m)、Q(m)。正、余弦信號由數(shù)控振蕩器(NCO)產(chǎn)生。抽取器的第一級抽取因子往往很大,在總的抽取因子中所占的比重也非常大。由于積分梳狀濾波器(CIC)無需乘法運(yùn)算,可以實(shí)現(xiàn)高速濾波,所以CIC濾波器一般用在第一級。CIC濾波器在選擇抽取因子時,應(yīng)注意避免通帶衰減過大,同時也要避免抽取后通帶混疊過大。一般情況下,抽取后通帶的相對帶寬小于1/8即可。
由于CIC濾波器的通帶特性和抗混疊特性不是很好,在CIC濾波器和FIR濾波器之間有多級半帶濾波器(2倍抽取器),但級數(shù)不宜過多,通常在1~5級之間。若FIR濾波器的通帶相對帶寬很小,則只需一級2倍抽取器即可;若FIR濾波器的通帶相對帶寬比較大,則2倍抽取器的級數(shù)也就要多一些,但不宜超過5級。
FIR濾波器作為整形濾波器放在最后一級,一般不作為抽取器。 總的抽取因子為D=D1·D2·D3。其中D1、D2、D3是可變的,以適應(yīng)不同的信號要求。
3 數(shù)字下變頻器的FPGA設(shè)計
3.1 數(shù)控振蕩器的FPGA設(shè)計
NCO采用直接數(shù)字頻率合成(DDS)技術(shù)來實(shí)現(xiàn)。NCO主要由相位累加器和正、余弦ROM查找表構(gòu)成(見圖5)。相位累加器根據(jù)輸入的頻率控制字的不同,輸出相位序列作為ROM的尋址地址,ROM里存放的是輸出波形的一個周期的幅值編碼。這樣,尋址時就能從ROM中得到一系列離散的幅度碼。
?
在數(shù)字下變頻器中,需要一對正交的正、余弦信號進(jìn)行正交解調(diào)。因此,NCO需要兩個ROM查找表(正弦和余弦)。
為提高速度,相位累加器采用流水線技術(shù),即把在一個時鐘內(nèi)要完成的邏輯操作分成幾步較小的操作進(jìn)行設(shè)計,并插入幾個時鐘周期來提高系統(tǒng)的數(shù)據(jù)吞吐率。而查找表正弦信號一個周期的離散值利用matlab命令來實(shí)現(xiàn)。整個設(shè)計是采用DSP Builder工具在Simulink中建模實(shí)現(xiàn)的。
3.2 積分梳妝濾波器的FPGA設(shè)計
積分梳狀濾波器由積分器和梳狀濾波器級聯(lián)" title="級聯(lián)">級聯(lián)而成。為了加大阻帶衰減,通常采用多個積分濾波器級聯(lián)。若采用N個積分濾波器級聯(lián),其幅頻響應(yīng)為:
式中,D為抽取因子,N為級聯(lián)數(shù)。具體實(shí)現(xiàn)結(jié)構(gòu)如圖6所示。
CIC濾波器有兩個參數(shù):D、N。通常情況下,根據(jù)要求首先確定抽取因子D,由于CIC濾波器的阻帶衰減與帶內(nèi)容差跟N成正反比,設(shè)計時阻帶衰減與帶內(nèi)容差應(yīng)折中考慮,CIC濾波器的級聯(lián)數(shù)不宜過多,一般以5級為限。
在進(jìn)行硬件設(shè)計時,每一級必須保留足夠的運(yùn)算精度,否則可能引起溢出錯誤或運(yùn)算精度的降低。因此,數(shù)據(jù)必須采用2的補(bǔ)碼,寄存器中所存數(shù)據(jù)值的范圍應(yīng)大于、等于整個濾波器最后輸出的最大數(shù)值范圍。為了節(jié)省資源,可根據(jù)輸出結(jié)果的誤差,對各級數(shù)據(jù)進(jìn)行截位或舍位,以減少寄存器的位數(shù),但是數(shù)據(jù)位數(shù)的減少不能隨意。
3.3 FIR濾波器的FPGA設(shè)計
本文的FIR濾波器采用直接型結(jié)構(gòu),主要由移位寄存器、乘法器和加法器組成。其設(shè)計思想是利用DSPBuilder模塊直接實(shí)現(xiàn)乘法器和加法器?;诔?、加的設(shè)計比較簡單,系統(tǒng)工作速度較高,但占用的資源很大,因此只適合于速度要求較高、階數(shù)較小的濾波器設(shè)計。
利用DSPBuilder模塊設(shè)計的FIR濾波器很容易進(jìn)行功能擴(kuò)展,輸入數(shù)據(jù)的位寬可以根據(jù)實(shí)際的需要進(jìn)行調(diào)整。要實(shí)現(xiàn)高階的濾波器,只需要將濾波器級聯(lián),然后輸出數(shù)據(jù)相加即可。
3.4 半帶濾波器的FPGA設(shè)計
半帶濾波器(HBF)特別適合于實(shí)現(xiàn)2的冪次方倍的抽取,且計算效率高、實(shí)時性強(qiáng)。半帶濾波器是頻率響應(yīng)滿足阻帶寬度與通帶寬度相等、通帶波紋與阻帶波紋相等的一類FIR濾波器。
半帶濾波器的設(shè)計方法與FIR濾波器的設(shè)計方法相同,只是在設(shè)計半帶濾波器時必須確保三點(diǎn):①濾波器的階數(shù)N為奇數(shù);②濾波器的通帶誤差容限(δP)與阻帶誤差容限(δS)相等;③濾波器的通帶寬度與阻帶寬度相等。
4 仿真驗(yàn)證
4.1 激勵信號的產(chǎn)生
激勵信號采用雙邊帶調(diào)幅信號(DSB)。DSB信號由待調(diào)制信號與余弦信號相乘來得到。利用正交解調(diào),同相分量即為解調(diào)信號。
激勵信號的采樣速率為80MHz,信道帶寬BS為100kHz,則所需的最大抽取因子為:
式中,r為數(shù)字濾波器的矩形系數(shù),取r=2。
在這里,設(shè)整個數(shù)字濾波器的通帶波紋為1dB,阻帶衰減為60dB,輸出端的采樣速率為0.8MHz。
4.2 各級抽取濾波器的性能指標(biāo)和幅頻響應(yīng)
CIC抽取濾波器的通帶上限頻率為100kHz,抽取后的相對帶寬取1/32,則抽取因子D應(yīng)滿足的條件是D≤80M/(100k×32)=25,通過對通帶衰減和混疊特性的權(quán)衡,取N=3,D=25。通過MATLAB可畫出它的幅頻特性,如圖7所示。
半帶濾波器需要完成4倍的抽取,需要兩級級聯(lián)。由半帶濾波器自身的特點(diǎn)可知,只要知道其阻帶衰減和通帶上限頻率就可以將它設(shè)計出來,其參數(shù)如下:HBF1的通帶相對帶寬1/32,即通帶上限頻率為3.2MHz/32=100kHz;HBF2的通帶相對帶寬為1/16,即通帶上限頻率為1.6MHz/16=100kHz。階數(shù)分別為15和19。根據(jù)這些參數(shù)可畫出它們的幅頻特性如圖8和圖9所示。
?
?
FIR濾波器在這里不作為抽取器,通帶上限頻率為100kHz,阻帶下限頻率為200kHz,阻帶衰減為80dB。設(shè)計后階數(shù)為53階,其幅頻特性圖如圖10所示。
4.3 多時鐘設(shè)計
由于數(shù)字下變頻器中存在多速率的轉(zhuǎn)換,因此每個模塊都需要不同的時鐘作為驅(qū)動,所以要采用多時鐘設(shè)計。設(shè)計中采用DSPBuilder和Quartus環(huán)境中自帶的鎖相環(huán)模塊pll,它最多可以提供六個不同的時鐘輸出。由分析可知,系統(tǒng)中至少包含有80MHz、3.2MHz、1.6MHz、0.8MHz四個時鐘。
4.4 具體的仿真驗(yàn)證
4.4.1 Simulink系統(tǒng)仿真
在Simulink建模后,便進(jìn)行系統(tǒng)仿真,其中部分仿真波形如圖11~圖16所示。
4.4.2 RTL級功能仿真
在轉(zhuǎn)化為VHDL語言后,便在ModelSim中進(jìn)行功能仿真,波形圖如圖17和圖18所示。
對比系統(tǒng)仿真與功能仿真可以看出,輸出的結(jié)果是一致的。
利用FPGA實(shí)現(xiàn)數(shù)字下變頻器,不僅在處理速度和帶寬上比專用DDC優(yōu)越,而且FPGA固有的硬件可重構(gòu)特性更加適合軟件無線電的開放平臺。本文采用DSPBuilder系統(tǒng)工具,從系統(tǒng)建模到FPGA的具體設(shè)計都在一個環(huán)境中完成,方便了系統(tǒng)的更改和擴(kuò)展,使得設(shè)計更加靈活、便捷。
參考文獻(xiàn)
1 焦 慶,陶 然.寬帶中頻數(shù)字接收機(jī)的FPGA實(shí)現(xiàn). 電子產(chǎn)品世界,2004;(5)
2 Wajih A, Abu-Al-Saud and Gordon L. Stüber:Modified CIC Filter for Sample Rate Conversion in Software Radio Systems. IEEE SIGNAL PROCESSING LETTERS, 2003
3 潘 松,黃繼業(yè),王國棟. 現(xiàn)代DSP技術(shù).西安:西安電子科技大學(xué)出版社,2003
4 楊小牛,樓才義,徐建良.軟件無線電原理與應(yīng)用. 北京:電子工業(yè)出版社,2001
5 楊小牛,陸安南,金飚譯.寬帶數(shù)字接收機(jī). 北京:電子工業(yè)出版社,2002