蔣 強(qiáng),韓淑娟,錢(qián) 博,馮永新
(沈陽(yáng)理工大學(xué) 通信與網(wǎng)絡(luò)工程中心,沈陽(yáng) 110159)
?
一種跳頻數(shù)據(jù)鏈通信仿真軟件的設(shè)計(jì)與實(shí)現(xiàn)方法
蔣強(qiáng),韓淑娟,錢(qián)博,馮永新
(沈陽(yáng)理工大學(xué) 通信與網(wǎng)絡(luò)工程中心,沈陽(yáng) 110159)
在深入研究跳頻數(shù)據(jù)鏈通信機(jī)理的基礎(chǔ)上,結(jié)合VC++良好用戶界面開(kāi)發(fā)和Matlab強(qiáng)大數(shù)值計(jì)算的優(yōu)勢(shì),基于Matlab Engine和MATCOM函數(shù)相結(jié)合方式,設(shè)計(jì)了跳頻數(shù)據(jù)鏈通信仿真軟件,實(shí)現(xiàn)了通信過(guò)程。采用分割窗口的方法,利用VC控件的交互,通過(guò)參數(shù)的傳遞和仿真控制的設(shè)置,仿真跳頻數(shù)據(jù)鏈通信信號(hào)產(chǎn)生、傳輸和接收功能,分析不同調(diào)制方式和不同參數(shù)配置下的通信性能,并重點(diǎn)分析不同調(diào)制方式下解調(diào)信號(hào)的誤碼率,為設(shè)計(jì)具有更優(yōu)性能的跳頻數(shù)據(jù)鏈提供仿真環(huán)境。
跳頻數(shù)據(jù)鏈;MATCOM;Matlab Engine;混合編程
數(shù)據(jù)鏈?zhǔn)且环N集通信、導(dǎo)航和識(shí)別于一體的綜合化戰(zhàn)場(chǎng)信息系統(tǒng),是信息化作戰(zhàn)中各種作戰(zhàn)平臺(tái)與網(wǎng)絡(luò)互聯(lián)及信息業(yè)務(wù)互通的基礎(chǔ)[1]。由于跳頻通信具有優(yōu)良的抗干擾、抗衰落和抗多徑性能以及頻譜利用率高、多址通信等諸多優(yōu)點(diǎn)[2],因此跳頻技術(shù)在數(shù)據(jù)鏈系統(tǒng)中得到越來(lái)越廣泛的應(yīng)用。目前主要從數(shù)據(jù)鏈鏈路和數(shù)據(jù)鏈信號(hào)等方面對(duì)數(shù)據(jù)鏈進(jìn)行仿真研究,基于OPNET和QualNet等網(wǎng)絡(luò)仿真平臺(tái),對(duì)數(shù)據(jù)鏈鏈路仿真方面的研究已經(jīng)十分成熟,對(duì)數(shù)據(jù)鏈信號(hào)方面仿真研究還相對(duì)較單一。
現(xiàn)階段的數(shù)據(jù)鏈信號(hào)仿真主要基于Matlab/Simulink軟件為仿真平臺(tái),如楊光等人基于該平臺(tái)對(duì)JTIDS通信系統(tǒng)進(jìn)行系統(tǒng)設(shè)計(jì)、仿真演示及抗干擾性能分析[3];以及李秀坤等人對(duì)猝發(fā)數(shù)據(jù)鏈系統(tǒng)的模型進(jìn)行構(gòu)建,并在此平臺(tái)下得到不同輸入信號(hào)強(qiáng)度下信噪比與捕獲概率的關(guān)系[4]。Matlab/Simulink軟件具有對(duì)多種信號(hào)處理的工具箱,支持可視化建模,對(duì)模塊的構(gòu)建和重用可以提供良好的支持[5]。然而Matlab/Simulink仿真平臺(tái)在數(shù)據(jù)的可交互性和實(shí)時(shí)性方面存在不足,不利于通過(guò)修改數(shù)據(jù)鏈參數(shù)來(lái)分析跳頻數(shù)據(jù)鏈通信性能,而 VC++具有良好的界面開(kāi)發(fā)以及強(qiáng)大的數(shù)據(jù)交互能力和實(shí)時(shí)傳輸能力。
因此,本文在研究跳頻數(shù)據(jù)鏈通信機(jī)理基礎(chǔ)上,結(jié)合VC++與Matlab的優(yōu)勢(shì),提出以Matlab Engine和MATCOM結(jié)合的方式,實(shí)現(xiàn)跳頻數(shù)據(jù)鏈通信的仿真。對(duì)跳頻數(shù)據(jù)鏈通信信號(hào)產(chǎn)生、傳輸和接收功能進(jìn)行仿真,對(duì)不同調(diào)制方式和不同參數(shù)配置下的通信性能進(jìn)行分析,為設(shè)計(jì)具有更優(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)制,然后對(duì)調(diào)制后的信號(hào)進(jìn)行混頻處理,混頻的頻率通過(guò)偽隨機(jī)碼控制的頻率合成器生成。對(duì)混頻后的信號(hào)進(jìn)行濾波處理后即可生成跳頻信號(hào),最終將跳頻信號(hào)通過(guò)發(fā)射器發(fā)射出去。接收系統(tǒng)中將產(chǎn)生與發(fā)射端頻率合成器相同跳變規(guī)律的本地信號(hào),將本地信號(hào)與接收信號(hào)進(jìn)行混頻處理可實(shí)現(xiàn)解跳,將解跳后的中頻信號(hào)經(jīng)放大器處理后送至解調(diào)器,最終可恢復(fù)原始的基帶信號(hào)。本文在跳頻體制數(shù)據(jù)鏈信號(hào)產(chǎn)生機(jī)理、傳輸機(jī)理、接收機(jī)理和抗干擾特性原理的基礎(chǔ)上,以Matlab為后臺(tái)進(jìn)行數(shù)據(jù)處理,以VC++為前臺(tái)進(jìn)行界面設(shè)計(jì),構(gòu)建跳頻體制數(shù)據(jù)鏈通信仿真模型。
2.1功能設(shè)計(jì)
通過(guò)對(duì)跳頻數(shù)據(jù)鏈通信機(jī)理的研究,確立跳頻數(shù)據(jù)鏈通信仿真軟件包含的功能,見(jiàn)表1。
表1 跳頻數(shù)據(jù)鏈通信功能設(shè)計(jì)
跳頻數(shù)據(jù)鏈的仿真參數(shù):隨機(jī)碼選擇的是M序列,跳頻數(shù)據(jù)鏈的跳駐留時(shí)間為6.4μs、跳時(shí)間間隔為6.6μs、跳速為76923hop/s,采樣頻率、中頻頻率、調(diào)制方式由m函數(shù)的參數(shù)傳遞到界面中,可以通過(guò)修改界面參數(shù),來(lái)分析參數(shù)對(duì)跳頻數(shù)據(jù)鏈通信性能的影響。其中調(diào)制方式通過(guò)下拉菜單可以選擇BPSK、QPSK、CPFSK。
接收端在界面設(shè)計(jì)中采用分割窗口的方法,通過(guò)對(duì)比分析來(lái)完成跳頻數(shù)據(jù)鏈信號(hào)的捕獲跟蹤和解調(diào)。
收發(fā)控制在界面設(shè)計(jì)中通過(guò)啟動(dòng)線程按鈕來(lái)解決Matlab Engine方式和MATCOM方式?jīng)_突問(wèn)題,在啟動(dòng)線程按鈕的響應(yīng)函數(shù)中起一個(gè)線程,把Matlab Engine方式調(diào)用m文件的實(shí)現(xiàn)放在線程函數(shù)中。通過(guò)暫停線程按鈕來(lái)控制Matlab Engine方式是恢復(fù)調(diào)用m文件還是暫停調(diào)用m文件,并通過(guò)顯示圖形按鈕來(lái)顯示跳頻數(shù)據(jù)鏈參數(shù)以及從產(chǎn)生到接收信號(hào)的圖。
2.2交互接口設(shè)計(jì)
Matlab與VC++有多種接口方法,常用的方法有Matlab Engine方式、Matlab自帶編譯器MCC方式、MATCOM方式,利用COM Builder工具制作COM組件的方式等[6-9]。這四接口方法各有優(yōu)缺點(diǎn),見(jiàn)表2,根據(jù)實(shí)際需要選擇合適的接口方法。
表2 Matlab Engine至MATCOM方法的優(yōu)缺點(diǎn)
在上述現(xiàn)有的Matlab與Visual C++混合編程方法原理及優(yōu)缺點(diǎn)的基礎(chǔ)上,根據(jù)跳頻數(shù)據(jù)鏈通信機(jī)理的實(shí)際情況,本文提出以Matlab Engine方式和MATCOM方式相結(jié)合,來(lái)實(shí)現(xiàn)跳頻數(shù)據(jù)鏈通信的仿真。
2.2.1Matlab Engine方式
Matlab Engine采用客戶機(jī)/服務(wù)器 (Client/Server) 的方式,提供了一組 Matlab API 函數(shù),通過(guò)調(diào)用這些函數(shù)實(shí)現(xiàn)程序進(jìn)程之間的數(shù)據(jù)傳遞[7]。VC 程序作為前端客戶機(jī),向 Matlab引擎?zhèn)鬟f命令和數(shù)據(jù),并從 Matlab 引擎接收數(shù)據(jù)信息,實(shí)現(xiàn)動(dòng)態(tài)通信。調(diào)用Matlab引擎函數(shù)的實(shí)質(zhì)是將Matlab當(dāng)作一個(gè)ActiveX服務(wù)器,并建立ActiveX通道,然后將命令或函數(shù)通過(guò)ActiveX通道發(fā)給Matlab,由Matlab在后臺(tái)執(zhí)行,應(yīng)用程序調(diào)用Matlab引擎函數(shù)如圖3所示。
圖3 Matlab引擎函數(shù)調(diào)用原理
2.2.2MATCOM方式
MATCOM作為接口有兩種實(shí)現(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ù)雜的,多個(gè)嵌套調(diào)用的Matlab的m文件譯成同等功能的C++源代碼時(shí),容易出錯(cuò)、難以調(diào)試;而Matlab Engine可以調(diào)用復(fù)雜的Matlab程序,應(yīng)用程序整體性能好。結(jié)合這兩種接口的特點(diǎn),本文提出用Matlab Engine調(diào)用m函數(shù),用MATCOM函數(shù)加載.mat文件,來(lái)實(shí)現(xiàn)Matlab與VC的交互。
2.3界面設(shè)計(jì)
首先對(duì)MATCOM方式和Matlab Engine方式集成到VC中進(jìn)行相應(yīng)的配置,然后根據(jù)跳頻數(shù)據(jù)鏈的通信機(jī)理對(duì)應(yīng)用程序界面整體結(jié)構(gòu)進(jìn)行設(shè)計(jì),整體結(jié)構(gòu)設(shè)計(jì)如圖4所示。
圖4 跳頻數(shù)據(jù)鏈通信界面設(shè)計(jì)
2.4軟件設(shè)計(jì)實(shí)現(xiàn)
在Matlab Engine 和MATCOM函數(shù)相結(jié)合原理的基礎(chǔ)上,設(shè)計(jì)程序流程如圖5所示。
根據(jù)整個(gè)程序流程具體的操作步驟如下:
Step1:運(yùn)行VC應(yīng)用程序,在界面中對(duì)跳頻數(shù)據(jù)鏈參數(shù)進(jìn)行設(shè)置;
Step2:?jiǎn)?dòng)線程按鈕,在線程函數(shù)中實(shí)現(xiàn)Matlab Engine方式調(diào)用m函數(shù);
Step3:在顯示圖形按鈕中完成Matcom函數(shù)對(duì).mat文件的加載,并顯示圖形;
Step4:如果需要修改參數(shù),轉(zhuǎn)到Step1處,來(lái)顯示不同的圖形,否則結(jié)束整個(gè)仿真過(guò)程。
圖5 程序設(shè)計(jì)流程圖
運(yùn)行VC應(yīng)用程序,在跳頻數(shù)據(jù)鏈仿真參數(shù)中,輸入隨機(jī)碼類型為M序列,中頻頻率是75.25MHz,采樣頻率是15.05GHz,調(diào)制方式選擇CPFSK,跳駐留時(shí)間是6.4us,跳時(shí)間間隔是6.6us,跳周期是13us,跳頻速率是76923hop/s。點(diǎn)擊啟動(dòng)線程按鈕和顯示圖形按鈕,如圖6所示。
圖6 跳頻數(shù)據(jù)鏈通信界面圖
從圖6可以看出,此仿真軟件有效地完成了發(fā)送端跳頻數(shù)據(jù)鏈信號(hào)產(chǎn)生功能,其中包括CPFSK調(diào)制信號(hào)、上變頻信號(hào)、五跳跳頻信號(hào)時(shí)頻域的產(chǎn)生。
從圖6可以看出,此仿真軟件有效的完成了接收端跳頻數(shù)據(jù)鏈信號(hào)的捕獲、跟蹤、解調(diào)功能。其中包括滑動(dòng)相關(guān)粗捕獲、精捕獲,鎖相環(huán)路跟蹤,接收信號(hào)與本地信號(hào)的混頻、濾波、解調(diào)。
當(dāng)選擇BPSK、QPSK調(diào)制方式時(shí),調(diào)制信號(hào)的圖如圖7所示。
圖7 BPSK、QPSK調(diào)制信號(hào)局部圖
當(dāng)選擇調(diào)制方式為BPSK時(shí),從圖7可以看出,跳頻數(shù)據(jù)鏈信號(hào)相位在π處有跳變,當(dāng)選擇調(diào)制方式為QPSK時(shí),從圖7可以看出,跳頻數(shù)據(jù)鏈信號(hào)相位在π/4處有跳變,驗(yàn)證了當(dāng)選擇不同的調(diào)制方式時(shí),此仿真軟件同樣能夠完成跳頻數(shù)據(jù)鏈通信信號(hào)的產(chǎn)生、傳輸、接收功能。
當(dāng)采樣頻率增大1.5倍時(shí),得到不同調(diào)制方式下的誤碼率結(jié)果如圖8所示。
圖8 不同調(diào)制方式下的誤碼率圖
從圖8可以看出,當(dāng)增大采樣頻率時(shí),在信噪比為-20dB時(shí),調(diào)制方式為BPSK、QPSK時(shí),解調(diào)信號(hào)的誤碼率大約從9%降低到3.7%,調(diào)制方式為CPFSK時(shí),解調(diào)信號(hào)的誤碼率大約從1%降低到0.4%。三種調(diào)制方式下的誤碼率都有所改善,CPFSK為最優(yōu)。
此仿真軟件完成了對(duì)跳頻數(shù)據(jù)鏈通信信號(hào)產(chǎn)生、傳輸和接收功能,在不同參數(shù)配置下,在不同調(diào)制方式下,跳頻數(shù)據(jù)鏈通信性能是不同的,驗(yàn)證了此仿真軟件為設(shè)計(jì)出更優(yōu)性能的跳頻數(shù)據(jù)鏈提供仿真環(huán)境,同時(shí)驗(yàn)證了此仿真軟件相比Simulink,實(shí)時(shí)性和交互性更強(qiáng)。
在研究跳頻數(shù)據(jù)鏈通信機(jī)理的基礎(chǔ)上,以Matlab Engine和MATCOM函數(shù)相結(jié)合的方式構(gòu)建跳頻數(shù)據(jù)鏈通信仿真模型,通過(guò)參數(shù)配置和選擇不同的調(diào)制方式,采用分割窗口的方法,驗(yàn)證了此仿真軟件能夠有效完成跳頻數(shù)據(jù)鏈通信信號(hào)的產(chǎn)生、傳輸、接收功能。同時(shí)克服了MATCOM方式在將比較復(fù)雜的、多個(gè)嵌套的m文件譯成同等功能的C++源代碼時(shí),容易出錯(cuò)、難以調(diào)試的缺點(diǎn),并且相比Matlab的GUI,此仿真軟件通過(guò)參數(shù)的傳遞使其交互性更強(qiáng)。
[1]劉徐德.戰(zhàn)術(shù)通信、導(dǎo)航定位和識(shí)別綜合系統(tǒng)文集[M].第一集.北京:電子工業(yè)出版社,1991.
[2]梅文華,王淑波,邱永紅,等.跳頻通信[M].北京:國(guó)防工業(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)建模與仿真實(shí)例分析[M].北京:清華大學(xué)出版社,2008:318-322.
[6]穆以東,趙嶺.VC++與Matlab混合編程方法研究[J].測(cè)控技術(shù),2013,32(9):111-114.
[7]王鵬,徐瑩,杜衛(wèi)東.VC與MATLAB混合編程用于壓力容器焊縫缺陷檢測(cè)[J].計(jì)算機(jī)系統(tǒng)應(yīng)用,2014(3):172-175.
[8]任龍輝,肖嬋,李騰飛.基于MATCOM轉(zhuǎn)化法的VC與MATLAB混合編程實(shí)現(xiàn)汽車I曲線的模擬繪制[J].汽車實(shí)用技術(shù),2013(10):64-68.
[9]王海崗,張坤宇,張雁佳,等.VC與MATLAB混合編程在圖像處理中的應(yīng)用[J].計(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].計(jì)算技術(shù)與信息發(fā)展,2011(5):45-47.
[12]王安,呂娜,王翔,等.基于QualNet的數(shù)據(jù)鏈仿真技術(shù)研究[J].計(jì)算機(jī)工程與設(shè)計(jì),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)秀人才支持計(jì)劃(NECT-11-1013)
蔣強(qiáng)(1974—),男,副教授,研究方向:數(shù)字信號(hào)處理,擴(kuò)頻通信技術(shù)及應(yīng)用;通訊作者:馮永新(1974—),女,教授,博士,研究方向:擴(kuò)頻通信技術(shù)及應(yīng)用、計(jì)算機(jī)仿真。
TP391
A