高 銳,閆光輝,羅 浩,嚴天峰
(1.蘭州交通大學 電子與信息工程學院,蘭州 730070;2.蘭州交通大學 甘肅省無線電監測及定位行業技術中心,蘭州 730070;3.蘭州交通大學 甘肅省高精度北斗定位技術工程實驗室,蘭州 730070;4.甘肅中醫藥大學 信息工程學院,蘭州 730000)
無線電頻譜作為無線電信息傳播的載體,對國家政治、軍事、經濟和文化發展都扮演著不可替代的重要作用,已成為國與國之間重要的戰略資源[1-2].目前,針對特定頻段的無線電頻譜資源十分有限且日趨緊張,各類違規、非法無線電臺站、黑廣播和偽基站日益猖獗,如何有效地對電磁環境進行監測、管理與分析成為一項極為重要和緊迫的任務.
目前,我國對于海量監測數據的實時處理、分析與感知能力還處于較低水平.而同相正交(in-phase and quadrature,IQ)信號包含無線電信號中的各種信息,結合多種頻譜處理方法對其進行處理與分析對無線電監測、管理起到了至關重要的作用[3].為了更好利用IQ信號數據進行分析,文獻[4]提出了信號的瀑布分析技術實現方法,說明了瀑布圖在信號分析領域的重要意義;文獻[5]在對遙測信號進行偵測時,采用信號瀑布圖方法實現了對猝發信號的快速發現和分析;文獻[6-8]基于頻譜瀑布圖,結合深度學習技術進行電磁信號智能監測與識別.另一方面,WebSocket已成為Web實時通信的最佳實踐,其具備高并發、實時、穩定和安全等諸多優點,已在許多領域中取得了良好應用.文獻[9]表明WebSocket在工業互聯網(IIOT)應用中,能夠有效解決依賴于網絡層通信的遠程數據傳輸問題,減輕網絡負擔;文獻[10]應用WebSocket技術實現車聯網實時報警系統,有效提高了推送吞吐量,降低網絡流量,大大提升了系統性能;文獻[11]基于WebSocket協議及MSE技術,有效實現了一種基于Web頁面無插件、出流快、低時延播放的視頻監控方法.
綜上,本文提出了一種IQ信號-功率譜密度轉化算法并利用Python語言編程實現,將無線電監測接收機中獲取的IQ信號數據轉化為離散功率譜密度數組;其次,為了將功率譜密度數組以信號瀑布圖方式可視化呈現,提出了一種基于HTML5 Canvas和Vue2.js技術的功率譜密度信號瀑布圖可視化方法,為無線電監測分析、干擾排查提供技術支撐;最后,采用WebSocket技術設計開發了基于B/S架構無線頻譜數據實時監測系統,實現了時域、頻域和功率譜密度信號瀑布圖的實時可視化呈現及全域數據的實時存儲.
IQ信號數據可在未經處理的情況下有效識別信號的瞬時幅度、相位和頻率三大特征,從而為信號的識別與分析提供關鍵性的數據支撐[12].如式(1)所示,信號調制通過改變正弦波的特征來編碼信息.通過式(2)數學變換,信號S(t)可以(I+jQ)復數形式進行表示.圖1(a)為信號S(t)的一個瞬時狀態在復數矢量坐標系下的映射,橫軸I(t)為其實部,縱軸Q(t)為其虛部;圖1(b)為IQ信號調制原理電路設計圖,同頻率正弦波與余弦波相位相差90°,I路信號與載波信號相乘,Q路信號與正交載波信號相乘,再將混頻后的兩路信號求和輸出,完成了矢量信號的調制.由于硬件電氣特性,實際信號在調制過程中會帶來信號誤差,為獲取高質量矢量信號,需要在硬件電路和軟件上進行誤差補償[13].

圖1 IQ信號調制原理
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信號轉換到頻域,其結果稱為功率譜密度(power spectral density,PSD).PSD表征單位頻率上的能量分布,是信號分析與處理中使用最廣泛的分析方法之一.如圖2所示,本文實現了基于離散IQ信號的功率譜密度轉化算法,步驟如下:

