馮林浩,于鴻洋,張 萍
(電子科技大學 電子工程學院,四川 成都 610054)
在傳統的數字信號處理系統的設計中,需要先用Matlab等仿真軟件進行建模仿真,得到理想的仿真結果后,再根據仿真過程,使用VHDL等硬件描述語言創建硬件工程,最后完成硬件仿真。這個過程非常復雜,需要花費大量的時間,而且由于軟件仿真和硬件仿真不能直接聯系,使得調試比較困難。Xilinx公司設計了一種全新的FPGA開發工具DSP Tools,將The MathWorks Matlab的系統級設計工具Simulink和Xilinx公司的FPGA開發工具ISE整合在一起,使得軟件仿真和硬件仿真可以同時進行。DSP Tools在算法友好的開發環境中可以幫助設計人員快速生成DSP設計硬件表征,從而縮短了DSP設計周期。已有的Matlab函數和Simulink模塊可以和Xilinx DSP Tools模塊相結合,將系統級設計和DSP算法開發相鏈接。DSP Tools通過在Simulink中調用Xilinx的模塊和IP核來搭建完整的系統,并使用workspace中的數據進行軟件仿真,得到滿意的結果后再直接生成硬件代碼,下載到硬件中進行測試[1]。在不具備測試條件和環境的情況下,可以進行軟硬件協同仿真。
在Simulink中調用各種模塊和IP核來搭建特定功能的系統,并創建各種測試向量來完成軟件仿真。軟件仿真完成后使用System gernerator編譯DSP Tools模塊生成HDL工程[2]。System generator可以直接生成NGC等網表文件,下載到硬件中進行調試,提高開發的效率;也可以生成HDL代碼,以便在需要的時候進行修改,并結合Xilinx ISE等其他開發工具進行仿真、綜合、布局、布線。在不存在硬件測試環境的情況下,還可以將硬件平臺鏈接入DSP Tools進行軟硬件協同仿真。DSP Tools開發流程如圖1所示。

圖1 基于DSP Tools的DSP系統開發流程
數字中頻發射機(Digital-IF transmitter)的框圖如圖2所示。中頻發射系統由高速DAC模塊、數字上變頻(DUC)模塊及插值濾波模塊組成。輸入的數字基帶信號首先經過插值濾波,轉換到更高的采樣率,然后通過數字上邊頻,調制到需要的頻率上去,最后通過高速DAC模塊把數字中頻信號轉化為模擬中頻信號[3]。

圖2 數字中頻發射系統
數字中頻發射系統是對信號在中頻進行數字化,在進行頻譜的搬移時,要考慮到采樣率的變化。一般來說,D/A之前的信號采樣率很高,要從基帶信號得到這些有用的高速信號,需要有效地對其進行數字上變頻、插值、濾波等處理,這些功能可以使用現場可編程門陣列(FPGA)來實現。FPGA具有較高的處理速度和較強的穩定性,同時又具有設計靈活、易于修改和維護的優點,可以適用于不同的系統要求。
在本文設計的數字中頻發射系統中,輸入正交基帶信號,采樣率為30 MHz,帶寬20 MHz,抽取上邊頻和濾波模塊實現6倍抽取,把采樣率變為180 MHz,然后把頻譜向上搬移25 MHz。
數字上變頻克服了模擬上變頻中存在的混頻器的非線性和模擬本振的頻率穩定度、邊帶、相位噪聲、溫度漂移、轉換速度等問題,其頻率步進、頻率間隔也具有理想的特性,因而得到了廣泛應用,數字上變頻原理如圖3所示。

