999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Matlab的雷達(dá)系統(tǒng)仿真軟件包設(shè)計(jì)與實(shí)現(xiàn)

2010-04-12 00:00:00成鴻飛,王瑩,段柳云,尹忠,宗節(jié)保
現(xiàn)代電子技術(shù) 2010年16期

摘 要:針對雷達(dá)系統(tǒng)抽象復(fù)雜的特征,利用Matlab的圖形用戶界面開發(fā)設(shè)計(jì)出一套包含密碼登陸界面、雷達(dá)系統(tǒng)主界面和各子界面的軟件包,以方便教師教學(xué)和學(xué)生自學(xué)。在實(shí)現(xiàn)過程中引入Matlab,VC混合編程方法,以充分利用兩種語言的各自優(yōu)勢。在VC環(huán)境下編寫mexrun函數(shù)并通過混合編程生成MEX文件,編譯后產(chǎn)生的動態(tài)鏈接庫文件可以供Matlab調(diào)用。在Matlab平臺的實(shí)驗(yàn)界面設(shè)計(jì)中提高了軟件運(yùn)行效率,精簡了程序代碼。運(yùn)行結(jié)果表明,該軟件包具有友好的用戶界面、詳細(xì)的雷達(dá)系統(tǒng)分析實(shí)例和強(qiáng)大的人機(jī)交互功能。關(guān)鍵詞:雷達(dá)系統(tǒng); Matlab; 混合編程; GUI; MEX

中圖分類號:TN955-34文獻(xiàn)標(biāo)識碼:A

文章編號:1004-373X(2010)16-0023-03

Design and Implementation of Radar System Simulation Software Package Based on Matlab

CHEN Hong-fei, WANG Ying, DUAN Liu-yun, YIN Zhong, ZONG Jie-bao

(School of Electronic Information, Whuhan University, Whuhan 430072, China)

Abstract: Considering the abstract and complex characteristics of radar systems, a radar system simulation software package including the password login interface, the main interface and the various sub-interfaces of radar systems is developed and designed with the graphical user interface of Matlab to facilitate teachers′ teaching and students′ self-learning. Matlab and VC hybrid programming approach are introduced in the implementation process to make full use of their advantages. A Mexrun function is compiled in the VC environment, the MEX file is generated through the hybrid programming, and then the dynamic link library files generated after compiling can be provided for Matlab′s call. The efficiency of the software running was improved and the program code was streamlined in the experimental interface design on MSTLAB platform. The running results show that the simulation software has friendly user interfaces, detailed examples of the radar system analysis and powerful human-computer interaction function.Keywords:radar system; Matlab; VC; hybrid programming; GUI; MEX

0 引 言

近些年來國際上相繼發(fā)展了一些雷達(dá)仿真系統(tǒng)[1-2],而國內(nèi)相控陣?yán)走_(dá)系統(tǒng)和脈沖壓縮雷達(dá)系統(tǒng)仿真軟件的研究已經(jīng)成為一個(gè)熱點(diǎn)[3-5]。對于一個(gè)復(fù)雜的雷達(dá)系統(tǒng),系統(tǒng)建模與仿真技術(shù)是雷達(dá)系統(tǒng)設(shè)計(jì)和研究的一個(gè)重要方向和發(fā)展趨勢[6]。這些仿真軟件系統(tǒng)主要是為工程設(shè)計(jì)人員服務(wù)的,具有較高的實(shí)用參考價(jià)值。基于此,本文參考了上述雷達(dá)系統(tǒng)的仿真思想,利用Matlab圖形用戶界面開發(fā)出一套供學(xué)生自學(xué)、教師教學(xué)的雷達(dá)系統(tǒng)分析輔助教學(xué)軟件包。該軟件包主要立足于教學(xué)自學(xué)輔助軟件,供學(xué)習(xí)者高效理解和掌握雷達(dá)系統(tǒng)分析的相關(guān)知識。