圖2 基于Python語言離散功率譜密度計算方法
1)初始化.設置采樣信號中心頻點、頻段范圍.
2)獲取IQ兩路正交數據(復數形式存儲).由于快速傅里葉變換中樣點數量通常是2的冪次方,因此算法中通常創建1 024、2 048、4 096大小的采樣樣本.
3)加窗.實際工程應用中無法實現對無限長的信號進行測量和運算,而是取其有限時間片段進行采樣,即加窗處理,直接對信號加矩形窗會產生頻率泄露.為改善頻率泄露,本文算法采用漢明窗(Hanmming),如式(5)所示,從而有效減少旁瓣,消去高頻干擾和漏能.
(5)
式中:0≤n≤N-1;a0=0.538 36.
4)快速傅里葉變換.對加窗后的IQ兩路正交數據進行快速傅里葉變換,得到以連續幀為單位的頻譜數據.離散傅里葉變換(discrete Fourier transform,DFT)如式(6)所示,將時域上采樣IQ兩路正交復數信號變換為離散時間傅里葉變換(discrete-time Fourier transform,DTFT)的頻域采樣.快速傅里葉變換是對離散傅里葉變換及其逆變換序列的一種快速計算方法,結果與離散傅里葉變換計算結果相同.

(6)

(7)
其中:
(8)
(9)
根據式(9)中G[k]、H[k]的周期性和對稱性,得到式(10),即一個N點離散傅里葉變換被分解成兩個N/2點傅里葉變換,依次類推.本文采用Cooley-Tukey FFT算法[14],以分治法為策略將離散傅里葉變換分解為兩個N/2子序列,將時域采樣的IQ信號轉換為頻域.Cooley-Tukey FFT算法同時處理由I和Q組成的樣點集合,每個集合稱為一個FFT幀,樣點數量通常是2的冪次方,為FFT的長度.Cooley-Tukey FFT算法有效地將DFT計算復雜度由O(n2)降低到O(nlogn),大大提升了運算效率.
(10)
5)歸一化處理.FFT變換后的樣本值除以FFT窗口大小,以實現對采樣數據的歸一化處理.
6)轉化為功率.對幅度進行10 log10()數學變換,轉化為功率,功率單位為dB.取對數運算使振幅較低的成分相對高振幅成分得以拉高,以便觀察淹沒在噪聲之中的信號.
7)FFT移位調整.將負頻率至零頻點的FFT分量移位至采樣中心頻點左側,得到離散功率譜密度數組.
本文提出了一種基于HTML5 Canvas和Vue2.js技術的功率譜密度可視化方法,建立了人與數據之間的圖像交互,從而將計算智能與人類智能深度融合.功率譜密度瀑布圖繪制原理圖如圖3所示,縱軸頂部為當前時刻功率譜密度數據,依次更新向下延伸,展示一段連續時間內的信號強度變化.t時刻功率譜密度數組為Datapsd,數組長度為N(即FFT計算樣點數),通常為2的冪次方.

圖3 功率譜密度瀑布圖繪制原理圖
算法偽代碼如算法1所示,其中:本文采用JavaScript語言編程實現了文獻[15]中的離散數據平滑過渡算法,命名為GenerateColor方法,該方法能夠很好的通過單元色和累積步長將離散功率譜密度數組進行平滑過渡渲染;addWaterfallRow方法利用了HTML5 Canvas本地存儲、圖形繪制的強大功能,擴展Canvas API的drawImage和putImageData方法進行編程實現,該方法能夠很好地實現對離散功率譜密度數組進行動態累加和實時無刷新渲染.與傳統SVG,Flash相比,對于Web的動畫、實時視頻處理、動態渲染和大數據繪制,具有更高實時性、穩定性、跨平臺性和更好的用戶體驗.
算法1:功率譜密度信號瀑布圖可視化算法
Input:Datapsd:離散功率譜密度數組
RGBstart:數組最大值對應顏色
RGBend:數組最小值對應顏色
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為本系統設計架構圖,由射頻接收端、服務器端和瀏覽器端組成.射頻接收端采用中國思儀3900A系列無線監測接收機,該接收機頻率覆蓋范圍為20 MHz~6 GHz,分析帶寬20 MHz,掃頻速度最高達4 GHz/s,支持IQ數據流輸出,能夠勝任復雜多樣的信號監測;服務器端由PC工作站和存儲設備組成,主要負責接收無線監測接收機實時傳遞的IQ數據,并通過IQ信號-功率譜密度轉化算法和WebSocket技術,為服務端、瀏覽器端實時推送數據;瀏覽器端以HTML5 Canvas形式,通過功率譜密度可視化方法對頻譜數據進行實時渲染.

