蔣 強(qiáng),韓淑娟,錢 博,馮永新
(沈陽理工大學(xué) 通信與網(wǎng)絡(luò)工程中心,沈陽 110159)
?
一種跳頻數(shù)據(jù)鏈通信仿真軟件的設(shè)計與實現(xiàn)方法
蔣強(qiáng),韓淑娟,錢博,馮永新
(沈陽理工大學(xué) 通信與網(wǎng)絡(luò)工程中心,沈陽 110159)
在深入研究跳頻數(shù)據(jù)鏈通信機(jī)理的基礎(chǔ)上,結(jié)合VC++良好用戶界面開發(fā)和Matlab強(qiáng)大數(shù)值計算的優(yōu)勢,基于Matlab Engine和MATCOM函數(shù)相結(jié)合方式,設(shè)計了跳頻數(shù)據(jù)鏈通信仿真軟件,實現(xiàn)了通信過程。采用分割窗口的方法,利用VC控件的交互,通過參數(shù)的傳遞和仿真控制的設(shè)置,仿真跳頻數(shù)據(jù)鏈通信信號產(chǎn)生、傳輸和接收功能,分析不同調(diào)制方式和不同參數(shù)配置下的通信性能,并重點分析不同調(diào)制方式下解調(diào)信號的誤碼率,為設(shè)計具有更優(yōu)性能的跳頻數(shù)據(jù)鏈提供仿真環(huán)境。
跳頻數(shù)據(jù)鏈;MATCOM;Matlab Engine;混合編程
數(shù)據(jù)鏈?zhǔn)且环N集通信、導(dǎo)航和識別于一體的綜合化戰(zhàn)場信息系統(tǒng),是信息化作戰(zhàn)中各種作戰(zhàn)平臺與網(wǎng)絡(luò)互聯(lián)及信息業(yè)務(wù)互通的基礎(chǔ)[1]。由于跳頻通信具有優(yōu)良的抗干擾、抗衰落和抗多徑性能以及頻譜利用率高、多址通信等諸多優(yōu)點[2],因此跳頻技術(shù)在數(shù)據(jù)鏈系統(tǒng)中得到越來越廣泛的應(yīng)用。目前主要從數(shù)據(jù)鏈鏈路和數(shù)據(jù)鏈信號等方面對數(shù)據(jù)鏈進(jìn)行仿真研究,基于OPNET和QualNet等網(wǎng)絡(luò)仿真平臺,對數(shù)據(jù)鏈鏈路仿真方面的研究已經(jīng)十分成熟,對數(shù)據(jù)鏈信號方面仿真研究還相對較單一。
現(xiàn)階段的數(shù)據(jù)鏈信號仿真主要基于Matlab/Simulink軟件為仿真平臺,如楊光等人基于該平臺對JTIDS通信系統(tǒng)進(jìn)行系統(tǒng)設(shè)計、仿真演示及抗干擾性能分析[3];以及李秀坤等人對猝發(fā)數(shù)據(jù)鏈系統(tǒng)的模型進(jìn)行構(gòu)建,并在此平臺下得到不同輸入信號強(qiáng)度下信噪比與捕獲概率的關(guān)系[4]。Matlab/Simulink軟件具有對多種信號處理的工具箱,支持可視化建模,對模塊的構(gòu)建和重用可以提供良好的支持[5]。然而Matlab/Simulink仿真平臺在數(shù)據(jù)的可交互性和實時性方面存在不足,不利于通過修改數(shù)據(jù)鏈參數(shù)來分析跳頻數(shù)據(jù)鏈通信性能,而 VC++具有良好的界面開發(fā)以及強(qiáng)大的數(shù)據(jù)交互能力和實時傳輸能力。
因此,本文在研究跳頻數(shù)據(jù)鏈通信機(jī)理基礎(chǔ)上,結(jié)合VC++與Matlab的優(yōu)勢,提出以Matlab Engine和MATCOM結(jié)合的方式,實現(xiàn)跳頻數(shù)據(jù)鏈通信的仿真。對跳頻數(shù)據(jù)鏈通信信號產(chǎn)生、傳輸和接收功能進(jìn)行仿真,對不同調(diào)制方式和不同參數(shù)配置下的通信性能進(jìn)行分析,為設(shè)計具有更優(yōu)性能的跳頻數(shù)據(jù)鏈提供仿真環(huán)境。
跳頻體制數(shù)據(jù)鏈通信主要可分為發(fā)射系統(tǒng)和接收系統(tǒng)兩部分,其原理框圖分別如圖1、2所示。
圖1 跳頻通信發(fā)射系統(tǒng)原理圖
圖2 跳頻通信接收系統(tǒng)原理圖
跳頻體制數(shù)據(jù)鏈通信機(jī)理是發(fā)送方將待發(fā)送的數(shù)據(jù)進(jìn)行調(diào)制,然后對調(diào)制后的信號進(jìn)行混頻處理,混頻的頻率通過偽隨機(jī)碼控制的頻率合成器生成。對混頻后的信號進(jìn)行濾波處理后即可生成跳頻信號,最終將跳頻信號通過發(fā)射器發(fā)射出去。接收系統(tǒng)中將產(chǎn)生與發(fā)射端頻率合成器相同跳變規(guī)律的本地信號,將本地信號與接收信號進(jìn)行混頻處理可實現(xiàn)解跳,將解跳后的中頻信號經(jīng)放大器處理后送至解調(diào)器,最終可恢復(fù)原始的基帶信號。本文在跳頻體制數(shù)據(jù)鏈信號產(chǎn)生機(jī)理、傳輸機(jī)理、接收機(jī)理和抗干擾特性原理的基礎(chǔ)上,以Matlab為后臺進(jìn)行數(shù)據(jù)處理,以VC++為前臺進(jìn)行界面設(shè)計,構(gòu)建跳頻體制數(shù)據(jù)鏈通信仿真模型。
2.1功能設(shè)計
通過對跳頻數(shù)據(jù)鏈通信機(jī)理的研究,確立跳頻數(shù)據(jù)鏈通信仿真軟件包含的功能,見表1。
表1 跳頻數(shù)據(jù)鏈通信功能設(shè)計
跳頻數(shù)據(jù)鏈的仿真參數(shù):隨機(jī)碼選擇的是M序列,跳頻數(shù)據(jù)鏈的跳駐留時間為6.4μs、跳時間間隔為6.6μs、跳速為76923hop/s,采樣頻率、中頻頻率、調(diào)制方式由m函數(shù)的參數(shù)傳遞到界面中,可以通過修改界面參數(shù),來分析參數(shù)對跳頻數(shù)據(jù)鏈通信性能的影響。其中調(diào)制方式通過下拉菜單可以選擇BPSK、QPSK、CPFSK。
接收端在界面設(shè)計中采用分割窗口的方法,通過對比分析來完成跳頻數(shù)據(jù)鏈信號的捕獲跟蹤和解調(diào)。
收發(fā)控制在界面設(shè)計中通過啟動線程按鈕來解決Matlab Engine方式和MATCOM方式?jīng)_突問題,在啟動線程按鈕的響應(yīng)函數(shù)中起一個線程,把Matlab Engine方式調(diào)用m文件的實現(xiàn)放在線程函數(shù)中。通過暫停線程按鈕來控制Matlab Engine方式是恢復(fù)調(diào)用m文件還是暫停調(diào)用m文件,并通過顯示圖形按鈕來顯示跳頻數(shù)據(jù)鏈參數(shù)以及從產(chǎn)生到接收信號的圖。
2.2交互接口設(shè)計
Matlab與VC++有多種接口方法,常用的方法有Matlab Engine方式、Matlab自帶編譯器MCC方式、MATCOM方式,利用COM Builder工具制作COM組件的方式等[6-9]。這四接口方法各有優(yōu)缺點,見表2,根據(jù)實際需要選擇合適的接口方法。
表2 Matlab Engine至MATCOM方法的優(yōu)缺點
在上述現(xiàn)有的Matlab與Visual C++混合編程方法原理及優(yōu)缺點的基礎(chǔ)上,根據(jù)跳頻數(shù)據(jù)鏈通信機(jī)理的實際情況,本文提出以Matlab Engine方式和MATCOM方式相結(jié)合,來實現(xiàn)跳頻數(shù)據(jù)鏈通信的仿真。
2.2.1Matlab Engine方式
Matlab Engine采用客戶機(jī)/服務(wù)器 (Client/Server) 的方式,提供了一組 Matlab API 函數(shù),通過調(diào)用這些函數(shù)實現(xiàn)程序進(jìn)程之間的數(shù)據(jù)傳遞[7]。VC 程序作為前端客戶機(jī),向 Matlab引擎?zhèn)鬟f命令和數(shù)據(jù),并從 Matlab 引擎接收數(shù)據(jù)信息,實現(xiàn)動態(tài)通信。調(diào)用Matlab引擎函數(shù)的實質(zhì)是將Matlab當(dāng)作一個ActiveX服務(wù)器,并建立ActiveX通道,然后將命令或函數(shù)通過ActiveX通道發(fā)給Matlab,由Matlab在后臺執(zhí)行,應(yīng)用程序調(diào)用Matlab引擎函數(shù)如圖3所示。
圖3 Matlab引擎函數(shù)調(diào)用原理
2.2.2MATCOM方式
MATCOM作為接口有兩種實現(xiàn)方法[8]:第一種是使用MATCOM(MIDEVA)將.m源文件翻譯為.cpp代碼,并編譯為.exe或.dll文件;第二種方式是把matcom45安裝目錄下的lib目錄下的matlib.h,v4501v.lib文件和系統(tǒng)目錄WINDOWSsystem32下的ago4501.dll、v4501v.dll文件拷貝到VC++應(yīng)用程序的目錄下,就可以直接調(diào)用MATCOM 函數(shù),函數(shù)的定義在 matlib.h 當(dāng)中。
2.2.3Matlab Engine和MATCOM函數(shù)相結(jié)合原理
由于MATCOM在將比較復(fù)雜的,多個嵌套調(diào)用的Matlab的m文件譯成同等功能的C++源代碼時,容易出錯、難以調(diào)試;而Matlab Engine可以調(diào)用復(fù)雜的Matlab程序,應(yīng)用程序整體性能好。結(jié)合這兩種接口的特點,本文提出用Matlab Engine調(diào)用m函數(shù),用MATCOM函數(shù)加載.mat文件,來實現(xiàn)Matlab與VC的交互。
2.3界面設(shè)計
首先對MATCOM方式和Matlab Engine方式集成到VC中進(jìn)行相應(yīng)的配置,然后根據(jù)跳頻數(shù)據(jù)鏈的通信機(jī)理對應(yīng)用程序界面整體結(jié)構(gòu)進(jìn)行設(shè)計,整體結(jié)構(gòu)設(shè)計如圖4所示。
圖4 跳頻數(shù)據(jù)鏈通信界面設(shè)計
2.4軟件設(shè)計實現(xiàn)
在Matlab Engine 和MATCOM函數(shù)相結(jié)合原理的基礎(chǔ)上,設(shè)計程序流程如圖5所示。
根據(jù)整個程序流程具體的操作步驟如下:
Step1:運行VC應(yīng)用程序,在界面中對跳頻數(shù)據(jù)鏈參數(shù)進(jìn)行設(shè)置;
Step2:啟動線程按鈕,在線程函數(shù)中實現(xiàn)Matlab Engine方式調(diào)用m函數(shù);
Step3:在顯示圖形按鈕中完成Matcom函數(shù)對.mat文件的加載,并顯示圖形;
Step4:如果需要修改參數(shù),轉(zhuǎn)到Step1處,來顯示不同的圖形,否則結(jié)束整個仿真過程。
圖5 程序設(shè)計流程圖
運行VC應(yīng)用程序,在跳頻數(shù)據(jù)鏈仿真參數(shù)中,輸入隨機(jī)碼類型為M序列,中頻頻率是75.25MHz,采樣頻率是15.05GHz,調(diào)制方式選擇CPFSK,跳駐留時間是6.4us,跳時間間隔是6.6us,跳周期是13us,跳頻速率是76923hop/s。點擊啟動線程按鈕和顯示圖形按鈕,如圖6所示。
圖6 跳頻數(shù)據(jù)鏈通信界面圖
從圖6可以看出,此仿真軟件有效地完成了發(fā)送端跳頻數(shù)據(jù)鏈信號產(chǎn)生功能,其中包括CPFSK調(diào)制信號、上變頻信號、五跳跳頻信號時頻域的產(chǎn)生。
從圖6可以看出,此仿真軟件有效的完成了接收端跳頻數(shù)據(jù)鏈信號的捕獲、跟蹤、解調(diào)功能。其中包括滑動相關(guān)粗捕獲、精捕獲,鎖相環(huán)路跟蹤,接收信號與本地信號的混頻、濾波、解調(diào)。
當(dāng)選擇BPSK、QPSK調(diào)制方式時,調(diào)制信號的圖如圖7所示。
圖7 BPSK、QPSK調(diào)制信號局部圖
當(dāng)選擇調(diào)制方式為BPSK時,從圖7可以看出,跳頻數(shù)據(jù)鏈信號相位在π處有跳變,當(dāng)選擇調(diào)制方式為QPSK時,從圖7可以看出,跳頻數(shù)據(jù)鏈信號相位在π/4處有跳變,驗證了當(dāng)選擇不同的調(diào)制方式時,此仿真軟件同樣能夠完成跳頻數(shù)據(jù)鏈通信信號的產(chǎn)生、傳輸、接收功能。
當(dāng)采樣頻率增大1.5倍時,得到不同調(diào)制方式下的誤碼率結(jié)果如圖8所示。
圖8 不同調(diào)制方式下的誤碼率圖
從圖8可以看出,當(dāng)增大采樣頻率時,在信噪比為-20dB時,調(diào)制方式為BPSK、QPSK時,解調(diào)信號的誤碼率大約從9%降低到3.7%,調(diào)制方式為CPFSK時,解調(diào)信號的誤碼率大約從1%降低到0.4%。三種調(diào)制方式下的誤碼率都有所改善,CPFSK為最優(yōu)。
此仿真軟件完成了對跳頻數(shù)據(jù)鏈通信信號產(chǎn)生、傳輸和接收功能,在不同參數(shù)配置下,在不同調(diào)制方式下,跳頻數(shù)據(jù)鏈通信性能是不同的,驗證了此仿真軟件為設(shè)計出更優(yōu)性能的跳頻數(shù)據(jù)鏈提供仿真環(huán)境,同時驗證了此仿真軟件相比Simulink,實時性和交互性更強(qiáng)。
在研究跳頻數(shù)據(jù)鏈通信機(jī)理的基礎(chǔ)上,以Matlab Engine和MATCOM函數(shù)相結(jié)合的方式構(gòu)建跳頻數(shù)據(jù)鏈通信仿真模型,通過參數(shù)配置和選擇不同的調(diào)制方式,采用分割窗口的方法,驗證了此仿真軟件能夠有效完成跳頻數(shù)據(jù)鏈通信信號的產(chǎn)生、傳輸、接收功能。同時克服了MATCOM方式在將比較復(fù)雜的、多個嵌套的m文件譯成同等功能的C++源代碼時,容易出錯、難以調(diào)試的缺點,并且相比Matlab的GUI,此仿真軟件通過參數(shù)的傳遞使其交互性更強(qiáng)。
[1]劉徐德.戰(zhàn)術(shù)通信、導(dǎo)航定位和識別綜合系統(tǒng)文集[M].第一集.北京:電子工業(yè)出版社,1991.
[2]梅文華,王淑波,邱永紅,等.跳頻通信[M].北京:國防工業(yè)出版社,2005.
[3]楊光,周經(jīng)綸,羅鵬程.基于SIMULINK的數(shù)據(jù)鏈通信系統(tǒng)仿真研究[J].現(xiàn)代雷達(dá),2007,29(6):17-22.
[4]李秀坤,李陟.基于Simulink的數(shù)據(jù)鏈系統(tǒng)仿真及性能分析[J].現(xiàn)代電子技術(shù),2010(3):29-32.
[5]邵玉斌.Matlab/Simulink 通信系統(tǒng)建模與仿真實例分析[M].北京:清華大學(xué)出版社,2008:318-322.
[6]穆以東,趙嶺.VC++與Matlab混合編程方法研究[J].測控技術(shù),2013,32(9):111-114.
[7]王鵬,徐瑩,杜衛(wèi)東.VC與MATLAB混合編程用于壓力容器焊縫缺陷檢測[J].計算機(jī)系統(tǒng)應(yīng)用,2014(3):172-175.
[8]任龍輝,肖嬋,李騰飛.基于MATCOM轉(zhuǎn)化法的VC與MATLAB混合編程實現(xiàn)汽車I曲線的模擬繪制[J].汽車實用技術(shù),2013(10):64-68.
[9]王海崗,張坤宇,張雁佳,等.VC與MATLAB混合編程在圖像處理中的應(yīng)用[J].計算機(jī)應(yīng)用與軟件,2012(1):273-275.
[10]John Custy.The Link 16 Contention Access Protocol for Multiple-Reception Terminals[C]//The 2010 Military Communications Conference.California,2010:249-254.
[11]彭益,魏立柱.基于OPNET的Link-16數(shù)據(jù)鏈網(wǎng)絡(luò)建模仿真[J].計算技術(shù)與信息發(fā)展,2011(5):45-47.
[12]王安,呂娜,王翔,等.基于QualNet的數(shù)據(jù)鏈仿真技術(shù)研究[J].計算機(jī)工程與設(shè)計,2012(9):3548-3552.
(責(zé)任編輯:馬金發(fā))
Design and Implementation of Simulation Software of Frequency Hopping Data Link Communication
JIANG Qiang,HAN Shujuan,QIAN Bo,FENG Yongxin
(Shenyang Ligong University,Shenyang 110159,China)
Communication simulation software of frequency hopping data link is designed and communication process is implemented by the way of combining of Matlab Engine and MATCOM function,based on the further study of frequency hopping data link communication mechanism,combined with the advantages of VC++ user interface and the powerful numerical calculation of Matlab.The simulation is made about the generation,transmission and reception,of frequency hopping data link communication signal,the communication performance is analyzed for different modulation mode and different parameter configurations and the focus is on the analysis of bit error rate of demodulation signals in different modulation mode,by using the method of split window,VC controller interactive,the parameter transfer and simulation control settings,in order to?provide simulation environment for the design of frequency hopping data link with better performance.
frequency hopping data link;MATCOM;Matlab Engine;mixed programming
2015-04-29
新世紀(jì)優(yōu)秀人才支持計劃(NECT-11-1013)
蔣強(qiáng)(1974—),男,副教授,研究方向:數(shù)字信號處理,擴(kuò)頻通信技術(shù)及應(yīng)用;通訊作者:馮永新(1974—),女,教授,博士,研究方向:擴(kuò)頻通信技術(shù)及應(yīng)用、計算機(jī)仿真。
TP391
A