利用MEX實(shí)現(xiàn)對(duì)硬件的實(shí)時(shí)處理和仿真_第1頁
利用MEX實(shí)現(xiàn)對(duì)硬件的實(shí)時(shí)處理和仿真_第2頁
利用MEX實(shí)現(xiàn)對(duì)硬件的實(shí)時(shí)處理和仿真_第3頁
利用MEX實(shí)現(xiàn)對(duì)硬件的實(shí)時(shí)處理和仿真_第4頁
利用MEX實(shí)現(xiàn)對(duì)硬件的實(shí)時(shí)處理和仿真_第5頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、             摘  要:介紹了MATLAB中MEX的原理結(jié)構(gòu)和基于MEX完成MATLAB對(duì)硬件的操作控制,實(shí)現(xiàn)數(shù)據(jù)實(shí)時(shí)或準(zhǔn)實(shí)時(shí)處理的方法。該方法的使用,使我們可以利用MATLAB實(shí)現(xiàn)對(duì)系統(tǒng)的半實(shí)物仿真,驗(yàn)證總體方案,優(yōu)化信號(hào)處理算法,加快系統(tǒng)開發(fā)進(jìn)程。       在工程設(shè)計(jì)和應(yīng)用中常常用到MATLAB,因?yàn)樗哂凶吭降臄?shù)值計(jì)算功能和強(qiáng)大的圖形處理能力,其輸出結(jié)果可視化,編程效率極高,極少的代碼

2、即可實(shí)現(xiàn)復(fù)雜的運(yùn)行。以往常用MATALB進(jìn)行大量的數(shù)值計(jì)算和預(yù)先數(shù)據(jù)處理仿真,在本文中將介紹一種利用MATLAB的MEX編程進(jìn)行實(shí)時(shí)或準(zhǔn)實(shí)時(shí)數(shù)據(jù)處理和分析的方法,可用于對(duì)系統(tǒng)進(jìn)行半實(shí)物仿真,加快系統(tǒng)開發(fā)進(jìn)程。1 MEX程序的介紹  在MATLAB中,MEX(MATLAB外部數(shù)據(jù)接口程序)文件是由C或Fortran源程序經(jīng)過編譯生成的MATLAB動(dòng)態(tài)鏈接子程序。在Windows系統(tǒng)中,MEX文件是32位DLL格式,可以直接使用戶訪問Windows資源環(huán)境的各種功能,可以用DLL格式的MEX文件生成基于Windows的用戶圖形界面,也可以利用Windows的動(dòng)態(tài)數(shù)據(jù)交換能力,與其他的Wi

3、ndows應(yīng)用程序交換必要的數(shù)據(jù)。MEX文件如同MATLAB的內(nèi)置函數(shù)一樣,能被MATLAB的解釋器根據(jù)命令自動(dòng)地裝入和執(zhí)行。其應(yīng)用有以下幾點(diǎn):  (1)對(duì)于某些已有的C或Fortran程序,可通過MEX方式在MATLAB環(huán)境中直接調(diào)用。  (2)對(duì)影響MATLAB執(zhí)行速度的FOR循環(huán),可以編寫相應(yīng)的C或Fortran子程序完成相同的功能,并編譯成MEX,提高運(yùn)行速度。  (3)對(duì)于A/D或是D/A卡,或其他PC硬件,可以直接用MEX文件進(jìn)行訪問,擴(kuò)大MATLAB的功能。更重要的是,在這種對(duì)實(shí)時(shí)性要求較高的場(chǎng)合,使用MEX文件能夠滿足各種苛刻的要求。 

4、(4)利用MEX文件,還可以使用一些軟件,如Windows用戶資源。  因此在MATLAB中使用MEX文件,既能夠滿足實(shí)時(shí)性處理要求,又能夠充分發(fā)揮MATLAB的優(yōu)越性,節(jié)約編程時(shí)間。  MEX源代碼文件由2部分組成:  入口子程序其作用是在MATLAB系統(tǒng)與被調(diào)用的外部子程序之間建立通信聯(lián)系,可以看作其通信協(xié)議,定義被MATLAB調(diào)用的外部子程序的入口地址,定義MATLAB系統(tǒng)向子程序傳遞的子程序參數(shù)和向MATLAB返回的結(jié)果參數(shù)等。  計(jì)算子程序就是要鏈接的外部子程序,用于完成一些特定的計(jì)算,他由入口子程序調(diào)用。  MEX源代碼文件的2部分

