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