摘 要:本文結(jié)合LabVIEW虛擬儀器開(kāi)發(fā)平臺(tái)和MATLAB軟件強(qiáng)大的數(shù)值分析功能的優(yōu)點(diǎn),利用LabVIEW和MATLAB混合編程技術(shù)應(yīng)用于水聲信號(hào)處理,該方法既能提供良好的計(jì)算機(jī)用戶圖形界面,又具有很強(qiáng)的水聲信號(hào)處理能力,仿真結(jié)果表明了該方法的有效性。
關(guān)鍵詞:LabVIEW MATLAB 水聲信號(hào)處理 MATLAB Script節(jié)點(diǎn)法
引 言
水聲信號(hào)處理是海洋及信息處理領(lǐng)域研究最為活躍的學(xué)科之一,它在海洋勘探、水聲定位、水下機(jī)器人等方面應(yīng)用十分廣泛,但是隨著海洋開(kāi)發(fā)、信息科學(xué)技術(shù)的高速發(fā)展,對(duì)水聲信號(hào)處理的要求越來(lái)越高。良好的人機(jī)交互界面、計(jì)算機(jī)圖形化顯示以及強(qiáng)大的數(shù)據(jù)處理分析能力,成為目前水聲信號(hào)處理領(lǐng)域的研究趨勢(shì)。為此,本文利用LabVIEW和MATLAB混合編程技術(shù)應(yīng)用于水聲信號(hào)處理,既能提供良好的計(jì)算機(jī)圖形化界面,又具有強(qiáng)大的數(shù)據(jù)處理分析能力,實(shí)驗(yàn)仿真結(jié)果表明了該方法的有效性。
1 LabVIEW語(yǔ)言和MATLAB軟件概述
LabVIEW(Laboratory Virtual Instrument Engineering Workbench,實(shí)驗(yàn)室虛擬儀器工作平臺(tái))是美國(guó)National Instruments公司推出的虛擬儀器開(kāi)發(fā)平臺(tái)軟件,是一種非常優(yōu)秀的面向?qū)ο蟮膱D形化編程語(yǔ)言,用于快速創(chuàng)建測(cè)試、測(cè)量和控制應(yīng)用程序。以其強(qiáng)大的數(shù)據(jù)采集、數(shù)據(jù)處理、數(shù)據(jù)分析和儀器控制功能在現(xiàn)代測(cè)控領(lǐng)域中得到了廣泛的應(yīng)用。它具有如下優(yōu)點(diǎn):提供各種接口總線和常用儀器的驅(qū)動(dòng)程序,用戶可將其與測(cè)量硬件連接,方便地完成信號(hào)數(shù)據(jù)采集、信號(hào)分析、數(shù)據(jù)存儲(chǔ)以及數(shù)據(jù)處理等許多通常的任務(wù);可以很方便的創(chuàng)造一個(gè)交互式的系統(tǒng)控制界面,從而使各種信號(hào)的采集和處理開(kāi)發(fā)更加人性化,因?yàn)槠渫庑魏筒僮骺梢阅M實(shí)際的儀器。雖然LabVIEW 對(duì)于一般信號(hào)的分析處理比較方便,內(nèi)置了許多用于分析測(cè)量數(shù)據(jù)的函數(shù),能夠勝任大多數(shù)測(cè)量任務(wù),但是其本身也存在不足,如不能完全提供用戶所需要的驅(qū)動(dòng)程序和調(diào)用系統(tǒng)程序?qū)崿F(xiàn)底層操作,不擅長(zhǎng)于完成大量數(shù)據(jù)處理的任務(wù)。因此對(duì)于一些虛擬儀器中需要進(jìn)行大量數(shù)據(jù)運(yùn)算處理的復(fù)雜應(yīng)用,僅僅用LabVIEW就顯得有些力不從心。
MATLAB軟件為幾乎所有的工程計(jì)算領(lǐng)域提供了準(zhǔn)確、高效的多種功能的工具箱,在信號(hào)和圖像處理等領(lǐng)域具有無(wú)可比擬的優(yōu)勢(shì)。它針對(duì)許多領(lǐng)域開(kāi)發(fā)了模塊:如信號(hào)處理、數(shù)據(jù)庫(kù)接口、神經(jīng)網(wǎng)絡(luò)、小波分析、圖像處理等。MATLAB以其強(qiáng)大的科學(xué)計(jì)算功能、大量穩(wěn)定可靠的算法庫(kù)、編程效率高等特點(diǎn)已成為數(shù)學(xué)計(jì)算工具方面事實(shí)上的標(biāo)準(zhǔn)。
因此結(jié)合上述兩者的優(yōu)點(diǎn),可以通過(guò)LabVIEW程序接口函數(shù)來(lái)調(diào)用其它各種應(yīng)用程序和MATLAB軟件中強(qiáng)大的數(shù)據(jù)處理軟件包,這樣結(jié)合可以使軟件平臺(tái)具有更強(qiáng)的數(shù)據(jù)處理能力,對(duì)于單獨(dú)運(yùn)用MALTLAB和虛擬儀器進(jìn)行大量數(shù)據(jù)運(yùn)算處理所解決不了的問(wèn)題就迎刃而解了。
2 LabVIEW和MATLAB混合編程在水聲信號(hào)處理中的應(yīng)用
本文主要研究LabVIEW和MATLAB混合編程技術(shù)應(yīng)用于水聲信號(hào)提取,通過(guò)對(duì)雜波等背景噪聲的消除來(lái)達(dá)到特征信號(hào)提取的目的。
2.1 LabVIEW和MATLAB混合編程設(shè)計(jì)
利用LabVIEW 內(nèi)置的許多用于分析測(cè)量數(shù)據(jù)的函數(shù)對(duì)信號(hào)進(jìn)行一般的分析處理。如圖1所示為用LabVIEW7.1編寫(xiě)好的包括巴特沃斯、切比雪夫、橢圓濾波器的程序框圖。
[align=center]
圖1 濾波器程序框圖[/align]
在水聲信號(hào)的處理技術(shù)中,因水下環(huán)境的復(fù)雜性,目標(biāo)信息往往淹沒(méi)在各種各樣的干擾背景中。僅僅用LabVIEW語(yǔ)言編程處理達(dá)不到很好的效果,但是LabVIEW可以通過(guò)其程序接口函數(shù)來(lái)調(diào)用其它的各種應(yīng)用程序和軟件,在LabVIEW中調(diào)用MATLAB下編好的小波消噪程序。其中,調(diào)用方式有好幾種,可以使用DLL、ActiveX、MATLAB Script節(jié)點(diǎn)法等,這里用MATLAB Script節(jié)點(diǎn)法,因?yàn)槭褂肕ATLAB Script節(jié)點(diǎn)法快捷方便,該方法具有多輸入、多輸出的特點(diǎn),一次處理的信息量可以很大。而且MATLAB程序可以直接輸入節(jié)點(diǎn)中,也可以先在MATLAB下調(diào)試,無(wú)誤后再導(dǎo)入到MATLAB Script節(jié)點(diǎn)中。
LabVIEW7.1提供的MATLAB Script節(jié)點(diǎn)通過(guò)選擇All Functions >>Analyze >>Mathematics >>Formula >>MATLAB Script,就將該節(jié)點(diǎn)添加到流程圖中。先添加輸入變量xx和x,變量類型分別為RealVector和Real,添加輸出變量xd,變量類型為RealVector,然后將MATLAB小波工具箱中的函數(shù)WDEN()寫(xiě)入節(jié)點(diǎn)內(nèi),該函數(shù)可直接對(duì)一維信號(hào)進(jìn)行噪聲消除,其調(diào)用格式為[XD,CXD,LXD]=WDEN(X,TPTR,SORH,SCAL,N,‘wname’),其中N為小波分解的層數(shù),這里設(shè)置為8。wname指定分解時(shí)所用的小波。運(yùn)行LabVIEW執(zhí)行該節(jié)點(diǎn),則同時(shí)啟動(dòng)一個(gè)MATLAB進(jìn)程。
2.2 處理實(shí)例
圖2和圖3為通過(guò)MATLAB Script節(jié)點(diǎn)調(diào)用MATLAB程序的前面板和程序處理界面圖。MATLAB Script節(jié)點(diǎn)實(shí)際上是通過(guò)ActiveX控件與MATLAB Server進(jìn)行通信的.調(diào)用MATLAB函數(shù)或命令,實(shí)質(zhì)是將MATLAB當(dāng)作一個(gè)ActiveX服務(wù)器并建立ActiveX通道,然后將這個(gè)函數(shù)或命令通過(guò)ActiveX通道發(fā)給MATLAB,由MATLAB在后臺(tái)執(zhí)行,所以在計(jì)算機(jī)中必須安裝有MATLAB。
[align=center]
圖2 通過(guò)MATLAB Script節(jié)點(diǎn)調(diào)用MATLAB程序[/align]
[align=center]
圖3 通過(guò)MATLAB Script節(jié)點(diǎn)調(diào)用MATLAB程序前面板[/align]
但是,這里有兩點(diǎn)值得注意的是:①M(fèi)ATLAB Script節(jié)點(diǎn)對(duì)輸入、輸出數(shù)據(jù)的類型有明確的要求。LabVIEW和MATLAB之間的數(shù)據(jù)通信僅支持Real、RealVector、RealMatrix、Complex、VectorComplex、Matrix六種格式的數(shù)據(jù),且必須根據(jù)具體情況進(jìn)行選擇。只有LabVIEW中的數(shù)據(jù)類型與MATLAB中的數(shù)據(jù)型相匹配,才能進(jìn)行數(shù)據(jù)傳輸。②用該方法實(shí)現(xiàn)LabVIEW與MATLAB的混合編程的缺點(diǎn)是沒(méi)有脫離MATLAB的環(huán)境,而只是將它在后臺(tái)執(zhí)行。
結(jié) 論
LabVIEW是當(dāng)今運(yùn)用非常廣泛的虛擬儀器開(kāi)發(fā)平臺(tái)軟件,MATLAB則是具有強(qiáng)大數(shù)值分析功能的計(jì)算機(jī)語(yǔ)言,本文揚(yáng)長(zhǎng)避短地將LabVIEW和MATLAB混合編程技術(shù)應(yīng)用于水聲信號(hào)處理,以達(dá)到更好的處理效果。本文的創(chuàng)新點(diǎn)是:本文研究LabVIEW和MATLAB混合編程技術(shù),并將其應(yīng)用于水聲信號(hào)處理中,編程達(dá)到了好的處理效果。
參考文獻(xiàn)
[1] 侯國(guó)平、王坤、葉齊鑫編著. LabVIEW7.1編程與虛擬儀器設(shè)計(jì). 清華大學(xué)出版社[M]. 2005.2
[2] 飛思科技產(chǎn)品研發(fā)中心編著. MATLAB7輔助信號(hào)處理技術(shù)與應(yīng)用[M]. 2005
[3] 昝淘等. LabVIEW中人工神經(jīng)網(wǎng)絡(luò)計(jì)算的實(shí)現(xiàn)與應(yīng)用. 微計(jì)算機(jī)信息[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] 陳宵雅、金心宇. 結(jié)合MATLAB的虛擬儀器技術(shù)在諧波測(cè)量系統(tǒng)中的應(yīng)用[J]. 電測(cè)與儀表. 2005.4 p23~26