高 銳,閆光輝,羅 浩,嚴(yán)天峰
(1.蘭州交通大學(xué) 電子與信息工程學(xué)院,蘭州 730070;2.蘭州交通大學(xué) 甘肅省無線電監(jiān)測及定位行業(yè)技術(shù)中心,蘭州 730070;3.蘭州交通大學(xué) 甘肅省高精度北斗定位技術(shù)工程實驗室,蘭州 730070;4.甘肅中醫(yī)藥大學(xué) 信息工程學(xué)院,蘭州 730000)
無線電頻譜作為無線電信息傳播的載體,對國家政治、軍事、經(jīng)濟(jì)和文化發(fā)展都扮演著不可替代的重要作用,已成為國與國之間重要的戰(zhàn)略資源[1-2].目前,針對特定頻段的無線電頻譜資源十分有限且日趨緊張,各類違規(guī)、非法無線電臺站、黑廣播和偽基站日益猖獗,如何有效地對電磁環(huán)境進(jìn)行監(jiān)測、管理與分析成為一項極為重要和緊迫的任務(wù).
目前,我國對于海量監(jiān)測數(shù)據(jù)的實時處理、分析與感知能力還處于較低水平.而同相正交(in-phase and quadrature,IQ)信號包含無線電信號中的各種信息,結(jié)合多種頻譜處理方法對其進(jìn)行處理與分析對無線電監(jiān)測、管理起到了至關(guān)重要的作用[3].為了更好利用IQ信號數(shù)據(jù)進(jìn)行分析,文獻(xiàn)[4]提出了信號的瀑布分析技術(shù)實現(xiàn)方法,說明了瀑布圖在信號分析領(lǐng)域的重要意義;文獻(xiàn)[5]在對遙測信號進(jìn)行偵測時,采用信號瀑布圖方法實現(xiàn)了對猝發(fā)信號的快速發(fā)現(xiàn)和分析;文獻(xiàn)[6-8]基于頻譜瀑布圖,結(jié)合深度學(xué)習(xí)技術(shù)進(jìn)行電磁信號智能監(jiān)測與識別.另一方面,WebSocket已成為Web實時通信的最佳實踐,其具備高并發(fā)、實時、穩(wěn)定和安全等諸多優(yōu)點,已在許多領(lǐng)域中取得了良好應(yīng)用.文獻(xiàn)[9]表明WebSocket在工業(yè)互聯(lián)網(wǎng)(IIOT)應(yīng)用中,能夠有效解決依賴于網(wǎng)絡(luò)層通信的遠(yuǎn)程數(shù)據(jù)傳輸問題,減輕網(wǎng)絡(luò)負(fù)擔(dān);文獻(xiàn)[10]應(yīng)用WebSocket技術(shù)實現(xiàn)車聯(lián)網(wǎng)實時報警系統(tǒng),有效提高了推送吞吐量,降低網(wǎng)絡(luò)流量,大大提升了系統(tǒng)性能;文獻(xiàn)[11]基于WebSocket協(xié)議及MSE技術(shù),有效實現(xiàn)了一種基于Web頁面無插件、出流快、低時延播放的視頻監(jiān)控方法.
綜上,本文提出了一種IQ信號-功率譜密度轉(zhuǎn)化算法并利用Python語言編程實現(xiàn),將無線電監(jiān)測接收機(jī)中獲取的IQ信號數(shù)據(jù)轉(zhuǎn)化為離散功率譜密度數(shù)組;其次,為了將功率譜密度數(shù)組以信號瀑布圖方式可視化呈現(xiàn),提出了一種基于HTML5 Canvas和Vue2.js技術(shù)的功率譜密度信號瀑布圖可視化方法,為無線電監(jiān)測分析、干擾排查提供技術(shù)支撐;最后,采用WebSocket技術(shù)設(shè)計開發(fā)了基于B/S架構(gòu)無線頻譜數(shù)據(jù)實時監(jiān)測系統(tǒng),實現(xiàn)了時域、頻域和功率譜密度信號瀑布圖的實時可視化呈現(xiàn)及全域數(shù)據(jù)的實時存儲.
IQ信號數(shù)據(jù)可在未經(jīng)處理的情況下有效識別信號的瞬時幅度、相位和頻率三大特征,從而為信號的識別與分析提供關(guān)鍵性的數(shù)據(jù)支撐[12].如式(1)所示,信號調(diào)制通過改變正弦波的特征來編碼信息.通過式(2)數(shù)學(xué)變換,信號S(t)可以(I+jQ)復(fù)數(shù)形式進(jìn)行表示.圖1(a)為信號S(t)的一個瞬時狀態(tài)在復(fù)數(shù)矢量坐標(biāo)系下的映射,橫軸I(t)為其實部,縱軸Q(t)為其虛部;圖1(b)為IQ信號調(diào)制原理電路設(shè)計圖,同頻率正弦波與余弦波相位相差90°,I路信號與載波信號相乘,Q路信號與正交載波信號相乘,再將混頻后的兩路信號求和輸出,完成了矢量信號的調(diào)制.由于硬件電氣特性,實際信號在調(diào)制過程中會帶來信號誤差,為獲取高質(zhì)量矢量信號,需要在硬件電路和軟件上進(jìn)行誤差補(bǔ)償[13].
圖1 IQ信號調(diào)制原理
S(t)=Accos(2πfct+φ),
(1)
S(t)=I(t)cos(2πfct)+jQ(t).
(2)
其中:S(t)表示信號;Ac為信號S(t)的幅度;fc為信號S(t)的頻率;φ為信號S(t)的相位;
I(t)=Accos(φ);
(3)
Q(t)=Acsin(φ).
(4)
利用快速傅里葉變換(fast Fourier transform,FFT)算法將IQ信號轉(zhuǎn)換到頻域,其結(jié)果稱為功率譜密度(power spectral density,PSD).PSD表征單位頻率上的能量分布,是信號分析與處理中使用最廣泛的分析方法之一.如圖2所示,本文實現(xiàn)了基于離散IQ信號的功率譜密度轉(zhuǎn)化算法,步驟如下:
圖2 基于Python語言離散功率譜密度計算方法
1)初始化.設(shè)置采樣信號中心頻點、頻段范圍.
2)獲取IQ兩路正交數(shù)據(jù)(復(fù)數(shù)形式存儲).由于快速傅里葉變換中樣點數(shù)量通常是2的冪次方,因此算法中通常創(chuàng)建1 024、2 048、4 096大小的采樣樣本.
3)加窗.實際工程應(yīng)用中無法實現(xiàn)對無限長的信號進(jìn)行測量和運(yùn)算,而是取其有限時間片段進(jìn)行采樣,即加窗處理,直接對信號加矩形窗會產(chǎn)生頻率泄露.為改善頻率泄露,本文算法采用漢明窗(Hanmming),如式(5)所示,從而有效減少旁瓣,消去高頻干擾和漏能.
(5)
式中:0≤n≤N-1;a0=0.538 36.
4)快速傅里葉變換.對加窗后的IQ兩路正交數(shù)據(jù)進(jìn)行快速傅里葉變換,得到以連續(xù)幀為單位的頻譜數(shù)據(jù).離散傅里葉變換(discrete Fourier transform,DFT)如式(6)所示,將時域上采樣IQ兩路正交復(fù)數(shù)信號變換為離散時間傅里葉變換(discrete-time Fourier transform,DTFT)的頻域采樣.快速傅里葉變換是對離散傅里葉變換及其逆變換序列的一種快速計算方法,結(jié)果與離散傅里葉變換計算結(jié)果相同.
(6)
(7)
其中:
(8)
(9)
根據(jù)式(9)中G[k]、H[k]的周期性和對稱性,得到式(10),即一個N點離散傅里葉變換被分解成兩個N/2點傅里葉變換,依次類推.本文采用Cooley-Tukey FFT算法[14],以分治法為策略將離散傅里葉變換分解為兩個N/2子序列,將時域采樣的IQ信號轉(zhuǎn)換為頻域.Cooley-Tukey FFT算法同時處理由I和Q組成的樣點集合,每個集合稱為一個FFT幀,樣點數(shù)量通常是2的冪次方,為FFT的長度.Cooley-Tukey FFT算法有效地將DFT計算復(fù)雜度由O(n2)降低到O(nlogn),大大提升了運(yùn)算效率.
(10)
5)歸一化處理.FFT變換后的樣本值除以FFT窗口大小,以實現(xiàn)對采樣數(shù)據(jù)的歸一化處理.
6)轉(zhuǎn)化為功率.對幅度進(jìn)行10 log10()數(shù)學(xué)變換,轉(zhuǎn)化為功率,功率單位為dB.取對數(shù)運(yùn)算使振幅較低的成分相對高振幅成分得以拉高,以便觀察淹沒在噪聲之中的信號.
7)FFT移位調(diào)整.將負(fù)頻率至零頻點的FFT分量移位至采樣中心頻點左側(cè),得到離散功率譜密度數(shù)組.
本文提出了一種基于HTML5 Canvas和Vue2.js技術(shù)的功率譜密度可視化方法,建立了人與數(shù)據(jù)之間的圖像交互,從而將計算智能與人類智能深度融合.功率譜密度瀑布圖繪制原理圖如圖3所示,縱軸頂部為當(dāng)前時刻功率譜密度數(shù)據(jù),依次更新向下延伸,展示一段連續(xù)時間內(nèi)的信號強(qiáng)度變化.t時刻功率譜密度數(shù)組為Datapsd,數(shù)組長度為N(即FFT計算樣點數(shù)),通常為2的冪次方.
圖3 功率譜密度瀑布圖繪制原理圖
算法偽代碼如算法1所示,其中:本文采用JavaScript語言編程實現(xiàn)了文獻(xiàn)[15]中的離散數(shù)據(jù)平滑過渡算法,命名為GenerateColor方法,該方法能夠很好的通過單元色和累積步長將離散功率譜密度數(shù)組進(jìn)行平滑過渡渲染;addWaterfallRow方法利用了HTML5 Canvas本地存儲、圖形繪制的強(qiáng)大功能,擴(kuò)展Canvas API的drawImage和putImageData方法進(jìn)行編程實現(xiàn),該方法能夠很好地實現(xiàn)對離散功率譜密度數(shù)組進(jìn)行動態(tài)累加和實時無刷新渲染.與傳統(tǒng)SVG,F(xiàn)lash相比,對于Web的動畫、實時視頻處理、動態(tài)渲染和大數(shù)據(jù)繪制,具有更高實時性、穩(wěn)定性、跨平臺性和更好的用戶體驗.
算法1:功率譜密度信號瀑布圖可視化算法
Input:Datapsd:離散功率譜密度數(shù)組
RGBstart:數(shù)組最大值對應(yīng)顏色
RGBend:數(shù)組最小值對應(yīng)顏色
Canvasheight:Canvas畫布長度
Canvaswidth:Canvas畫布寬度
Initialize:createCanvasDocument(Canvaswidth,Canvasheight)
WhileWebSocket.readyStateis CONNECTINGdo
Datapsd←WebSocket.onmessage()
ifDatapsd.length!= 0 then
ifDatapsd.length!=Canvaswidththen
Step←changeCanvasSize(Datapsd.length,Canvaswidth)
end
MIN←Datapsd,MAX←Datapsd,Step←|MAX-MIN|/3
end
ColorGradient←GenerateColor(RGBstart,RGBend,Step)
forj=0←Datapsd.length-1do
colorIndex[j]←getTargetRGB(Datapsd[j],ColorGradient)
end
addWaterfallRow(colorIndex,Step)
resizeCanvas(Canvasheight,Δh)
end
圖4為本系統(tǒng)設(shè)計架構(gòu)圖,由射頻接收端、服務(wù)器端和瀏覽器端組成.射頻接收端采用中國思儀3900A系列無線監(jiān)測接收機(jī),該接收機(jī)頻率覆蓋范圍為20 MHz~6 GHz,分析帶寬20 MHz,掃頻速度最高達(dá)4 GHz/s,支持IQ數(shù)據(jù)流輸出,能夠勝任復(fù)雜多樣的信號監(jiān)測;服務(wù)器端由PC工作站和存儲設(shè)備組成,主要負(fù)責(zé)接收無線監(jiān)測接收機(jī)實時傳遞的IQ數(shù)據(jù),并通過IQ信號-功率譜密度轉(zhuǎn)化算法和WebSocket技術(shù),為服務(wù)端、瀏覽器端實時推送數(shù)據(jù);瀏覽器端以HTML5 Canvas形式,通過功率譜密度可視化方法對頻譜數(shù)據(jù)進(jìn)行實時渲染.
圖4 基于WebSocket可視化系統(tǒng)架構(gòu)圖
WebSocket是一種計算機(jī)通信協(xié)議,可通過單個TCP連接提供全雙工通信通道,并在2011年WebSocket通信協(xié)議被IETF定為標(biāo)準(zhǔn)RFC6455,該協(xié)議支持Web瀏覽器與Web服務(wù)器之間數(shù)據(jù)交互,通過較低的性能開銷,實現(xiàn)服務(wù)器端與瀏覽器端的實時數(shù)據(jù)傳輸.WebSocket協(xié)議可以在客戶端和服務(wù)器端之間進(jìn)行雙向持續(xù)對話.WebSocket協(xié)議與HTTP協(xié)議不同,但其被設(shè)計為在443和80端口工作,從而支持HTTP代理和中介.在此技術(shù)之前,想要實現(xiàn)此類雙向通信的Web應(yīng)用,需要借助Comet之類非標(biāo)準(zhǔn)化技術(shù),但是其性能和實現(xiàn)復(fù)雜度都與WebSocket協(xié)議有較大差距.如圖5所示,采用WebSocket協(xié)議進(jìn)行瀏覽器端與服務(wù)器端之間交互,比HTTP Ajax和Comet方法具有更低的時間和數(shù)據(jù)開銷,從而促進(jìn)B/S架構(gòu)服務(wù)器端的實時數(shù)據(jù)傳輸,使服務(wù)器可以在不首先請求客戶端的情況下,將IQ頻譜數(shù)據(jù)發(fā)送到客戶端,并允許消息在保持連接打開的情況下,使用非安全的WS(80端口)或安全的WSS(443端口)協(xié)議進(jìn)行雙向通信傳遞.
圖5 HTTP Ajax、Comet協(xié)議與WebSocket通信協(xié)議對比
本文使用基于Python3.6版本上的WebSocket庫構(gòu)建瀏覽器和服務(wù)器端Websocket雙向通信.Python WebSockts庫具有簡單易實現(xiàn)性、程序健壯性、代碼高質(zhì)量性、高性能等諸多優(yōu)點,能夠?qū)崿F(xiàn)IQ數(shù)據(jù)通過IQ信號-功率譜密度轉(zhuǎn)化算法后,實時、穩(wěn)定地推動到瀏覽器前端.
本文采用C++ 語言實現(xiàn)對無線監(jiān)測接收機(jī)的IQ數(shù)據(jù)實時獲取,利用Python語言編程實現(xiàn)IQ信號-功率譜密度轉(zhuǎn)化算法,得到功率譜密度數(shù)組,并通過Python Flask框架和Python WebSockets庫實現(xiàn)了功率譜密度數(shù)組到Web前端頁面實時推送.如圖6所示,本文利用HTML5 Canvas和JavaScript ES6技術(shù),以Node.js+Vue2.js構(gòu)建Web前端無線頻譜數(shù)據(jù)實時監(jiān)測系統(tǒng).
圖6(a)為Web前端可視化系統(tǒng)設(shè)計原理圖,圖形界面主要由參數(shù)面板、信號頻域圖和功率譜密度信號瀑布圖組成,參數(shù)面板可以根據(jù)用戶需求設(shè)定監(jiān)測的信號中心頻點、帶寬和頻譜分辨率.根據(jù)無線監(jiān)測接收機(jī)的硬件性能,頻譜覆蓋范圍為20 MHz~6 GHz,實時帶寬達(dá)到20 MHz,能夠勝任多種復(fù)雜信號監(jiān)測任務(wù)需求.圖6(a)中,右上部為信號頻域圖,橫軸指示了頻段范圍,縱軸指示了對應(yīng)的信號強(qiáng)度值,該信號頻域圖主要用于呈現(xiàn)被監(jiān)測頻段內(nèi)的信號強(qiáng)度的實時變化情況;右下部為功率譜密度信號瀑布圖,信號的瞬時頻率和強(qiáng)度通過1.3節(jié)功率譜密度可視化方法在該圖中進(jìn)行繪制呈現(xiàn),縱軸表示在預(yù)設(shè)的監(jiān)測頻段內(nèi)信號從當(dāng)前時刻至過去一段連續(xù)時間段內(nèi)的強(qiáng)度變化情況.圖6(b)為系統(tǒng)可視化用戶交互頁面,在動態(tài)信號監(jiān)測中,系統(tǒng)能夠很好地將時域IQ信號轉(zhuǎn)換到頻域上進(jìn)行分析.利用功率譜密度信號瀑布圖這一新思想,從頻域角度來分析和展示信號內(nèi)部規(guī)律,能夠更清晰地分析振動信號的頻率、幅值的變化情況,完整展示信號在時域、頻域及信號強(qiáng)度三個特征維度的有用信息,表述直觀,實時性好.
圖6 功率譜密度瀑布圖軟件設(shè)計與實現(xiàn)
目前,無線電管理部門已經(jīng)意識到了傳統(tǒng)無線電監(jiān)測的局限性,提出了整合網(wǎng)絡(luò)數(shù)據(jù)資源和共享為基礎(chǔ)的新一代網(wǎng)格化技術(shù),這將成為未來無線電監(jiān)測的主要發(fā)展趨勢[16].通過網(wǎng)格化監(jiān)測技術(shù),能夠?qū)Σ幻餍盘栞椛湓催M(jìn)行精確定位和實時監(jiān)測,有效提升電磁環(huán)境監(jiān)測能力[17];同時,還能對監(jiān)測頻段范圍內(nèi)不同頻點業(yè)務(wù)的頻譜占用度進(jìn)行統(tǒng)計分析,有效提升監(jiān)測范圍內(nèi)頻譜資源利用率[18-19].傳統(tǒng)監(jiān)測設(shè)備包括矢量信號分析儀、掃頻式頻譜儀等,價格昂貴,且通常情況下數(shù)據(jù)不易被外部接口讀取.與傳統(tǒng)監(jiān)測設(shè)備相比,網(wǎng)格化資源要求具備資源分布零散性、資源處理異構(gòu)性、自治性和多態(tài)性等特點.針對以上幾點,對設(shè)備應(yīng)用場景進(jìn)行設(shè)計和模式驗證.圖7(a1)和(a2)為本文搭建的固定模式下的無線監(jiān)測系統(tǒng),圖7(a1)中接收天線選用超寬頻全向接收天線,架設(shè)于蘭州交通大學(xué)圖書館右側(cè)輔樓樓頂,通過饋線與室內(nèi)3900A監(jiān)測接收機(jī)相連,實現(xiàn)無線監(jiān)測系統(tǒng)的硬件環(huán)境搭建;如圖7(a2)所示,通過筆記本終端訪問無線監(jiān)測系統(tǒng)后處理模塊,實現(xiàn)對信號的實時、有效監(jiān)測.此外,本文針對GSM頻段搭建移動模式下的無線監(jiān)測系統(tǒng),如圖7(b1)所示,接收天線選用玻璃鋼全向天線,并與GPS模塊一同置于車頂,通過饋線與車內(nèi)3900A監(jiān)測接收機(jī)相連(見圖7(b2)),完成無線監(jiān)測系統(tǒng)的硬件環(huán)境搭建,以實現(xiàn)機(jī)動靈活、快速有效地對GSM業(yè)務(wù)進(jìn)行監(jiān)測;與此同時,利用Internet互聯(lián)網(wǎng)技術(shù)和WebSocket技術(shù)將數(shù)據(jù)進(jìn)行有效回傳,實現(xiàn)異地遠(yuǎn)程實時監(jiān)測.綜上,本文構(gòu)建無線頻譜大數(shù)據(jù)實時監(jiān)測系統(tǒng)具有機(jī)動性強(qiáng)、部署快捷、資源處理異構(gòu)性、實時性高、監(jiān)測覆蓋范圍廣、成本低等諸多優(yōu)點.
圖7 固定和移動場景下無線頻譜監(jiān)測可視化系統(tǒng)實現(xiàn)
為驗證系統(tǒng)使用有效性,本文針對不同業(yè)務(wù)頻段和信號特征進(jìn)行驗證.圖8(a)為對88~108 MHz頻段進(jìn)行監(jiān)測的信號瀑布圖,該頻段是以FM調(diào)制方式為主的持續(xù)信號,隨著時間推移,信號一直存在且信號強(qiáng)度穩(wěn)定.圖8(b)為對420~426 MHz頻段進(jìn)行監(jiān)測的信號瀑布圖,該頻段包括持續(xù)信號和短時突發(fā)信號,圖中矩形框所示的短時突發(fā)信號通過頻譜圖往往較難識別,而通過信號瀑布圖可以比較清晰觀察到該類信號相關(guān)特征.圖8(c)為對430~436 MHz頻段進(jìn)行監(jiān)測的信號瀑布圖,該頻段存在LoRa等制式短時突發(fā)數(shù)傳電臺信號,通過信號瀑布圖能夠快速判別該頻段內(nèi)信號的調(diào)制類別.圖8(d)為對2 450~2 480 MHz頻段進(jìn)行監(jiān)測的信號瀑布圖,該頻段主要涵蓋4G、藍(lán)牙等寬帶業(yè)務(wù),通過信號瀑布圖能夠清晰獲取信號時頻特征和變化規(guī)律,對特定寬帶信號源的檢測提供技術(shù)支撐.綜上,通過信號瀑布圖可視化分析,能夠直觀地對信號類型進(jìn)行快速判斷和識別;專業(yè)人員能夠借助于信號瀑布圖直觀有效地對干擾信號進(jìn)行監(jiān)測和排查,有助于提升無線電頻譜資源管理效率.
圖8 不同頻段特征信號表現(xiàn)形式
電磁環(huán)境監(jiān)測是頻譜管理的基礎(chǔ).為了進(jìn)一步提高電磁環(huán)境監(jiān)測水平,及時、準(zhǔn)確地獲取頻譜監(jiān)測數(shù)據(jù),提出了一種IQ信號-功率譜密度轉(zhuǎn)化算法,充分利用無線監(jiān)測接收機(jī)頻段覆蓋范圍廣、分析帶寬大、掃頻速度快的優(yōu)點,將IQ信號數(shù)據(jù)轉(zhuǎn)化為離散功率譜密度數(shù)組;然后,為了建立人與數(shù)據(jù)之間的圖像交互,將計算智能與人類智能深度融合,提出了一種功率譜密度信號瀑布圖可視化方法,將無線監(jiān)測接收機(jī)中IQ信號數(shù)據(jù)以信號瀑布圖方式實時可視化地呈現(xiàn);最后,分析了傳統(tǒng)無線監(jiān)測的局限性和不足,針對網(wǎng)格化監(jiān)測中資源分布零散性、資源處理異構(gòu)性、自治性和多態(tài)性重要特征,采用HTML5 Canvas、WebSockets和Python Flask技術(shù)設(shè)計開發(fā)了一套無線頻譜數(shù)據(jù)實時監(jiān)測系統(tǒng).系統(tǒng)運(yùn)行結(jié)果表明:該系統(tǒng)具有前后端雙工實時通信、大并發(fā)量、大吞吐量、服務(wù)器端負(fù)載低、跨平臺、可移植性強(qiáng)、支持遠(yuǎn)程異構(gòu)網(wǎng)絡(luò)等諸多優(yōu)點,有效提升了頻譜管理人員的工作效率和分析手段,為頻譜管理和決策提供科學(xué)依據(jù).同時,該系統(tǒng)也實現(xiàn)了對全息數(shù)據(jù)的實時存儲,有效支撐了基于深度學(xué)習(xí)的信號識別分析算法的相關(guān)研究.