郭 靜,何鵬
(中國電子科技集團(tuán)公司第四十一研究所,山東 青島 266555)
隨著無線電技術(shù)的快速發(fā)展,信號越來越呈現(xiàn)出復(fù)雜性、瞬變性、傳輸快、高帶寬等特點(diǎn),對射頻信號的測試和檢測要求越來越高,信號測量分析技術(shù)的發(fā)展也面臨著很大的挑戰(zhàn)和機(jī)遇[1-3]。傳統(tǒng)的頻譜儀由于不能進(jìn)行實(shí)時數(shù)據(jù)處理,容易導(dǎo)致突發(fā)瞬變信號的遺漏,已經(jīng)無法滿足復(fù)雜信號對頻譜分析和測試的需求。為滿足復(fù)雜電磁環(huán)境下的信號測試工作需要,實(shí)時頻譜分析儀應(yīng)運(yùn)而生并得到了快速發(fā)展[4-5]。
實(shí)時頻譜分析儀具有無縫數(shù)據(jù)處理能力[6-7],實(shí)時處理FFT 模塊完成時域數(shù)據(jù)到頻域數(shù)據(jù)的轉(zhuǎn)換,得到每秒數(shù)十萬甚至上百萬數(shù)量級的頻譜幀,如此龐大的數(shù)據(jù)量不僅難以進(jìn)行數(shù)據(jù)傳輸,而且更無法實(shí)時顯示[8],因此需要實(shí)時檢波技術(shù)來解決傳輸和刷新的瓶頸。傳統(tǒng)實(shí)時頻譜儀中的幀檢波器通常采用RAM 資源進(jìn)行實(shí)現(xiàn)[9-10],在檢波過程中需要對RAM 進(jìn)行讀、寫地址的控制,控制方法較為繁瑣且占用邏輯資源。本文提出了一種基于FPGA FIFO 資源實(shí)現(xiàn)的實(shí)時檢波器,不需要控制讀寫地址,只需控制新來的頻譜數(shù)據(jù)與FIFO 中存儲的數(shù)據(jù)一一比較或累加后重新寫入FIFO,實(shí)現(xiàn)方式簡單且占用邏輯資源較少。
實(shí)時頻譜儀具有可變分析帶寬功能,可變分析帶寬濾波器通帶外的頻譜數(shù)據(jù)不需要進(jìn)行顯示,在檢波運(yùn)算前剔除分析帶寬外的數(shù)據(jù),可以減小后續(xù)信號處理和數(shù)據(jù)傳輸?shù)膲毫?,因此本文在檢波運(yùn)算前增加了是否為分析帶寬內(nèi)顯示點(diǎn)的判斷。
實(shí)時頻譜儀數(shù)據(jù)處理組成框圖如圖1 所示。中頻輸入信號通過ADC 采樣,采樣后的數(shù)據(jù)經(jīng)過下變頻與可變分析帶寬數(shù)字濾波后無縫進(jìn)行實(shí)時FFT 頻譜計(jì)算[11-12],實(shí)時檢波器將多幀F(xiàn)FT 頻譜數(shù)據(jù)根據(jù)不同檢波方式保留不同信號特征,壓縮成1 幀頻譜數(shù)據(jù)傳輸至上位機(jī)進(jìn)行刷新顯示。本系統(tǒng)中ADC 采樣率為204.8 MHz,最大分析帶寬下數(shù)字下變頻濾波經(jīng)過2 倍抽取形成102.4 MHz速率的IQ 數(shù)據(jù),若進(jìn)行1 024 點(diǎn)數(shù)的FFT 運(yùn)算,每秒可形成10 萬幀頻譜數(shù)據(jù)。為了適應(yīng)人眼可識別的數(shù)據(jù)刷新頻率,需要進(jìn)行實(shí)時幀檢波處理,即每4 000 幀頻譜檢波輸出1 幀頻譜,形成每秒25 幀的刷新頻率[13]。
圖1 實(shí)時頻譜儀數(shù)據(jù)處理框圖
實(shí)時頻譜分析儀參考傳統(tǒng)頻譜儀中的視頻檢波算法,同時考慮到數(shù)據(jù)處理的實(shí)時性,引入了正峰值、負(fù)峰值、平均值和實(shí)時刷新四種檢波方式[14-15]。圖2為對兩幀頻譜經(jīng)過不同檢波方式輸出的頻譜圖,正峰值檢波畫出了所有頻點(diǎn)的最大值包絡(luò),負(fù)峰值檢波選取每個頻點(diǎn)最小值的信號進(jìn)行顯示,平均值檢波對每個頻點(diǎn)的值求平均值,實(shí)時刷新檢波則僅選擇輸出一幀頻譜數(shù)據(jù)。不同的檢波方式有利于觀察不同特征的信號,正峰值檢波有利于保留突發(fā)信號的信息,負(fù)峰值檢波有利于消除突發(fā)信號的影響,平均值檢波有利于提高小信號的測量能力,實(shí)時刷新檢波有利于觀察檢波前原始信號的頻譜。
圖2 不同檢波方式輸出的頻譜圖
實(shí)時頻譜儀具有可變分析帶寬功能,顯示的頻譜數(shù)據(jù)為分析帶寬內(nèi)的數(shù)據(jù),因此原始的頻譜數(shù)據(jù)需要根據(jù)用戶設(shè)定的頻點(diǎn)間步長、分析帶寬和FFT 點(diǎn)數(shù)來進(jìn)行截?cái)啵蕹治鰩捦獾臄?shù)據(jù)。顯示點(diǎn)數(shù)計(jì)算公式如式(1)所示:
式中,ShowNum為顯示點(diǎn)數(shù);BW為分析帶寬,Hz;Step為頻點(diǎn)間步長,Hz。
以60 MHz 分析帶寬、100K 步長為例,該參數(shù)設(shè)置下上位機(jī)軟件自動關(guān)聯(lián)的FFT 點(diǎn)數(shù)為1 024 點(diǎn),通過式(1)計(jì)算出顯示點(diǎn)數(shù)為601 點(diǎn),需要選取1 024 點(diǎn)頻譜數(shù)據(jù)中間的601 點(diǎn)數(shù)據(jù)進(jìn)行后續(xù)的處理與顯示,前后兩端共423 個點(diǎn)應(yīng)該被剔除。在本文中對輸入的每一幀頻譜數(shù)據(jù)進(jìn)行點(diǎn)數(shù)計(jì)數(shù)編號,通過該點(diǎn)對應(yīng)計(jì)數(shù)器的值即可判斷該點(diǎn)是否位于顯示點(diǎn)的位置,從而在該頻譜幀到達(dá)檢波器時判斷每一個頻點(diǎn)為顯示點(diǎn)還是截?cái)帱c(diǎn),若為顯示點(diǎn)則參與檢波運(yùn)算,若為截?cái)帱c(diǎn)則舍去跳轉(zhuǎn)到下一流程。
本文使用Xilinx Kintex UltraScale 系列的FPGA 進(jìn)行數(shù)字中頻信號處理,通過FIFO 對檢波過程數(shù)據(jù)進(jìn)行暫存,設(shè)置FIFO 讀數(shù)模式為First Word Fall Through,以便在新頻譜數(shù)據(jù)到來時及時與FIFO 的輸出數(shù)據(jù)做比較,寬度為平均值檢波模式下所需累加器產(chǎn)生最大數(shù)據(jù)的寬度,深度為可容納最大顯示點(diǎn)的數(shù)據(jù)量。
圖3 所示為基于FIFO 結(jié)構(gòu)實(shí)現(xiàn)的檢波器邏輯控制框圖,上位機(jī)軟件設(shè)置檢波幀數(shù)、檢波類型和顯示點(diǎn)數(shù)后,經(jīng)過FFT 變換后的頻譜數(shù)據(jù)輸入至實(shí)時幀檢波器進(jìn)行檢波,不同時間內(nèi)無縫捕獲的許多相鄰幀組成塊[6],具體塊內(nèi)檢波實(shí)現(xiàn)流程如圖4 所示。
圖3 基于FIFO 結(jié)構(gòu)實(shí)現(xiàn)的檢波器邏輯控制
圖4 塊內(nèi)檢波流程圖
(1)頻譜數(shù)據(jù)編號:對每一幀到來的頻譜數(shù)據(jù)進(jìn)行編號,對于長度為NFFT 的頻譜數(shù)據(jù),編號應(yīng)為1~NFFT。
(2)存儲數(shù)據(jù):第一幀頻譜數(shù)據(jù)的顯示點(diǎn)暫存至FIFO 中。
(3)讀取數(shù)據(jù)并回寫數(shù)據(jù):后續(xù)幀頻譜數(shù)據(jù)的顯示點(diǎn)到達(dá)的同時讀取FIFO 數(shù)據(jù),新的頻譜數(shù)據(jù)依次與FIFO輸出的頻譜數(shù)據(jù)進(jìn)行比較或累加,根據(jù)不同的檢波方式將得到的數(shù)據(jù)寫入至FIFO(正峰值檢波使用比較器寫入較大的值,負(fù)峰值檢波使用比較器寫入較小的值,平均值檢波使用累加器寫入累加值,實(shí)時刷新檢波直接寫入輸入的頻譜數(shù)據(jù)),等待下一幀頻譜數(shù)據(jù)的顯示點(diǎn)到來時再進(jìn)行比較或累加。
(4)輸出數(shù)據(jù):處理的頻譜數(shù)據(jù)幀數(shù)達(dá)到軟件設(shè)置的檢波幀數(shù)后輸出檢波頻譜數(shù)據(jù),其中均值檢波需要將FIFO 輸出的累加值除以檢波幀數(shù)進(jìn)行平均運(yùn)算,其他檢波方式則直接輸出FIFO 的存儲數(shù)據(jù)。
(5)重置參數(shù):清零檢波幀數(shù)計(jì)數(shù)器,準(zhǔn)備進(jìn)行下一個塊的檢波。
由于本系統(tǒng)中FPGA 的處理時鐘為204.8 MHz,F(xiàn)FT頻譜數(shù)據(jù)速率為102.4 MHz,在輸出檢波數(shù)據(jù)幀的過程中不會被新的頻譜數(shù)據(jù)所覆蓋,因此只需要單路檢波器即可滿足要求。若存在輸入頻譜數(shù)據(jù)覆蓋輸出頻譜數(shù)據(jù)的風(fēng)險,可將該結(jié)構(gòu)擴(kuò)展為采用兩個相同的FIFO 進(jìn)行乒乓操作。
使用Vivado 自帶仿真器對實(shí)時檢波器程序進(jìn)行仿真,以正峰值檢波為例。設(shè)置FFT 點(diǎn)數(shù)為1 024 點(diǎn),顯示點(diǎn)數(shù)為601 點(diǎn),塊檢波幀數(shù)為2 幀,檢波模式選擇正峰值檢波。圖5為檢波器仿真波形圖,data_in為輸入1 024點(diǎn)數(shù)的頻譜,第一幀信號頻率為143.6 MHz,第二幀信號頻率為163.6 MHz,data_out為經(jīng)過檢波輸出后的601 個點(diǎn)的顯示頻譜,可以看出輸出頻譜同時保留了143.6 MHz和163.6 MHz 兩個信號,實(shí)現(xiàn)了正峰值檢波與分析帶寬外數(shù)據(jù)的截?cái)唷?/p>
圖5 檢波器仿真輸出正峰值檢波頻譜
連接信號源輸出端和實(shí)時頻譜儀輸入端,設(shè)置信號源輸出頻率為6 GHz,實(shí)時頻譜儀分析帶寬為60 MHz,步長為25 kHz,塊檢波幀數(shù)為4 000 幀,分別設(shè)置實(shí)時頻譜儀的檢波方式為正峰值、負(fù)峰值、平均值和實(shí)時刷新,得到不同檢波模式的輸出頻譜圖如圖6 所示。由實(shí)驗(yàn)測試結(jié)果可以得出,該實(shí)時檢波器可以滿足實(shí)時頻譜儀的檢波需求。
圖6 不同檢波模式下輸出頻譜
本文利用FPGA 的FIFO 資源設(shè)計(jì)了一種可應(yīng)用于實(shí)時頻譜儀的幀檢波器,實(shí)驗(yàn)證明該檢波器可實(shí)現(xiàn)正峰值、負(fù)峰值、平均值和實(shí)時刷新四種檢波功能,能夠根據(jù)需要靈活設(shè)置檢波幀數(shù)與檢波模式,滿足實(shí)時頻譜儀的檢波需求。在參與檢波運(yùn)算前對分析帶寬外數(shù)據(jù)進(jìn)行剔除,減輕了后續(xù)數(shù)據(jù)的處理壓力?;贔IFO 資源實(shí)現(xiàn)的檢波器結(jié)構(gòu)簡單,占用邏輯資源較少,可在實(shí)時頻譜儀中廣泛推廣使用。