在各種教學(xué)實(shí)驗(yàn)軟件中,往往只限于Matlab的編程實(shí)現(xiàn),而在貼近學(xué)習(xí)者需求和多媒體學(xué)習(xí)中尚有不足之處[7-8]。Matlab具有非常強(qiáng)大的數(shù)值計(jì)算、數(shù)據(jù)分析處理等功能,然而Matlab 程序是一種解釋執(zhí)行程序,不用編譯等預(yù)處理,導(dǎo)致程序運(yùn)行速度較慢。VC具有很高的編碼效率, 可對操作系統(tǒng)和應(yīng)用程序以及硬件進(jìn)行直接操作[9-10]。因此,該軟件包利用Matlab和VC混合編程,提高了代碼的運(yùn)行效率,發(fā)揮了兩種語言的長處。運(yùn)行結(jié)果表明,該軟件包具有良好的人機(jī)交互功能、較高的軟件運(yùn)行速率和豐富的多媒體學(xué)習(xí)方式。

1 利用VC和Matlab混合編程實(shí)現(xiàn)MEX文件

在Matlab和VC混合編程中,它們可分為在Matlab中調(diào)用VC程序和在VC中調(diào)用Matlab兩個(gè)方面。前者旨在彌補(bǔ)Matlab程序所不能實(shí)現(xiàn)的軟件功能或者解決Matlab運(yùn)行速度過慢的缺陷;后者一般是為了在VC環(huán)境下調(diào)用Matlab程序,充分利用Matlab在矩陣計(jì)算、數(shù)據(jù)分析方面的強(qiáng)大優(yōu)勢。

在Matlab 與VC混合編程之前,首先要對Matlab的編譯應(yīng)用程序mex 和編譯器mbuild 進(jìn)行正確的設(shè)置。對MEX編譯器進(jìn)行設(shè)置并生成配置文件即一個(gè)后綴為bat的批處理文件,它是通過在Matlab命令窗口輸入命令:mex-setup,然后按照輸出信息提示選擇編譯器和路徑實(shí)現(xiàn)的。Matlab調(diào)用VC的方式主要有兩種:利用MEX技術(shù)和VC動態(tài)鏈接庫。本文通過調(diào)用VC動態(tài)鏈接庫來編寫mexrun文件。實(shí)際上,在Matlab環(huán)境中就可以方便地編輯MEX文件,但對于大型的MEX程序,可能會比較復(fù)雜,容易出錯(cuò),這時(shí)就可以利用Visual C++強(qiáng)大的調(diào)試功能。圖1給出在VC環(huán)境中建立MEX文件的過程。

圖1 VC中建立MEX文件過程

Matlab提供了對動態(tài)鏈接庫DLL文件的接口,且其接口支持VC編寫的DLL文件,因此在對m文件進(jìn)行編譯后會產(chǎn)生一個(gè)與mexrun.cpp同名的mexrun.dll?jiǎng)討B(tài)鏈接庫文件。這樣在Matlab的m文件中就可以直接回調(diào)mexrun()函數(shù)。通過VC來編寫mexrun文件是因?yàn)樾枰贛atlab中直接運(yùn)行諸如MP3,MP4,CHM和TXT等格式的文件,而用Matlab本身來實(shí)現(xiàn)這一過程的執(zhí)行效率較低,代碼具有重復(fù)性,對每種格式還需要區(qū)別對待。因而,考慮到VC語言和操作系統(tǒng)及硬件之間的直接聯(lián)系,通過VC來編寫程序并提供給Matlab調(diào)用,無疑會提高運(yùn)行效率。

在mexrun.cpp文件中需要包含如下頭文件:

#include //字符串類頭文件

#include //系統(tǒng)頭文件

#include //針對各種類型運(yùn)行文件的頭文件

#include \"mex.h\"http://適用于混合編程的MEX頭文件

C語言的MEX文件源程序主要由兩個(gè)部分組成:第一部分是算法程序,用于完成實(shí)際工作;另一部分是入口子程序,它是算法程序與Matlab的接口。入口子程序?qū)崿F(xiàn)接口功能是通過在輸入指針數(shù)組中獲得算法程序所需的數(shù)據(jù),同時(shí)也能把計(jì)算結(jié)果返回到輸出指針數(shù)組。在這里mexFunction有著輸入/輸出與變量轉(zhuǎn)換的作用[11]。參照本文編寫的mexrun.cpp文件,需要注意以下幾點(diǎn):

(1) void mexFunction(int nlhs,mxArray *plhs[],int nrhs,const mxArray*prhs[])。函數(shù)頭中nlhs 是Matlab 命令行方式下輸出參數(shù)的個(gè)數(shù);*plhs[]是一個(gè)mxArray結(jié)構(gòu)體類型指向所有輸出參數(shù)的指針數(shù)組;*prhs[]也是是一個(gè)mxArray結(jié)構(gòu)體類型指向所有輸入?yún)?shù)的指針數(shù)組;nrhs是輸入?yún)?shù)的個(gè)數(shù)。