圖4 基于WebSocket可視化系統架構圖
WebSocket是一種計算機通信協議,可通過單個TCP連接提供全雙工通信通道,并在2011年WebSocket通信協議被IETF定為標準RFC6455,該協議支持Web瀏覽器與Web服務器之間數據交互,通過較低的性能開銷,實現服務器端與瀏覽器端的實時數據傳輸.WebSocket協議可以在客戶端和服務器端之間進行雙向持續對話.WebSocket協議與HTTP協議不同,但其被設計為在443和80端口工作,從而支持HTTP代理和中介.在此技術之前,想要實現此類雙向通信的Web應用,需要借助Comet之類非標準化技術,但是其性能和實現復雜度都與WebSocket協議有較大差距.如圖5所示,采用WebSocket協議進行瀏覽器端與服務器端之間交互,比HTTP Ajax和Comet方法具有更低的時間和數據開銷,從而促進B/S架構服務器端的實時數據傳輸,使服務器可以在不首先請求客戶端的情況下,將IQ頻譜數據發送到客戶端,并允許消息在保持連接打開的情況下,使用非安全的WS(80端口)或安全的WSS(443端口)協議進行雙向通信傳遞.

圖5 HTTP Ajax、Comet協議與WebSocket通信協議對比
本文使用基于Python3.6版本上的WebSocket庫構建瀏覽器和服務器端Websocket雙向通信.Python WebSockts庫具有簡單易實現性、程序健壯性、代碼高質量性、高性能等諸多優點,能夠實現IQ數據通過IQ信號-功率譜密度轉化算法后,實時、穩定地推動到瀏覽器前端.
本文采用C++ 語言實現對無線監測接收機的IQ數據實時獲取,利用Python語言編程實現IQ信號-功率譜密度轉化算法,得到功率譜密度數組,并通過Python Flask框架和Python WebSockets庫實現了功率譜密度數組到Web前端頁面實時推送.如圖6所示,本文利用HTML5 Canvas和JavaScript ES6技術,以Node.js+Vue2.js構建Web前端無線頻譜數據實時監測系統.
圖6(a)為Web前端可視化系統設計原理圖,圖形界面主要由參數面板、信號頻域圖和功率譜密度信號瀑布圖組成,參數面板可以根據用戶需求設定監測的信號中心頻點、帶寬和頻譜分辨率.根據無線監測接收機的硬件性能,頻譜覆蓋范圍為20 MHz~6 GHz,實時帶寬達到20 MHz,能夠勝任多種復雜信號監測任務需求.圖6(a)中,右上部為信號頻域圖,橫軸指示了頻段范圍,縱軸指示了對應的信號強度值,該信號頻域圖主要用于呈現被監測頻段內的信號強度的實時變化情況;右下部為功率譜密度信號瀑布圖,信號的瞬時頻率和強度通過1.3節功率譜密度可視化方法在該圖中進行繪制呈現,縱軸表示在預設的監測頻段內信號從當前時刻至過去一段連續時間段內的強度變化情況.圖6(b)為系統可視化用戶交互頁面,在動態信號監測中,系統能夠很好地將時域IQ信號轉換到頻域上進行分析.利用功率譜密度信號瀑布圖這一新思想,從頻域角度來分析和展示信號內部規律,能夠更清晰地分析振動信號的頻率、幅值的變化情況,完整展示信號在時域、頻域及信號強度三個特征維度的有用信息,表述直觀,實時性好.

