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