摘 要:本文結合LabVIEW虛擬儀器開發(fā)平臺和MATLAB軟件強大的數(shù)值分析功能的優(yōu)點,利用LabVIEW和MATLAB混合編程技術應用于水聲信號處理,該方法既能提供良好的計算機用戶圖形界面,又具有很強的水聲信號處理能力,仿真結果表明了該方法的有效性。
關鍵詞:LabVIEW MATLAB 水聲信號處理 MATLAB Script節(jié)點法
引 言
水聲信號處理是海洋及信息處理領域研究最為活躍的學科之一,它在海洋勘探、水聲定位、水下機器人等方面應用十分廣泛,但是隨著海洋開發(fā)、信息科學技術的高速發(fā)展,對水聲信號處理的要求越來越高。良好的人機交互界面、計算機圖形化顯示以及強大的數(shù)據(jù)處理分析能力,成為目前水聲信號處理領域的研究趨勢。為此,本文利用LabVIEW和MATLAB混合編程技術應用于水聲信號處理,既能提供良好的計算機圖形化界面,又具有強大的數(shù)據(jù)處理分析能力,實驗仿真結果表明了該方法的有效性。
1 LabVIEW語言和MATLAB軟件概述
LabVIEW(Laboratory Virtual Instrument Engineering Workbench,實驗室虛擬儀器工作平臺)是美國National Instruments公司推出的虛擬儀器開發(fā)平臺軟件,是一種非常優(yōu)秀的面向對象的圖形化編程語言,用于快速創(chuàng)建測試、測量和控制應用程序。以其強大的數(shù)據(jù)采集、數(shù)據(jù)處理、數(shù)據(jù)分析和儀器控制功能在現(xiàn)代測控領域中得到了廣泛的應用。它具有如下優(yōu)點:提供各種接口總線和常用儀器的驅動程序,用戶可將其與測量硬件連接,方便地完成信號數(shù)據(jù)采集、信號分析、數(shù)據(jù)存儲以及數(shù)據(jù)處理等許多通常的任務;可以很方便的創(chuàng)造一個交互式的系統(tǒng)控制界面,從而使各種信號的采集和處理開發(fā)更加人性化,因為其外形和操作可以模擬實際的儀器。雖然LabVIEW 對于一般信號的分析處理比較方便,內置了許多用于分析測量數(shù)據(jù)的函數(shù),能夠勝任大多數(shù)測量任務,但是其本身也存在不足,如不能完全提供用戶所需要的驅動程序和調用系統(tǒng)程序實現(xiàn)底層操作,不擅長于完成大量數(shù)據(jù)處理的任務。因此對于一些虛擬儀器中需要進行大量數(shù)據(jù)運算處理的復雜應用,僅僅用LabVIEW就顯得有些力不從心。
MATLAB軟件為幾乎所有的工程計算領域提供了準確、高效的多種功能的工具箱,在信號和圖像處理等領域具有無可比擬的優(yōu)勢。它針對許多領域開發(fā)了模塊:如信號處理、數(shù)據(jù)庫接口、神經網絡、小波分析、圖像處理等。MATLAB以其強大的科學計算功能、大量穩(wěn)定可靠的算法庫、編程效率高等特點已成為數(shù)學計算工具方面事實上的標準。
因此結合上述兩者的優(yōu)點,可以通過LabVIEW程序接口函數(shù)來調用其它各種應用程序和MATLAB軟件中強大的數(shù)據(jù)處理軟件包,這樣結合可以使軟件平臺具有更強的數(shù)據(jù)處理能力,對于單獨運用MALTLAB和虛擬儀器進行大量數(shù)據(jù)運算處理所解決不了的問題就迎刃而解了。
2 LabVIEW和MATLAB混合編程在水聲信號處理中的應用
本文主要研究LabVIEW和MATLAB混合編程技術應用于水聲信號提取,通過對雜波等背景噪聲的消除來達到特征信號提取的目的。
2.1 LabVIEW和MATLAB混合編程設計
利用LabVIEW 內置的許多用于分析測量數(shù)據(jù)的函數(shù)對信號進行一般的分析處理。如圖1所示為用LabVIEW7.1編寫好的包括巴特沃斯、切比雪夫、橢圓濾波器的程序框圖。
[align=center]

