摘 要: 結合GIS技術,利用軟件算法完成對數傳電臺信號的中頻及基帶處理,通過解析電臺地址碼完成對數傳電臺頻點使用情況的監測,分析電臺經緯度信息、統計電臺數量,并在電子地圖上實時顯示已定位電臺位置。
關鍵詞: 數傳電臺;監測;經緯度;GIS
近年來隨著我國無線電業務發展,頻率資源使用極為緊張。為有效利用無線電資源,通過對無線數傳電臺的使用情況進行監測分析,本文提出一種基于軟件無線電和GIS系統的數傳電臺監測系統設計,利用Visual C++6.0與MapX在Windows XP操作系統進行軟件開發,結合硬件實現對數傳電臺占用頻率、使用數量的實時監測,并建立組網數傳電臺數據庫。
1 系統總體結構
數傳電臺監測系統在Visual C++6.0開發環境下利用MFC進行程序開發,在此環境中編寫事件代碼對硬件進行控制,并對MapInfo公司的MapX工具進行二次開發,提供了良好的人機交互界面。
本數傳電臺監測系統主要由7個模塊組成:數據收集模塊、數據處理模塊、數據庫交互模塊、解碼模塊、地址碼分析模塊、電臺定位模塊及電子地圖繪圖模塊,其系統框圖如圖1所示。首先通過數據采集模塊把設備上取到的數據存入系統緩存,對數據進行二次處理。然后把經緯度、信號強度等數據存入數據庫,由數據庫交互模塊對其進行管理。而電壓數據由解碼模塊進行解析,解析后得到的碼元信息通過地址碼分析模塊得到電臺地址碼。通過電臺定位模塊對其分析后,將得到的電臺經緯度數據交付繪圖模塊,從而在電子地圖上直觀地顯示電臺位置,同時電子地圖還可顯示監測系統所在位置。
2 硬件設計
我國數傳電臺工作頻率主要分布在230 MHz(223.025 MHz~235.000 MHz)頻段,采用的調制方式多為MSK方式。考慮到數傳電臺無線信號的高頻、隨機特點,擬驅車采集分析信號。本系統采用工控計算機對各硬件進行控制,由無線接收機[1-2]獲取高頻信號,將信號通過選頻電路進行放大濾波后,由采集卡對其進行采樣以進行下一步處理。另外,利用GPS接收機來定位車輛行駛位置及經緯度數據,硬件模塊組成如圖2所示。
3 數據接收采集
本系統設計需要收集的數據包括無線信號數據和經緯度數據。經緯度數據的接收選用Holux GR213智慧衛星接收機,通過串口控件指令操作計算機即可實現GPS數據的接收存儲。
無線信號的接收存儲相對復雜,包括接收、采樣2個步驟。(1)接收方面,選用萬瑞公司的WR-G315寬頻段接收模塊來接收無線信號。G315主要技術指標為:軟件DSP解調,頻率接收范圍9 kHz~1 800 MHz,接口兼容PCI及USB。該接收機的頻率范圍可滿足對數傳電臺230 MHz頻段信號的接收,且其10.7 MHz中頻輸出使信號已實現了1次降頻,其PCI接口使工控計算機可通過軟件語言調用動態鏈接庫函數來控制接收機的工作。(2)采樣方面,本設計選用阿爾泰公司基于PCI總線結構的PCI8001高性能數據采集卡對中頻信號進行采樣存儲。其基本技術指標為:32 bit PCI總線接口,最高40 MS/s采樣速率,12 bit AD分辨率,采樣頻率可編程設定。同樣,該采集卡的PCI接口使工控計算機可方便地通過軟件命令直接對其工作方式進行操作,而且高采樣頻率充分滿足了對中頻信號的采樣,從采集卡得到的數據需進行二次加工、轉換,才可供程序使用。
對采集卡采樣頻率的設置決定了后續程序處理數據的工作量大小,若按照奈奎斯特采樣定理[3],采樣頻率至少為10.7 MHz×2=21.4 MHz,這樣的采樣率會造成數據處理的工作量非常巨大,考慮到數傳電臺工作帶寬僅為25 kHz,由欠采樣理論[4]可知:
其中fs為采樣頻率,f0是信號的載波,B為信號的帶寬,m=1,2,3…。欠采樣方式以大于2倍信號帶寬的速率對帶通信號進行采樣,與傳統的奈奎斯特采樣原理相比,在很大程度上降低了采樣后的數據量。對于載波頻率為10.7 MHz的信號,可取m=15,采樣頻率fs=1.38 MHz。
4 信號選頻濾波電路
由于WR-G315寬頻段接收模塊輸出的中頻信號比較微弱,幅值范圍為-40 mV~+40 mV,信號帶寬為2 MHz。這樣微弱的信號很容易與噪聲混淆在一起,而且其帶寬遠大于數傳電臺工作帶寬,若按照1.38 MHz采樣則會出現嚴重的混頻。基于這樣的考慮,在無線接收機中頻輸出端與數據采集卡通道之間添加1個信號選頻濾波電路[5],對無線接收機中頻輸出信號進行放大濾波,其電路如圖3所示。經LeCroy Wave Sufer 434示波器測量:從選頻濾波電路輸出的信號幅值范圍為:-1.2 V~+1.2 V,而其帶寬降至500 kHz。
5 軟件設計
系統軟件采用VC++6.0在Windows XP環境下進行開發,用MFC開發用戶操作軟件界面,利用C++語言編寫主程序。為了直觀地觀察電臺監測情況,在界面中調用MapX軟件實時顯示信號采集車及數傳電臺的地理位置,并采用ADO技術結合Access數據庫存儲數據信息。軟件由主程序及3條線程組成,如圖4所示。
程序啟動后,首先進行硬件初始化。對于WRG315接收機可通過顯示連接的方式實現:
typedef int(__stdcall *FNCOpenRadioDevice)(int iDeviceNum);//聲明
HMODULE dll=LoadLibrary(“wrg315api.dll”);
//裝載動態連接庫
FNCOpenRadioDevice OpenRadioDevice=(FNCOpenRadioDevice)
GetProcAddress(dll,“OpenRadioDevice”);
//鏈接API函數
int hRadio=OpenRadioDevice(0);//打開 WRG315
PCI8001采集卡則由隱式連接方式實現硬件管理,在StdAfx.h全局頭文件中用包含語句:#include “PCI8001.H”來實現。
由如下語句進行初始化:
hDevice=PCI8001_CreateDevice(DeviceID);
//創建設備對象
PCI8001_InitDeviceAD(hDevice,&ADPara);
//初始化設備對象
硬件準備好后,程序配置軟件窗口界面,界面主要分割為2個窗口:view類型和form類型。在view窗口中利用菜單調入MapX工具[6],通過接收經緯度數據,在地圖上描繪信號采集車及數傳電臺地理位置;在form版面上設置各種按鈕控件,并編寫數據采集過程及參數設置的控制代碼,添加MSCOMM控件,通過控制串口接收GPS的經緯度信息。
單擊界面中的“開始監測”按鈕,將啟動3條線程。線程1負責將GPS接收到的監測車經緯度數據存入數據庫,以供其他線程計算調用;線程2負責每隔一段時間從數據庫中讀取監測車經緯度數據及電臺經緯度數據,由MapX工具繪制行車采集軌跡及監測得到的電臺位置;線程3為程序設計的重點,其流程圖如圖5所示。
啟動線程3后,監測流程如下:(1)首先通過軟件語言設置硬件參數,依據對信號強度的判斷,將有效數據存入程序全局數組中;(2)通過對采樣數據周期長度的方差計算,可判定信號的波特率;(3)解調模塊根據波特率的大小對數據進行相應的處理;(4)參照數傳電臺傳輸P協議中的選址模式數據格式,對解調后的數據信息進行數據幀分析,解碼得到數傳電臺地址碼;(5)由電臺定位模塊根據相同地址碼的若干組對信號強度和監測車經緯度數據分析得到電臺地理位置經緯度,并存入電臺經緯度全局變量中,以供線程2讀取數據。
3條線程的數據通信由數據庫交互模塊進行控制,并配合使用SetTimer、OnTimer函數[7]滿足程序中各線程對數據資源的讀寫,實現電臺信號和經緯度數據的存儲、查詢,以及電臺和監測車經緯度數據到電子地圖的調用輸出,從而直觀地在電子地圖上顯示監測車系統和電臺地理位置。
通過研究實驗,本系統能夠在信號速率為1 200/2 400 b/s,編碼方式為曼徹斯特、差分曼徹斯特情況下,成功地對MSK信號的速率、電臺地址碼、電臺位置等進行監測識別。而對于GMSK、QPSK等調制方式數傳電臺信號的識別有待進一步深入的研究。
參考文獻
[1] 張正明.多普勒頻率差定位技術研究[J].西安電子科技大學學報,2000,27(6):786-790.
[2] 杜龍先.單信道相關干涉儀測向原理[J].中國無線電管理,2000(1):41-42.
[3] 樊昌信,張甫翔,徐炳祥,等.通信原理[M].北京:國防工業出版社,2003.
[4] 吳丹,顧學邁,吳芝路.基于軟件無線電的數字化接收機的研究[J].電子技術應用,2005,31(9):46-48.
[5] 高嵩,王鐵流,賽景波,等.遠程家庭心電監護終端[J].電子產品世界,2008(8):135-139.
[6] 劉光.地理信息系統二次開發教程[M].北京:清華大學出版社,2003.
[7] 宋坤,劉銳寧,李緯明.Visual C++開發技術大全[M].北京:人民郵電出版社,2007.