圖6 功率譜密度瀑布圖軟件設計與實現
目前,無線電管理部門已經意識到了傳統無線電監測的局限性,提出了整合網絡數據資源和共享為基礎的新一代網格化技術,這將成為未來無線電監測的主要發展趨勢[16].通過網格化監測技術,能夠對不明信號輻射源進行精確定位和實時監測,有效提升電磁環境監測能力[17];同時,還能對監測頻段范圍內不同頻點業務的頻譜占用度進行統計分析,有效提升監測范圍內頻譜資源利用率[18-19].傳統監測設備包括矢量信號分析儀、掃頻式頻譜儀等,價格昂貴,且通常情況下數據不易被外部接口讀取.與傳統監測設備相比,網格化資源要求具備資源分布零散性、資源處理異構性、自治性和多態性等特點.針對以上幾點,對設備應用場景進行設計和模式驗證.圖7(a1)和(a2)為本文搭建的固定模式下的無線監測系統,圖7(a1)中接收天線選用超寬頻全向接收天線,架設于蘭州交通大學圖書館右側輔樓樓頂,通過饋線與室內3900A監測接收機相連,實現無線監測系統的硬件環境搭建;如圖7(a2)所示,通過筆記本終端訪問無線監測系統后處理模塊,實現對信號的實時、有效監測.此外,本文針對GSM頻段搭建移動模式下的無線監測系統,如圖7(b1)所示,接收天線選用玻璃鋼全向天線,并與GPS模塊一同置于車頂,通過饋線與車內3900A監測接收機相連(見圖7(b2)),完成無線監測系統的硬件環境搭建,以實現機動靈活、快速有效地對GSM業務進行監測;與此同時,利用Internet互聯網技術和WebSocket技術將數據進行有效回傳,實現異地遠程實時監測.綜上,本文構建無線頻譜大數據實時監測系統具有機動性強、部署快捷、資源處理異構性、實時性高、監測覆蓋范圍廣、成本低等諸多優點.

圖7 固定和移動場景下無線頻譜監測可視化系統實現
為驗證系統使用有效性,本文針對不同業務頻段和信號特征進行驗證.圖8(a)為對88~108 MHz頻段進行監測的信號瀑布圖,該頻段是以FM調制方式為主的持續信號,隨著時間推移,信號一直存在且信號強度穩定.圖8(b)為對420~426 MHz頻段進行監測的信號瀑布圖,該頻段包括持續信號和短時突發信號,圖中矩形框所示的短時突發信號通過頻譜圖往往較難識別,而通過信號瀑布圖可以比較清晰觀察到該類信號相關特征.圖8(c)為對430~436 MHz頻段進行監測的信號瀑布圖,該頻段存在LoRa等制式短時突發數傳電臺信號,通過信號瀑布圖能夠快速判別該頻段內信號的調制類別.圖8(d)為對2 450~2 480 MHz頻段進行監測的信號瀑布圖,該頻段主要涵蓋4G、藍牙等寬帶業務,通過信號瀑布圖能夠清晰獲取信號時頻特征和變化規律,對特定寬帶信號源的檢測提供技術支撐.綜上,通過信號瀑布圖可視化分析,能夠直觀地對信號類型進行快速判斷和識別;專業人員能夠借助于信號瀑布圖直觀有效地對干擾信號進行監測和排查,有助于提升無線電頻譜資源管理效率.

圖8 不同頻段特征信號表現形式
電磁環境監測是頻譜管理的基礎.為了進一步提高電磁環境監測水平,及時、準確地獲取頻譜監測數據,提出了一種IQ信號-功率譜密度轉化算法,充分利用無線監測接收機頻段覆蓋范圍廣、分析帶寬大、掃頻速度快的優點,將IQ信號數據轉化為離散功率譜密度數組;然后,為了建立人與數據之間的圖像交互,將計算智能與人類智能深度融合,提出了一種功率譜密度信號瀑布圖可視化方法,將無線監測接收機中IQ信號數據以信號瀑布圖方式實時可視化地呈現;最后,分析了傳統無線監測的局限性和不足,針對網格化監測中資源分布零散性、資源處理異構性、自治性和多態性重要特征,采用HTML5 Canvas、WebSockets和Python Flask技術設計開發了一套無線頻譜數據實時監測系統.系統運行結果表明:該系統具有前后端雙工實時通信、大并發量、大吞吐量、服務器端負載低、跨平臺、可移植性強、支持遠程異構網絡等諸多優點,有效提升了頻譜管理人員的工作效率和分析手段,為頻譜管理和決策提供科學依據.同時,該系統也實現了對全息數據的實時存儲,有效支撐了基于深度學習的信號識別分析算法的相關研究.