(2) 還需定義以下幾個(gè)變量:char *inputarg1,*inputarg2;int len1,len2,status1,status2。其中:*inputarg1,*inputarg2是兩個(gè)字符指針;len1,len2表示分配空間長度;status1,status2是兩個(gè)數(shù)據(jù)空間變量。

(3) 輸入的必須是單行字符串,行矢量,如下:

if(mxIsChar(prhs[1])!=1)/* 檢查輸入?yún)?shù)的類型 */

mexErrMsgTxt(\"Input must be string.\");/* 輸入的必須是單行字符串*/

if(mxGetM(prhs[1])!=1)

mexErrMsgTxt(\"Input must be a row vector.\");/* 輸入的必須是行矢量*/

(4) 把輸入的字符串拷貝到C字符串里面,如下所示:

status1=mxGetString(prhs[0],inputarg1,len1);

status2=0;

if(nrhs==2)

status2=mxGetString(prhs[1],inputarg2,len2);

if (status1‖status2)

mexWarnMsgTxt(\"Not enough space.String is truncated.\");

if(nrhs==1)

MyShell(inputarg1,\"nowait\");

else

MyShell(inputarg1,inputarg2);

按照上述流程設(shè)置好編譯環(huán)境和源程序后就可以編譯此工程,編譯成功后,在debug文件夾中會生成mexrun.dll鏈接庫文件。實(shí)驗(yàn)結(jié)果表明,只要把mexrun.dll鏈接庫文件放在Matlab的當(dāng)前工作區(qū)中,就可以在GUI設(shè)計(jì)中的m文件編寫中直接調(diào)用。

2 系統(tǒng)模塊的設(shè)計(jì)與實(shí)現(xiàn)

雷達(dá)系統(tǒng)軟件包的總體結(jié)構(gòu)采用分離式的多模塊結(jié)構(gòu),即各功能模塊彼此相互獨(dú)立,分別完成一定的功能。從方便用戶的角度出發(fā),設(shè)計(jì)的雷達(dá)系統(tǒng)軟件包采用多層次的分級菜單驅(qū)動形式,先由主菜單選擇進(jìn)入各功能模塊的子菜單,在每一個(gè)功能模塊的菜單下,可以選擇參數(shù)設(shè)置、程序運(yùn)行、獲取幫助和返回上級菜單等操作。

2.1 系統(tǒng)實(shí)現(xiàn)方法

圖形用戶界面(graphical user interfaces,GUI)是用戶與計(jì)算機(jī)進(jìn)行信息交流的方式。計(jì)算機(jī)在屏幕顯示圖形和文本,用戶通過輸入設(shè)備如鍵盤、鼠標(biāo)等與計(jì)算機(jī)通信。GUI中包含各種控件,通過對控件設(shè)置一些事件響應(yīng)函數(shù),這些函數(shù)可以在控件創(chuàng)建或刪除等事件發(fā)生時(shí)執(zhí)行,從而實(shí)現(xiàn)特定事件觸發(fā)下需要的某些功能。這些事件響應(yīng)函數(shù)即是句柄圖形對象的回調(diào)函數(shù)。

本文使用GUIDE界面來對各種控件進(jìn)行布局,并利用屬性編輯器對每個(gè)控件進(jìn)行設(shè)置。軟件包的實(shí)驗(yàn)界面主要有登陸界面、主界面和各部分子界面。下面以登陸界面為例,說明圖形用戶界面的設(shè)計(jì)過程。

2.2 登陸界面設(shè)置

圖2表示GUIDE界面下對登錄界面進(jìn)行設(shè)置,其中包含了按鈕、靜態(tài)文本框、編輯框和坐標(biāo)軸。在對每種控件的屬性編輯器進(jìn)行編輯時(shí),Matlab對于每個(gè)控件都會在其相應(yīng)的m文件中初始化出一個(gè)回調(diào)函數(shù)。

圖2 登陸界面

首先,可以通過調(diào)用混合編程實(shí)現(xiàn)的mexrun.dll庫文件打開help文檔、MP3文件和MP4文件。以video按鈕為例,打開它的屬性編輯器可以看到其對應(yīng)的Tag屬性pushbutton1,在其回調(diào)函數(shù)中加入如下代碼。video按鈕打開后是關(guān)于軟件包使用說明的一段簡單視頻。

function pushbutton1Callback(hObject,eventdata,handles)

mexrun(′introduction.MP4′);

其次,編寫坐標(biāo)軸控件的屬性和構(gòu)造函數(shù),這里的坐標(biāo)軸函數(shù)是用來顯示一張JPEG格式的靜態(tài)圖片。Matlab提供imread()函數(shù)和imshow()函數(shù)來讀取和存放靜態(tài)圖片,函數(shù)中的X是一個(gè)矩陣。

function axes1CreateFcn(hObject,eventdata,handles)

X=imread(′radar.jpg′);

imshow(X);

最后,關(guān)于登陸界面的密碼設(shè)置,需要對OpeningFcn函數(shù)進(jìn)行初始化設(shè)置,也即是軟件包默認(rèn)的用戶賬號和密碼。這里需要使用函數(shù)set()來設(shè)置編輯框中輸入的字符串即用戶賬號和密碼,并對該賬戶和密碼進(jìn)行初始化賦值。

handles.output=hObject;

set(handles.kehucode,′String′,″);

set(handles.kehuuser,′String′,″);

handles.xinghao=″;

handles.user=′Dorothy′;%預(yù)先設(shè)定的登錄賬號

handles.code=′19901125′;%預(yù)先設(shè)定的登錄密碼

guidata(hObject,handles);%保存對handles和hObject的操作

3 仿真結(jié)果

雷達(dá)系統(tǒng)分析包含各個(gè)部分仿真結(jié)果分析,這里選擇雷達(dá)天線中典型的線性天線陣列仿真結(jié)果進(jìn)行分析。仿真界面實(shí)例如圖3所示,這里選擇的實(shí)例是線性天線陣列的增益方向圖。其中,陣列中的單元數(shù)為19,可以看到當(dāng)單元間距為1.5個(gè)波長、掃描角度為-38°、使用Hamming窗進(jìn)行幅度加權(quán)、并用23量化電平時(shí),相應(yīng)地在-38°處有主瓣產(chǎn)生,并且第一副瓣的電平約為-13.4 dB。若在面板中選擇不同的設(shè)置值,則可以得到在不同的陣列天線(即陣列中的單元數(shù)不同或單元間距不同)、不同的掃描角度、不同的加窗函數(shù)、不同量化電平時(shí)的增益方向圖。

圖3 線性天線陣列的方向圖

通過該系統(tǒng)進(jìn)行模擬仿真,并將仿真結(jié)果進(jìn)行對比,可以清晰地了解天線在各個(gè)轉(zhuǎn)向角處的增益方向是如何隨天線陣列的單元間距、掃描角度、加窗函數(shù)、量化電平這些參量的變化而變化的,從而形成對線性陣列天線增益方向圖的直觀感受。

4 結(jié) 語

雷達(dá)系統(tǒng)分析課程理論性強(qiáng),抽象難懂,如何幫助學(xué)習(xí)者理解課程中的基本概念、基本分析方法等是該課程教學(xué)中所要解決的關(guān)鍵問題。考慮到Matlab的圖形用戶界面非常形象,本文采用VC和Matlab混合編程充分發(fā)揚(yáng)了兩種語言的優(yōu)勢,開發(fā)實(shí)現(xiàn)了該課程教學(xué)實(shí)驗(yàn)GUI軟件包。實(shí)驗(yàn)表明,該雷達(dá)系統(tǒng)仿真軟件包界面友好,參數(shù)設(shè)置靈活,并且在仿真的過程中能隨時(shí)看到雷達(dá)信號發(fā)射、接收和信號處理等各方面的文字或圖形描述。

參考文獻(xiàn)

[1]SEVGI L, SANAL A S. Surface wave HF radar simulator[C]//Radar Conference. Edinburgh: SPEC, 1997: 181-184.

[2]PALMER J, HOMER J, MARTORELLA M, et al. Target height estimation in an emulated bistatic radar via interferometric processing[C]//2005 1st IEEE International Workshop on Computational Advances in Multi-sensor Adaptive Processing.[S.l.]: IEEE, 2005: 20-23.

[3]楊立柱,郭英,齊立峰.脈沖壓縮雷達(dá)系統(tǒng)分析與仿真研究[J].現(xiàn)代防御技術(shù),2007,35(3):90-94.

[4]李欽富,許小劍.相控陣?yán)走_(dá)系統(tǒng)仿真模型研究[J].中國電子科學(xué)研究院學(xué)報(bào),2007(2):239-243.

[5]康蓬,趙正予,倪彬彬.人工擾動電離層仿真系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].武漢大學(xué)學(xué)報(bào):理學(xué)版,2006,52(1):119-123.

[6]董英凝,張寧.高頻地波雷達(dá)系統(tǒng)性能仿真軟件的設(shè)計(jì)與實(shí)現(xiàn)[J].現(xiàn)代雷達(dá),2009,31(10):30-34.

[7]李強(qiáng),明艷,陳前斌,等.基于Matlab的數(shù)字信號處理實(shí)驗(yàn)仿真系統(tǒng)的實(shí)現(xiàn)[J].實(shí)驗(yàn)技術(shù)與管理,2006,23(5):81-83.

[8]沈捷,王莉.數(shù)字信號處理教學(xué)實(shí)驗(yàn)軟件包的GUI設(shè)計(jì)與實(shí)現(xiàn)[J].實(shí)驗(yàn)技術(shù)與管理,2008,25(2):88-91.

[9]戢小亮.基于Matlab和VC混合編程的數(shù)字信號處理的實(shí)現(xiàn)[J].現(xiàn)代電子技術(shù),2007,30(15):107-108.

[10]潘大夫,汪渤,周志強(qiáng).Matlab與C/C++混合編程技術(shù)研究[J].計(jì)算機(jī)工程與設(shè)計(jì),2009,30(2):465-468.

主站蜘蛛池模板: 欧美一区二区三区欧美日韩亚洲| 亚洲成年网站在线观看| 99这里只有精品免费视频| 美女被操黄色视频网站| 性欧美在线| 成人综合久久综合| 亚洲成人福利网站| 欧美高清日韩| 91视频青青草| 国产精品亚洲五月天高清| 中文国产成人精品久久一| 亚洲精品天堂自在久久77| 日韩高清在线观看不卡一区二区| 呦视频在线一区二区三区| 一区二区三区四区日韩| 中美日韩在线网免费毛片视频| 欧美国产综合色视频| 亚洲天堂网在线视频| 日本免费福利视频| 日韩av电影一区二区三区四区| 91麻豆精品视频| 国产免费精彩视频| 动漫精品中文字幕无码| 欧美日韩精品一区二区视频| 亚洲无码A视频在线| 国产欧美精品一区二区| 九色视频一区| 热99re99首页精品亚洲五月天| 国产传媒一区二区三区四区五区| 无码精油按摩潮喷在线播放| 99re66精品视频在线观看| www.亚洲国产| 精品国产一区91在线| 欧美成人第一页| 亚洲AV电影不卡在线观看| 欧美日韩国产高清一区二区三区| 免费国产黄线在线观看| 午夜不卡视频| 亚洲欧美日韩成人在线| 91区国产福利在线观看午夜| 国产精品视频系列专区| 婷婷在线网站| 高清码无在线看| 日本在线亚洲| 日本午夜精品一本在线观看| 亚洲专区一区二区在线观看| 亚洲视屏在线观看| 免费看av在线网站网址| 亚洲综合香蕉| 日本免费精品| 午夜一区二区三区| 国内精品手机在线观看视频| 永久免费无码日韩视频| 午夜无码一区二区三区在线app| 国产成人精品18| 国产欧美日韩在线在线不卡视频| 黄色国产在线| 亚洲男人天堂网址| 97国产在线视频| 五月丁香在线视频| 999国内精品视频免费| 国产美女无遮挡免费视频| 天堂在线视频精品| 亚洲人成网站观看在线观看| 亚洲美女操| 国产乱子伦一区二区=| 中文字幕有乳无码| 国产偷国产偷在线高清| 国产性生交xxxxx免费| 秋霞一区二区三区| 18禁高潮出水呻吟娇喘蜜芽| 成人在线亚洲| 成人看片欧美一区二区| 啪啪永久免费av| 久久不卡精品| 国产丝袜91| 国产成人午夜福利免费无码r| 91小视频在线播放| 精品国产网| 成年女人a毛片免费视频| 亚洲精品爱草草视频在线| 欧美国产精品不卡在线观看|