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