為了從無線電信號中獲取對方的信息而對通信信號進行搜索、截獲、測量、分析、識別、監視以及對輻射源測向和定位,以獲取其技術參數、功能、類型、位置和用途而構成的系統,稱為無線偵察接收機系統。其中計算機軟件系統是整個偵察接收機系統的重要組成部分,本系統中軟件和硬件之間的數據傳輸是依靠網絡進行的。
本文在分析網絡無線偵察接收機軟件系統框架的基礎上,結合wxWidgets庫給出如何設計用戶界面、如何利用wxMathPlot對接收到的數據進行畫圖、信號處理的基本方法,重點分析了如何解決網絡接收數據時可能出現的“粘包”問題,最后給出了軟件運行效果。
1 網絡無線偵察接收機軟件系統總體設計
網絡無線偵察接收機的總體設計如圖1所示。硬件系統采集到的數據通過網絡采用TCP/IP協議傳送給信號實時顯示系統。整個軟件系統主要由以下幾個模塊組成:網絡模塊、GUI模塊、信號處理模塊、畫圖模塊、存儲模塊。其中網絡模塊主要負責接收硬件發送的數據;GUI模塊則負責與用戶的交互;信號處理模塊則主要負責對采集到的信號進行一定的處理,如功率譜估計、解調等;畫圖模塊則需要將網絡收到的數據實時顯示在用戶界面;存儲模塊則負責將收到的數據存儲在電腦磁盤。其中GUI模塊是整個軟件系統的核心,其余各模塊之間的信息傳遞則是通過GUI模塊,GUI模塊相當于一個信息中轉站。

目前支持C++進行GUI開發的軟件包很多,主流的包括wxWidgets、MFC、QT等等。和其他GUI開發庫相比,wxWidgets擁有豐富的并且開源組件,可以吸引眾多人士對其進行改進,對其不斷擴充和發展;為其所支持的各種平臺提供幾乎一致的GUI應用程序接口(API)。程序從一個平臺換到另一個運行,只需要重新編譯,鏈接相應的庫文件即可。它提供了一個與平臺無關的framework,所以程序設計時選用wxWidgets-2.8.0庫進行GUI開發,編譯工具使用的是codeblocks8.02。
2 關鍵模塊設計
2.1 GUI模塊的設計
Win32程序的main函數代表程序運行起點,對于wxWidgets程序,整個程序的執行即主線程開始啟動,是從建立一個wxApp類的對象并調用其類成員函數OnInit()函數開始的。OnInit()函數中需要完成的工作則是創建程序窗口的實例。程序中使用的頂層窗口是從wxFrame(一個可以容納其他窗口和控件的頂層窗口,通常擁有標題欄和菜單欄)派生出來的。

2.2 畫圖模塊的設計
信號處理的結果需要在界面上顯示出來,如頻譜圖,星座圖等。
wxMathPlot是一個用來畫二維曲線的圖形庫。系統中主要使用該庫繪制一些分析曲線,向用戶展示分析結果(如頻譜圖)。wxMathPlot采用的也是類繼承的方式。坐標軸和曲線都是以Layer的方式疊加在畫圖窗上的。


2.3 信號處理模塊的設計
為了了解信號各頻率成分的構成情況,對網絡收到的硬件采集的數據進行功率譜估計。估計方法包括經典功率譜估計和現代功率譜估計方法。系統中使用的主要是經典功率譜估計,其中又包括周期圖法和BT法,下面簡要介紹一下周期圖法計算功率譜的計算步驟:

其中步驟1)是指取觀測樣本的N個值對其進行N點的傅里葉變換,得到的結果UN(ω),步驟2)中對UN(ω)模的平方是確定信號uN(ω)的能量譜,對能量譜除以持續時間N,其結果是對uN(n)的功率譜估計。
2.4 網絡模塊的設計
網絡模塊是基于TCP/IP協議采用C/S通信模型完成的。在C/S模型中,PC屬于客戶端(Client),而硬件屬于服務器端(Server)。由用戶在界面上設置連接硬件所需要的IP地址和端口號,PC端主動向硬件發起連接。連接建立以后,PC通過以太網接收硬件采集的數據。圖2展示了C/S通信模型的實現框架。

實際上,在網絡中傳送的數據都被分割成包(packet)的形式進行傳送。在進行客戶端程序開發的時候,出現“粘包”問題。“粘包”指的是發送方發送的若干個數據包到接收方時都粘在一起。圖3(a)~(d)分別展示PC接收到各種粘包的情況。引起“粘包問題”的原因主要包括以下兩個:1)發送端:TCP為了提高傳輸效率,如果發送方發送的數據包很小,TCP不會立即將該數據包發送出去,而是等收集到足夠多的數據,將幾個數據包合成一個包才發送出去;2)客戶端:接收方用戶進程沒有及時處理接收到的數據,即下一包數據到達時前一包數據尚未被用戶進程取走,則下一包數據則放在前一包數據之后。

為了解決“粘包”問題,Client和Server端約定好發送數據包的格式如圖4所示。

當PC端收到“粘包”時,首先經過預處理過程——解包,將粘在一起的包分成獨立的數據包,并將每個數據包中的數據取出依次拷貝到pool中分配的緩沖區中。
預處理過程構造類PaeketBuilder,該類的具體設計如下。

3 軟件運行效果
網絡無線偵察接收機軟件系統可實時監測頻率范圍為頻率范圍20~3 000 MHz的信號,且對實時監測的信號進行分析和處理:主要包括電平、場強、頻差、頻偏、調制度、帶寬等技術參數的測量。其中頻率測量精度為1x10-7,頻率分辨率為1 Hz。并且當系統處于掃描模式下,存儲掃描速度≥700信道/秒,連續頻率掃描速度>6 GHz/秒,可選步進可從125 Hz到100 kHz。該系統可智能地處理多個同時被調度的監測任務,實現多任務并發監測。該系統具有自學習能力,可在無人值守條件下完成智能化自動化監測任務。
系統的界面如圖5所示,界面從上到下依次是標題欄、菜單欄、工具欄;界面的下方左邊部分是信號處理參數配置面板,右邊部分主要用來顯示各種信號處理的結果,圖5當前展示的就是功率譜估計結果顯示窗,窗口顯示的是信號的頻譜圖。目前,該系統可以正常接收硬件發送的信號,并從中提取出其技術參數如調制方式、調制度、頻率、帶寬等。

4 結束語
信號實時處理顯示軟件系統滿足ITU建議的規范要求,兼容無線電監測網傳輸協議(RMTP),通過網絡接收硬件采集的無線電信號,從而達到實時監測、測量和存儲無線電信號的目的。該軟件系統具有固定頻率監測和掃描頻率兩種工作模式,實現了對無線電信號的頻譜分析。通過該軟件系統的實施,為進一步實現兼容無線電監測網傳輸(RMTP)協議的網絡化智能無線頻譜監測偵收系統以及產業化做好準備。整個軟件系統的分析設計過程均采用面向對象方法實現,借助于模塊設計和面對對象編程思想使類與類之間的內聚性增強,耦合性減弱,提高了系統的可重用性和擴展性。