圖3 數字上變頻框圖
數字上變頻由插值濾波、數控振蕩器(NCO)和數字混頻器組成,數字基帶信號經脈沖成形及插值濾波后得到高采樣率的信號,然后輸入到數字混頻器中與NGC產生的正交本振信號進行混頻,最后進行求和運算,得到數字中頻信號。
數控振蕩器是決定數字中頻性能的主要因素之一。NCO的目標是產生頻率可變的正交正、余弦樣本,在FPGA中,NCO一般采用直接數字頻率合成(DDS)的方法來實現。DSP Tools的IP庫中有高性能的DDS可以直接調用。本設計調用的是DDS v5.0,其自身時鐘設為180 MHz,動態范圍36 dB,輸出正交正余弦信號的頻率為25 MHz。
在DUC實現了從復基帶(Baseband)信號到實帶通(Passband)信號的轉換。輸入的復基帶信號采樣率相對較低,通常是數字調制的符號率?;鶐盘柦涍^濾波,然后被轉換成一個更高的采樣率,從而調制到NCO的中頻載波頻率。
基帶信號需要首先進行脈沖整形,濾掉帶外的雜波,通常由FIR濾波器實現。插值部分(Interpolation)完成信號采樣率變化和濾波功能,可以采用CIC和FIR實現。對于一個窄帶信號,如果需要進行高倍的采樣率變換,那么CIC將是非常合適的,無論是在實現性能或是資源節省方面,CIC都將優于FIR[4]。
在本設計中,基帶信號的采樣率是30 MHz,中頻信號的采樣率是180 MHz,只需要6倍的采樣率變化,而且信號的帶寬是20 MHz,不是窄帶信號,因此使用FIR進行插值濾波是更好的選擇。
如圖4所示,考慮到資源和效率,將整形濾波和抽取插值濾波分為3個FIR來設計:G(z)負責頻譜整形,工作頻率最低,設計成120階的根升余弦(RRC)濾波器;Q(z)負責2倍插值濾波,工作頻率次之,設計成80階的低通FIR;P(z)負責3倍插值濾波,工作頻率最高,設計成80階的低通FIR。具體實現上,由于I,Q兩路的濾波特性完全一樣,為了節省期間資源,將I,Q兩路的3級濾波器作復用。

圖4 DUC濾波器功能劃分
設計濾波器時,首先根據各級濾波器的濾波特性,使用Matlab的濾波器設計工具FDAtool(FilterDesign&Analysis tool)計算出抽取系數并進行量化,然后調用Xilinx的IP核FIR compiler v3.2,對各項參數進行設置并導入量化后的系數,就可以得到理想的FIR濾波器。圖5是完整的數字中頻發射機原理圖。

圖5 利用DSP Tools的數字中頻發射機原理圖
本仿真的輸入段是兩路基帶I/Q信號,采樣率30 MHz,帶寬20 MHz,通過三級濾波器進行頻譜整形及插值濾波后,采樣率上升到180 MHz,然后與DDS產生的25 MHz正余弦信號混頻,使頻譜上移25 MHz。
由圖6和圖7可以看出,輸入的基帶信號頻譜分布從20~40 MHz,中心頻率是30 MHz,輸出的中頻信號采樣率升到180 MHz,頻譜分布在195~215 MHz之間,中心頻率是205 MHz,相比采樣率180 MHz,頻譜上移了25 MHz。
筆者通過對基于DSP Tools的數字中頻發射機的設計實現,詳細說明了如何利用DSP Tools在Matlab上設計數字信號處理系統??蓪崿F“可見即可得”的設計方法,各種常用的DSP處理模塊,如FIR,DDS,FFT可以直接調用,既方便省事,又能兼顧性能。

圖6 輸入基帶I/Q信號的頻譜

圖7 輸出中頻信號的頻譜
本文方法可以快速構建DSP系統,并在不具備外部硬件測試平臺的情況下,使用JTAG口進行軟硬件聯合仿真。相對于傳統開發方式來說,具有很大的優勢。
[1]Xilinx.DSP Tools User Guide[EB/OL].(2009-04-07)[2009-08-09].http∶//www.Xilinx.com.
[2]Xilinx.DSP Tools Reference Manual[EB/OL].(2009-04-07)[2009-08-09].http∶//www.Xilinx.com.
[3]陳寶龍.基于FPGA的數字中頻接收機的研究[D].南京:南京理工大學,2008.
[4]王水,吳繼華.用 FPGA 實現數字中頻[EB/OL].(2009-04-13)[2009-08-09].http∶//www.jdzj.com.