金偉正, 趙小月, 肖 云, 林漫暉
(武漢大學(xué) 電子信息學(xué)院,武漢 430079)
目前,頻譜分析儀主要分為超外差式掃描調(diào)諧分析儀和傅里葉分析儀兩大類[1]。傅里葉分析儀難以對高頻信號進(jìn)行分析;超外差式掃描調(diào)諧分析儀對硬件要求很高,且這兩類頻譜分析儀難以同時滿足高頻率分辨率和寬頻帶的要求。將模數(shù)轉(zhuǎn)換器和數(shù)模轉(zhuǎn)換器盡量靠近天線,直接使射頻模擬信號轉(zhuǎn)換為適合在數(shù)字信號處理器和計算機(jī)中處理的數(shù)據(jù)信息,在計算機(jī)中編寫軟件模塊來實現(xiàn)信號的復(fù)雜處理過程,最后使這樣的無線電系統(tǒng)具有良好的靈活性和擴(kuò)展性,這就是軟件無線電技術(shù)的設(shè)計思想[2]。隨著信息技術(shù)的快速發(fā)展,現(xiàn)代頻譜分析儀朝著數(shù)字化、模塊化、軟件化的方向不斷演進(jìn)[3-4]?,F(xiàn)代的頻譜分析儀中已經(jīng)采用軟件無線電結(jié)構(gòu),利用模擬的射頻接收端和全數(shù)字式的中頻接收處理系統(tǒng),實現(xiàn)高頻率分辨率和多測量功能。
本文基于軟件無線電的采用寬帶中頻數(shù)字化方案的頻譜分析儀可廣泛用于信號的實時頻譜分析,相比傳統(tǒng)的頻譜分析儀,具有頻譜分析誤差小,頻率分辨率高;頻帶寬;具有靈活性、開放性、模塊化結(jié)構(gòu);便于攜帶等優(yōu)點。
設(shè)計的頻譜分析儀設(shè)計框圖如圖1所示,系統(tǒng)由天線、收發(fā)轉(zhuǎn)換開關(guān)、中頻接收模塊、ADC模塊、混頻模塊、抽取濾波模塊、參數(shù)設(shè)置模塊、DSP模塊、移動客戶端顯示模塊、云端存儲模塊組成。設(shè)計的性能目標(biāo):頻率分辨率 1-3-10為步進(jìn),共有6個檔位(0.03,0.10,0.30,1,3,10 kHz);中頻頻率為2.6 GHz;動態(tài)范圍為75 dB;AD工作頻率為20 MHz。
硬件模塊由射頻模塊、中頻接收模塊、ADC模塊、混頻模塊組成,與軟件無線電支持的外部設(shè)備HackRF One有著相似的架構(gòu)。故可采用HackRF One作為頻譜分析儀進(jìn)行射頻和中頻信號處理的硬件平臺,其基本架構(gòu)如圖2所示。在軟件無線電系統(tǒng)中,要求天線盡可能覆蓋多頻段[5],HackRF One 可覆蓋0.03~6 GHz的大范圍頻率,其中頻頻點為2.6 GHz,最高采樣頻率為22 MHz。
圖1 頻譜分析儀的設(shè)計框圖
圖2 HackRF One基本架構(gòu)圖
HackRF One支持GNURadio[6]并可與之配合使用,通過USB口與PC端進(jìn)行相連,主要作用是對信號的收發(fā),并對信號進(jìn)行放大、濾波、混頻、采樣等處理。以接收過程為例,信號由天線進(jìn)入后流程如下[7]:①由射頻開關(guān)決定是否經(jīng)由14 dB的放大器進(jìn)行放大;②經(jīng)過鏡像抑制濾波器對信號進(jìn)行高通或低通濾波;③信號進(jìn)行RFFC5072芯片混頻到2.6 GHz固定中頻(中頻范圍2.15~2.75 GHz);④信號送入MAX2837芯片混頻到基帶,輸出差分的IQ信號(其間MAX2837芯片可以對信號進(jìn)行帶寬限制);⑤MAX5864芯片對基帶信號進(jìn)行數(shù)字化后送入CPLD和單片機(jī);⑥CPLD處理數(shù)據(jù);⑦LPC4320/4330處理器將采樣數(shù)據(jù)通過USB送至計算機(jī)。
軟件模塊主要包括抽取濾波模塊、DSP模塊、移動客戶端顯示模塊、云端存儲模塊。移動客戶端顯示模塊和云端存儲模塊分別是利用APP開發(fā)技術(shù)和云端數(shù)據(jù)庫開發(fā)技術(shù)實現(xiàn)。抽取濾波模塊和DSP模塊則是在軟件平臺GNURadio上實現(xiàn)。GNURadio 軟件平臺上有很多現(xiàn)成的信號處理模塊,這些模塊可以通過某種機(jī)制連接起來,形成一個模塊流程圖,這樣就迅速搭建好一個軟件無線電系統(tǒng)[8]。常見的信號處理模塊庫有各種調(diào)制方式,觀察信號波形圖、頻譜圖、星座圖、圖形模塊、糾錯碼、濾波器、均衡器等。用戶可通過搭建相應(yīng)的模塊構(gòu)建無線電應(yīng)用的流圖,也可根據(jù)應(yīng)用的需要自定義編碼擴(kuò)展模塊來構(gòu)建自定義的無線應(yīng)用,構(gòu)建應(yīng)用的信號處理模塊可通過某種機(jī)制連接成一個系統(tǒng)。在GNURadio軟件平臺上,采用Python 腳本語言[9]和C++語言混合方式進(jìn)行軟件模塊的編程[10]。C++語言執(zhí)行效率高,主要被用于編寫一些信號處理模塊;Python語言不需要編譯、語法簡單、面向?qū)ο?,主要用于各個信號處理模塊連接的程序編寫。
移動客戶端顯示模塊界面如圖3 (a)所示,軟件結(jié)構(gòu)框圖如圖3 (b)所示。
移動端軟件結(jié)構(gòu)主要包括主進(jìn)程MainActivity、HackrfSource、FileIQSource、IQSourceInterface、Scheduler、AnalyzerProcessingLoop、AnalyzerSurface以及FFT等進(jìn)程(或模塊)。軟件執(zhí)行過程如下:在主進(jìn)程MainActivity的調(diào)控下,HackrfSource進(jìn)程采集并處理軟件無線電設(shè)備HackRF接收無線電產(chǎn)生的相應(yīng)數(shù)據(jù),通過IQSourceInterface進(jìn)程將數(shù)據(jù)傳輸?shù)絊cheduler進(jìn)程;接收到數(shù)據(jù)后,Scheduler進(jìn)程處于等待狀態(tài);主進(jìn)程開始執(zhí)行頻譜分析后,Scheduler進(jìn)程停止等待并將數(shù)據(jù)傳至AnalyzerProcessingLoop進(jìn)程;在AnalyzerProcessingLoop進(jìn)程中通過FFT函數(shù),執(zhí)行傅里葉變化等相關(guān)處理,并通過draw函數(shù)做出相應(yīng)的頻譜圖像。
云端存儲模塊即在云端搭建服務(wù)器,并建立數(shù)據(jù)庫用于存儲每一用戶在App使用過程中產(chǎn)生的大量頻譜分析數(shù)據(jù),或可將其擴(kuò)展為數(shù)據(jù)庫集群??紤]到移動端密集的I/O需求,使用基于多副本分布式技術(shù)的SSD云盤進(jìn)行數(shù)據(jù)的云存儲。SSD云盤具有高性能、高可靠、彈性擴(kuò)容的特點,能夠提供極強的數(shù)據(jù)持久性。在云端存儲方式中,App與云端數(shù)據(jù)庫進(jìn)行交互,包含實時寫入和定時讀取兩部分。在信號接收階段,將數(shù)據(jù)實時發(fā)送到云端;在信號處理與分析階段,采用特定算法,定時分批從云端讀取大量數(shù)據(jù)至移動端,只將分析結(jié)果存儲在本地。
(a)顯示界面
(b)結(jié)構(gòu)框圖
DSP模塊主要是利用FFT 進(jìn)行實時頻譜分析。 GNURadio中有模塊Fourier Analysis,包括FFT、Goertzel、Log Power FFT 3個子模塊,以及多個sink模塊包含F(xiàn)FT運算。用戶可通過調(diào)用這些模塊來得到信號頻譜圖。利用GNURadio進(jìn)行FFT時需要設(shè)置采樣頻率。對信號進(jìn)行采樣要滿足基本的采樣定理,又稱為奈奎斯特采樣定理,該定理在數(shù)字信號處理中有廣泛應(yīng)用[11]。即采樣頻率要大于或等于最高頻率的2倍才不會出現(xiàn)頻譜混疊。但是在工程應(yīng)用中,為了提高信號的信噪比和降低抗混疊濾波器的設(shè)計難度,通常取值是采樣頻率大于等于最高頻率2.5倍[12]。
在頻譜分析系統(tǒng)中,多速率信號處理是其關(guān)鍵技術(shù)之一。多速率信號處理是指一個系統(tǒng)中存在多個采樣速率,產(chǎn)生這種情況的原因包括抽取和插值兩種情況[13-14]。ADC和混頻后信號具有較高的采樣速率,需要進(jìn)行采樣率轉(zhuǎn)換,降低采樣速率,減少基帶信號處理的數(shù)據(jù)量,該處理過程就是基于多速率信號處理的整數(shù)倍抽取技術(shù)。進(jìn)行該處理過程的是抽取濾波模塊,由抽取模塊和級聯(lián)FIR抽取濾波器組成。GNURadio中可選擇Rational Resampler Base模塊作為抽取模塊。經(jīng)過抽取后的信號,需要經(jīng)過低通濾波器進(jìn)行波形整形。低通濾波器主要分為FIR濾波器和IIR濾波器。FIR濾波器是有限長沖激響應(yīng),產(chǎn)生的誤差對系統(tǒng)影響小,同時由于FIR濾波器具有線性相位,使信號在處理中不失真,因此選FIR濾波器。GNURadio中Decimating FIR Filter即為抽取FIR濾波器。
DSP模塊和抽取濾波模塊中分別對FFT點數(shù)和抽取因子進(jìn)行調(diào)整,會對頻率分辨率產(chǎn)生影響。頻率分辨率是頻譜分析儀的關(guān)鍵性能指標(biāo)之一,表明了頻譜分析儀分辨兩個輸入信號的能力。對于利用離散傅里葉變換進(jìn)行離散數(shù)字頻譜分析的系統(tǒng)而言,其頻率分辨率[15]:
表1 頻率分辨率大小與抽取因子關(guān)系
首先根據(jù)頻率分辨率檔位和FFT點數(shù)計算出基帶信號速率即fs=NΔf,然后根據(jù)基帶信號速率和ADC采樣率計算出所需要的總抽取因子D=fad/ND,之后再將D分配到抽取模塊和級聯(lián)FIR抽取濾波器中,抽取因子均取整數(shù),再依據(jù)DFIR來確定FIR抽取濾波器的級聯(lián)級數(shù)。利用參數(shù)設(shè)置模塊改變抽取濾波抽取因子或FFT點數(shù)便可以動態(tài)調(diào)節(jié)頻率分辨率。
實驗內(nèi)容主要包括移動客戶端顯示模塊、云端存儲模塊、抽取濾波模塊、DSP模塊的設(shè)計與測試;射頻前端、中頻接收、ADC、混頻器的測試;頻率分辨率、帶寬測試;整機(jī)的發(fā)射與接收實驗測試等部分。由于篇幅的限制,本文只給出重要模塊的重要性能測量方法,包括抽取濾波模塊測試、射頻中頻測試(HackRF One測試),對頻譜分析儀的重要參數(shù)頻率分辨率和帶寬進(jìn)行測試。
在GNURadio中搭建抽取濾波的GRC流圖如圖4所示,將采樣頻率設(shè)置為20 MHz,信號源波形為正弦波,中心頻率為100 kHz,調(diào)整Rational Resampler Base模塊和Decimating FIR filter模塊參數(shù)以及Decimating FIR filter模塊數(shù)量,改變抽取因子,進(jìn)而改變頻率分辨率。分別將頻率分辨率調(diào)為0.03、1、10 kHz,抽取因子設(shè)置見表1,所得抽取濾波后信號如圖5所示。
圖4 抽取濾波模塊GRC流圖
(a) 30 Hz頻譜圖
(b) 30 Hz時域波形圖
(c) 1 kHz頻譜圖
(d) 1 kHz時域波形圖
(e) 10 kHz頻譜圖
(f) 10 kHz時域波形圖
可見,當(dāng)頻率分辨率較小,即抽取因子較大時,系統(tǒng)采樣率下降較多,信號時域波形具有較小周期,波形失真也會增大。這與預(yù)期結(jié)果相符,故抽取濾波模塊符合設(shè)計要求。
將HackRF One通過USB口與PC相連,在GNURadio中搭建圖6所示GRC流圖,采樣率設(shè)置為20 MHz。Audio Sink模塊輸出相應(yīng)頻段上的語音,可以利用其進(jìn)行各種廣播接收,此處不再對其進(jìn)行實驗。WX GUI Scope Sink模塊和WX GUI FFT Sink模塊分別輸出時域和頻域信號。Osmocom Source模塊為經(jīng)HackRF One輸入的信號源,通過調(diào)整其頻率來測試射頻中頻輸入的不同帶寬的信號。將頻率調(diào)整為0.10、1,6 GHz,觀察其信號,如圖7所示。當(dāng)在一定范圍內(nèi)時可以檢測到語音,且與各廣播頻段分布有關(guān)。較小時檢測到的信號時域波形與波形比較復(fù)雜。當(dāng)6 GHz時,能夠檢測到信號,但信號比較微弱。實驗中射頻中頻模塊能夠?qū)?.1~6 GHz信號進(jìn)行接收,與預(yù)期效果相同,滿足寬頻帶特性,符合設(shè)計要求。
圖6 射頻中頻模塊GRC流圖
(a) 100 MHz頻譜圖
(b) 100 MHz時域波形圖
(c) 1 GHz頻譜圖
(d) 1 GHz時域波形圖
(e) 6 GHz頻譜圖
(f) 6 GHz時域波形圖
設(shè)計了一種基于GNURadio的頻譜分析儀,通過對抽取濾波模塊和射頻中頻模塊進(jìn)行簡單測試,驗證了其具有可調(diào)頻率分辨率以及較高頻帶的性能。由于篇幅限制以及并非頻譜分析儀的核心內(nèi)容,并未給出移動客戶端顯示和云端存儲這兩個模塊的測試。本分析儀成功應(yīng)用于2017級卓越工程師計劃的高頻實驗教學(xué),教學(xué)效果良好,學(xué)生通過本實驗可以較為深入地理解和掌握信號頻域分析設(shè)計原理和方法。該整體方案進(jìn)行了實用新型專利的申請登記,同時獲批樣2018年國家級大學(xué)生創(chuàng)新創(chuàng)業(yè)項目立項。