圖1 濾波器程序框圖[/align]
在水聲信號的處理技術中,因水下環(huán)境的復雜性,目標信息往往淹沒在各種各樣的干擾背景中。僅僅用LabVIEW語言編程處理達不到很好的效果,但是LabVIEW可以通過其程序接口函數(shù)來調用其它的各種應用程序和軟件,在LabVIEW中調用MATLAB下編好的小波消噪程序。其中,調用方式有好幾種,可以使用DLL、ActiveX、MATLAB Script節(jié)點法等,這里用MATLAB Script節(jié)點法,因為使用MATLAB Script節(jié)點法快捷方便,該方法具有多輸入、多輸出的特點,一次處理的信息量可以很大。而且MATLAB程序可以直接輸入節(jié)點中,也可以先在MATLAB下調試,無誤后再導入到MATLAB Script節(jié)點中。
LabVIEW7.1提供的MATLAB Script節(jié)點通過選擇All Functions >>Analyze >>Mathematics >>Formula >>MATLAB Script,就將該節(jié)點添加到流程圖中。先添加輸入變量xx和x,變量類型分別為RealVector和Real,添加輸出變量xd,變量類型為RealVector,然后將MATLAB小波工具箱中的函數(shù)WDEN()寫入節(jié)點內,該函數(shù)可直接對一維信號進行噪聲消除,其調用格式為[XD,CXD,LXD]=WDEN(X,TPTR,SORH,SCAL,N,‘wname’),其中N為小波分解的層數(shù),這里設置為8。wname指定分解時所用的小波。運行LabVIEW執(zhí)行該節(jié)點,則同時啟動一個MATLAB進程。
2.2 處理實例
圖2和圖3為通過MATLAB Script節(jié)點調用MATLAB程序的前面板和程序處理界面圖。MATLAB Script節(jié)點實際上是通過ActiveX控件與MATLAB Server進行通信的.調用MATLAB函數(shù)或命令,實質是將MATLAB當作一個ActiveX服務器并建立ActiveX通道,然后將這個函數(shù)或命令通過ActiveX通道發(fā)給MATLAB,由MATLAB在后臺執(zhí)行,所以在計算機中必須安裝有MATLAB。
[align=center]

圖2 通過MATLAB Script節(jié)點調用MATLAB程序[/align]
[align=center]

圖3 通過MATLAB Script節(jié)點調用MATLAB程序前面板[/align]
但是,這里有兩點值得注意的是:①MATLAB Script節(jié)點對輸入、輸出數(shù)據(jù)的類型有明確的要求。LabVIEW和MATLAB之間的數(shù)據(jù)通信僅支持Real、RealVector、RealMatrix、Complex、VectorComplex、Matrix六種格式的數(shù)據(jù),且必須根據(jù)具體情況進行選擇。只有LabVIEW中的數(shù)據(jù)類型與MATLAB中的數(shù)據(jù)型相匹配,才能進行數(shù)據(jù)傳輸。②用該方法實現(xiàn)LabVIEW與MATLAB的混合編程的缺點是沒有脫離MATLAB的環(huán)境,而只是將它在后臺執(zhí)行。
結 論
LabVIEW是當今運用非常廣泛的虛擬儀器開發(fā)平臺軟件,MATLAB則是具有強大數(shù)值分析功能的計算機語言,本文揚長避短地將LabVIEW和MATLAB混合編程技術應用于水聲信號處理,以達到更好的處理效果。本文的創(chuàng)新點是:本文研究LabVIEW和MATLAB混合編程技術,并將其應用于水聲信號處理中,編程達到了好的處理效果。
參考文獻
[1] 侯國平、王坤、葉齊鑫編著. LabVIEW7.1編程與虛擬儀器設計. 清華大學出版社[M]. 2005.2
[2] 飛思科技產品研發(fā)中心編著. MATLAB7輔助信號處理技術與應用[M]. 2005
[3] 昝淘等. LabVIEW中人工神經網絡計算的實現(xiàn)與應用. 微計算機信息[J]. 2006年第22卷. P122~123
[4] Using LabVIEW for the design and control of digital signal processing systems Simulation of the ultra slow extraction at COSY. Heinrichs, G.; Rongen, H.; Jamal, R. Nuclear Instruments and Methods in Physics Research Section A: Accelerators, Spectrometers, Detectors and Associated Equipment Volume: 352, Issue: 1-2,
[5] 陳宵雅、金心宇. 結合MATLAB的虛擬儀器技術在諧波測量系統(tǒng)中的應用[J]. 電測與儀表. 2005.4 p23~26