龔永龍 楊青華 蔡懷海








摘要:針對無線接收技術向著大帶寬、高采樣的方向發展,軍地的頻譜管理設備已經不能滿足日常的訓練和執法需求,本文提出了一種基于CORDIC算法的中頻多路控守系統設計方法,直接采集超外差接收機的中頻輸出信號,從而實現多達32路或者64路的窄帶信號提取、存儲、分析、回放等。作為事后分析取證等,彌補當前設備的不足。文中介紹了CORDIC的基本原理,核心實現基于CORDIC算法的nco和子帶變頻器,并在Xilinx 平臺上驗證成功。
關鍵詞: CORDIC;軟件無線電;NCO;數字下變頻;信號分析
無線電頻譜是一種自然資源,由于無線電頻譜是有限的,而通信技術極度依賴頻譜的使用,傳統的短波和超短波頻段已經不滿足當前通信需求了,未來通信主要依賴超高頻的微波頻段。而無線電接收技術也向著大帶寬、高靈敏度、高采樣率的方向發展,更高的速率為信號的實時分析帶來了極大的困難。本文提出了一種基于 CORDIC 算法的窄帶多路控守系統的設計方法,采用 CORDIC 算法實現多路窄帶通信信號控守,設計滿足寬帶內16路任意頻點的控守。
1 CORDIC算法原理
CORDIC 算法是一種數值性計算逼近的方法,其基本思想是用一系列與運算相關的角度不斷偏擺從而逼近所需旋轉的角度。假設初始向量為(X0,Y0)旋轉θ角度之后得到向量(X1,Y1), 此向量有如下關系:
在中頻多路控守系統中,采用 CORDIC 算法完成中心 NCO、子信道 NCO 的設計和頻率搬移。已知系統的中心頻率和寬帶范圍內各個子信道的中心頻率;假如系統輸入采樣率為fs,中心頻率為 fc,n 個子信道的頻率為別為f1,f2…fn。
假設中頻信號fc 被 AD 采樣后為 x(n),與初始 NCO混頻相乘,得到基帶的 IQ 信號,其中XI=x(n)* cosθ;XQ=x(n)*sinθ;如果將此時的 IQ 信號再次搬移β1的角度,就可以將子帶頻率f1的頻率搬移到零中頻的位置,計算為:
為節省資源,將式(3)和式(4)進行化簡組合,每路復數運算由4個乘法器變成3個,得到:
2多路控守FPGA實現方案
FPGA 內部實現多路窄帶控守出自處理流程框圖如圖1所示。功能單元主要包括寬帶下變頻器、交換矩陣、窄帶下變頻器、存儲矩陣、控制單元等。
寬帶下變頻器功能是將輸入的 ADC 采樣實信號變為零中頻 IQ 數據;
交換矩陣是根據要求實現的窄帶控守路數及頻點,計算數控振蕩器 NCO,并輸出給窄帶下變頻器;
窄帶下變頻器件功能是同時實現64路窄帶 IQ 信號輸出;
存儲矩陣同時將64路窄帶信號存儲并上傳。
2.1寬帶下變頻器設計
寬帶下變頻器包括 NCO 單元、乘法器、FIR 濾波器等;
ADC 芯片采樣時鐘為204.8 MHz, 輸入頻率范圍為(110~170) MHz,ADC 芯片采用 ADI 公司的 ADC9467芯片,最大位寬16 bit,無雜散動態優于75 dBm;
數控振蕩器 NCO 生成 sin 與 cos 信號,與 ADC 芯片相乘得到零中頻 IQ 信號;為節省芯片的乘法器資源,NCO 設計實現直接使用 ROM 查找表的方式實現;在Matlab中產生采樣率為204.8 MHz, 頻率為64.8 MHz(超外差接收機為2次混頻)的 sin 與 cos 信號,并將數據初始化存儲在 FPGA 內 rom 表即可。
乘法器為 AD 信號與 cos 或 sin 信號相乘,實現混頻的功能,輸出的 I 路和 Q 路信號,信號帶寬為24 bit。
FIR 濾波器設計使用的濾波器系數為64階對稱型的的低通濾波器,濾波器Fpass=40 MHz,Apass=0.1 dB ;Fstop=42 MHz,Astop=95 dB;濾波后抽2,將 IQ 數據的采樣率降為102.4 MHz,并輸出給子信道下變頻器控制矩陣,FFT 運算結果滿足優于85 dB的無雜散動態范圍。
2.2窄帶變頻器設計
窄帶變頻器為窄帶多路控守系統的核心模塊,為實現帶內多路任意頻點的控守,每個子帶變頻器都需要1個可配置的子帶 NCO 模塊、復數乘法器模塊、濾波器模塊。單路子帶變頻器的實現框圖如下圖所示。
ch_nco模塊是基于 CORDIC 算法的可配置 NCO 模塊,nco值的計算由控制器單元完成。計算公式為:
若子信道的中心頻率f1在中心頻率fc 的上半部分,則β=f1?fc;
若子信道的中心頻率f1在中心頻率fc 的下半部分,根據奈奎斯特采樣定理,此時的β=fs ?(f1?fc);
complex_mult模塊為復數乘法器模塊,每1路需要消耗3個乘法器資源。
filter_computer_p模塊為級聯的濾波器,包含了 CIC 和 FIR 濾波器兩種,根據輸入的ch_bw信號,可選擇輸出200、100、50、25、15、9、6、1 kHz 等8種帶寬的窄帶信號。
每1路輸出數據格式為16 bit 位寬的 I 和16 bit 位寬的 Q,ch_vld標識當前時鐘周期數據有效;
2.3控制單元設計
控制單元主要是完成 DSP 命令解析和子帶變頻器運算和控制。系統工作過程中,將 DSP 通過Emif接口往 FPGA 下發若干個信道號、每 1 個子信道的中心頻率、帶寬參數。ch_enable信號分別對應 16 個子帶變頻器的復位使能信號;ch_nco為對應子帶的nco值;ch_bw為各子帶變頻器輸出帶寬選擇信號。
2.4存儲矩陣設計
存儲矩陣將64路窄帶 IQ 數據存儲并上傳,傳輸數據的最大帶寬為64路200 kHz, 采樣率為帶寬的1.28倍;系統工作時鐘為102.4 MHz;
64路 IQ 數據進入存儲矩陣后,首先將數據根據ch_vld信號鎖存;
RAM1與 RAM2兩片存儲器將數據的進行乒乓存儲,保證數據的連續性,存儲器容量為128 kBit, 位寬32 bit, 尋址為0-32767,實現每路512點的存儲需求;
數據存儲格式為地址0-地址63為64路的 I1,Q1;地址64-地址127為64路的 I2Q2;依次存儲到 I512Q512;
數據讀取上傳格式,先取第1路的512點 IQ,地址為0、64、128…,再取第2路的512個點,地址為1、65、129…,依次取出64路。
存 RAM2數據時,RAM1數據通過 SRIOx4接口上傳數據到 DSP;存 RAM1數據時,RAM2數據數據上傳。
3驗證與實現
多路窄帶控守系統,使用 FPGA+DSP+ADC 的框架實現; FPGA 芯片使用設計的 Xilinx 公司的 K7系列 XCK7325T;ADC 采集芯片為 ADI 公司的 ADC9467,采樣率高達250 MHz,,DSP 芯片采用 TI 公司的 TMS320C6657。FPGA 與 DSP 之間的通信接口包括 EMIF 和 SRIO x4,處理平臺的對外接口為千兆以太網。平臺組成如圖4所示。
系統上電后,首先由應用層軟件的寬帶信號搜索功能,硬件平臺收到指令后,由 FPGA 接收并解析 ADC采樣數據,與 NCO(COS,SIN)相乘得到基帶的 IQ 信號;并將 IQ 數據進行 FFT 運算,FPGA 并將 FFT 運算后功率譜數據上傳;在頻譜顯示界面可自動或者手動分選要控守的信號頻率和分析帶寬,并將相應的子帶頻率與分析帶寬下發給硬件平臺。
在 FPGA啟動多路控守控制模塊與 CORDIC 乘法器復數乘法模塊,并將對應帶寬的數據輸出上傳。上傳后的數據保存在系統本地硬盤中,并使用 Adobe Audition軟件驗證播放,反復多次存儲播放,證明多路控守系統能同時實現64路帶寬200 kHz。
4結束語
本文研究了一種基于 CORDIC 算法的可配置的多路窄帶控守系統的設計實現,通過在操作終端上文件存儲的方式驗證能夠實現60 MHz 寬帶內最多64路的任意頻點控守,在工作中由寬帶搜索引導多路窄帶控守,可對多路窄帶信號進行存儲、分析;同時所需要的 FPGA內部的乘法器和存儲器資源極少。下一步目標優化優鏈路資源消耗,實現更多通道頻點的控守。
參考文獻:
[1]張煒,楊虎.基于CORDIC算法的直接數字頻率合成器實現方法[J].重慶郵電學院學報(自然科學版),2006,18(5):597-600.
[2]梁杰,孫未.CORDIC算法的優化及硬件實現[J].電子世界,2013(10):1-4.
[3]黃海.基于CORDIC的離散三角變換快速算法及其實現研究[D].哈爾濱:哈爾濱工業大學,2014.
[4]陳婧.改進型CORDIC算法的研究與實現[J].現代電子技術,2011(24):49-55.