5、既可以分開,又可以組合在一起。入口子程序必須是mexFunction,其構(gòu)成形式必須為(以C語言為例):    void  mexFunction(    其中,nrhs和prhs 分別為mxArray輸入?yún)?shù)的個(gè)數(shù)和變量指針,nlhs和plhs分別為輸出參數(shù)的個(gè)數(shù)和變量的指針。這些參數(shù)是用來傳遞MATLAB啟動(dòng)MEX文件的參數(shù)。按語法規(guī)則,函數(shù)的調(diào)用的一般形式是:  這里,fun是MEX文件名或M文件名,變量a,b,c稱為輸出變量;d,e,f等稱為輸入變量。  MEX文件編寫完成后,便可以進(jìn)行編譯。MA

6、TLAB 5.3以上的版本提供了一個(gè)C語言編譯器LCC,也使用計(jì)算機(jī)已經(jīng)安裝的VC,BC編譯器進(jìn)行編譯。編譯好的MEX文件作為一個(gè)函數(shù)在MATLAB中直接調(diào)用或鏈接,參與MATLAB程序運(yùn)算和控制,達(dá)到提高計(jì)算效率的目的。  如果將MATLAB中的MEX程序和GUI(圖形用戶界面)程序有機(jī)的結(jié)合起來,就可以更好地達(dá)到實(shí)時(shí)控制和數(shù)據(jù)處理顯示功能。2 C語言的MEX應(yīng)用實(shí)例  下面以一個(gè)工程實(shí)例說明MEX文件的應(yīng)用。  在某雷達(dá)演示驗(yàn)證系統(tǒng)中,目標(biāo)是利用MATLAB強(qiáng)大而便捷的運(yùn)算編程能力對(duì)系統(tǒng)進(jìn)行體制驗(yàn)證。在該系統(tǒng)中,數(shù)據(jù)通過高速A/D采集卡采集整理,然后進(jìn)行多波束

7、形成,最后進(jìn)行頻譜分析,門限檢測(cè)。在處理中,不僅涉及對(duì)硬件的訪問和控制,而且涉及了大量的數(shù)據(jù)變換和分析運(yùn)算。處理框圖如圖1所示。    在本方案中采用MEX編程實(shí)現(xiàn)對(duì)硬件A/D卡的實(shí)時(shí)控制和訪問。數(shù)據(jù)采集卡采用PCIDSA4020。該卡是一塊塊即插即用的超高速四通道20 MHz  PCI數(shù)據(jù)采集卡,電壓輸入范圍、采集觸發(fā)方式、中斷、校驗(yàn)、通道控制全部可由軟件設(shè)置,配有相應(yīng)的應(yīng)用軟件包,支持Visual C+,Visual Basic,DLL庫調(diào)用。實(shí)現(xiàn)中采用C語言調(diào)用廠家提供的數(shù)據(jù)采集卡函數(shù)庫,編譯生成MEX動(dòng)態(tài)鏈接庫控制數(shù)據(jù)采集卡進(jìn)行數(shù)據(jù)采集。數(shù)據(jù)采集

8、完成后,在MATLAB中完成對(duì)數(shù)據(jù)的正交變換、    從應(yīng)用實(shí)例可以看出,入口子程序起到鏈接C子程序與MATLAB系統(tǒng)的作用;同時(shí)入口子程序完成大部分的輔助工作,特別是判斷變量,來檢測(cè)輸入/輸出變量的個(gè)數(shù)、以及變量的數(shù)據(jù)類型,這樣可以避免由于指針與數(shù)據(jù)不匹配而導(dǎo)致的錯(cuò)誤。  由于本系統(tǒng)采取的方案是將大量數(shù)據(jù)采集后進(jìn)行準(zhǔn)實(shí)時(shí)處理,若數(shù)據(jù)量較小的時(shí)候,可直接將采集數(shù)據(jù)轉(zhuǎn)化為MATLAB數(shù)組進(jìn)行實(shí)時(shí)處理。圖2就是用MATLAB中的GUI生成的人機(jī)界面,圖右邊的可隨時(shí)設(shè)置參數(shù),圖左邊為處理數(shù)據(jù)顯示。3 結(jié)語  MATLAB中MEX文件的使用使我們可以方便地使用MATLAB作為我們?cè)O(shè)計(jì)、仿真的工具。使應(yīng)用MATLAB進(jìn)行數(shù)據(jù)分析與處理可以提供良好的實(shí)時(shí)性,提高程序的運(yùn)行速度,使我們?cè)谙到y(tǒng)的半實(shí)物仿真實(shí)驗(yàn)中可以節(jié)約大量的編程時(shí)間,將重點(diǎn)放在對(duì)系統(tǒng)處理算法驗(yàn)證上。參考文獻(xiàn)1龔劍,朱亮.MATLAB 5.X入門與提高M(jìn).北京:清華大學(xué)出版社,20002程衛(wèi)國,馮峰,等.MATLAB

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論