《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 設(shè)計(jì)應(yīng)用 > LabVIEW中調(diào)用MATLAB進(jìn)行信號處理方法研究
LabVIEW中調(diào)用MATLAB進(jìn)行信號處理方法研究
2014年微型機(jī)與應(yīng)用第10期
吳小紅
甘肅政法學(xué)院 公安技術(shù)學(xué)院,甘肅 蘭州
摘要: 系統(tǒng)是由若干互相有著某種聯(lián)系的單元組成的一個能夠完成某種功能的整體。信號作用于某系統(tǒng)的響應(yīng)如何,需要以某種方式去分析。系統(tǒng)分析需要經(jīng)過3個過程:(1)建模,以理論為基礎(chǔ),對所要研究的對象創(chuàng)建一個數(shù)學(xué)模型;(2)分析該模型;(3)做出合理的物理解釋。分析過程很關(guān)鍵,方式方法很多,工具也很多,MATLAB和LabVIEW是常用的兩個軟件分析平臺。
Abstract:
Key words :

  摘  要MATLABLabVIEW是目前流行于工程技術(shù)領(lǐng)域的工具軟件。LabVIEW的優(yōu)點(diǎn)是能夠?qū)⑿盘栱樌夭杉M(jìn)來并進(jìn)行自動化分析和處理,但其分析信號能力有局限和缺陷。MATLAB分析計(jì)算能力很強(qiáng),但與外部設(shè)備交換信息能力卻很差。將二者結(jié)合起來混合編程,取長補(bǔ)短,充分發(fā)揮各自的優(yōu)勢,可設(shè)計(jì)出功能比較完善的信號處理系統(tǒng)。為此,研究了在LabVIEW中調(diào)用MATLAB進(jìn)行信號處理的方法。詳述了各種方法的使用流程、注意事項(xiàng),并總結(jié)了各種方法使用的不同領(lǐng)域和優(yōu)缺點(diǎn)。

  關(guān)鍵詞: MATLAB;LabVIEW;信號處理;數(shù)據(jù)采集;動態(tài)鏈接庫

  系統(tǒng)是由若干互相有著某種聯(lián)系的單元組成的一個能夠完成某種功能的整體。信號作用于某系統(tǒng)的響應(yīng)如何,需要以某種方式去分析。系統(tǒng)分析需要經(jīng)過3個過程:(1)建模,以理論為基礎(chǔ),對所要研究的對象創(chuàng)建一個數(shù)學(xué)模型;(2)分析該模型;(3)做出合理的物理解釋。分析過程很關(guān)鍵,方式方法很多,工具也很多,MATLAB和LabVIEW是常用的兩個軟件分析平臺。

  MATLAB的科學(xué)計(jì)算能力、圖像處理和數(shù)值分析能力都比較強(qiáng)。LabVIEW是用于編制虛擬儀器的圖形化編程工具。自然界各種信號信息的監(jiān)測,機(jī)器、車輛等故障的診斷,還有許多即時動態(tài)信號的監(jiān)控,需要先將信號盡量不失真地采集進(jìn)來,這一點(diǎn)LabVIEW很容易完成。對采集信號作用于系統(tǒng)模型復(fù)雜分析計(jì)算最好用MATLAB去完成。為了直觀、方便觀察,可用LabVIEW做一個界面[1]。

  1 MATLAB在LabVIEW中調(diào)用的實(shí)現(xiàn)

  LabVIEW和MATLAB混合編程的實(shí)現(xiàn)主要有以下幾種方法。

  1.1 調(diào)用MATLAB script節(jié)點(diǎn)算法

  LabVIEW提供了各類腳本節(jié)點(diǎn)與外部實(shí)現(xiàn)通信和交換信息。LabVIEW中可通過MATLAB script節(jié)點(diǎn)調(diào)用MATLAB的腳本程序(即M文件)。

  1.1.1 調(diào)用MATLAB script節(jié)點(diǎn)過程

  從LabVIEW中函數(shù)選版選用過程為:函數(shù)→數(shù)學(xué)→腳本與公式→腳本節(jié)點(diǎn)→MATLAB script節(jié)點(diǎn)。拖曳出節(jié)點(diǎn),放在程序框圖面板中,用工具選版按需要調(diào)節(jié)大?。话闯绦蛐枰獮樵摴?jié)點(diǎn)添加輸入輸出變量。LabVIEW可通過輸入變量向腳本中輸入所要處理的信號,運(yùn)行腳本后的結(jié)果通過輸出變量送到LabVIEW的輸出控件,顯示出處理的數(shù)據(jù)或者波形圖,直觀清楚,就像實(shí)際的儀器面板一樣。具體方法為:右鍵單擊腳本邊框,從彈出的菜單中選擇添加輸入或輸出,隨即在邊框出現(xiàn)一個小方框,一般習(xí)慣輸入在左邊,輸出在右邊。添加之后,各變量需要命名,用Labeling工具依據(jù)腳本程序中的變量依次命名,注意選擇合適的數(shù)據(jù)類型,否則運(yùn)行會出錯[2]。

  1.1.2 向MATLAB腳本節(jié)點(diǎn)輸入腳本程序

  向MATLAB腳本節(jié)點(diǎn)輸入腳本程序有兩種方法:

  (1)用Operating或Labeling工具直接向MATLAB腳本節(jié)點(diǎn)編寫腳本程序。

  (2)從MATLAB中導(dǎo)入。可以先在MATLAB環(huán)境下編程運(yùn)行調(diào)試好程序后,再用右鍵單擊MATLAB腳本節(jié)點(diǎn),打開快捷菜單,然后選擇Import,從對話框中選擇需要導(dǎo)入的文件即可[3]。

  1.1.3 保存MATLAB腳本程序

  右鍵單擊MATLAB腳本節(jié)點(diǎn),從打開的菜單中選擇Export,在打開的Name the script對話框中輸入需要保存的文件名,點(diǎn)擊save,以MATLAB文本文件擴(kuò)展名.m保存腳本程序[3]。

  1.1.4 調(diào)用過程的注意事項(xiàng)

  在LabVIEW中調(diào)用MATLAB要注意以下幾點(diǎn):

  (1)LabVIEW是通過Activex技術(shù)來調(diào)用MATLAB腳本節(jié)點(diǎn)的,MATLAB腳本只適用于Windows操作系統(tǒng)。

  (2)使用MATLAB腳本時需要調(diào)用MATLAB服務(wù)器,所以計(jì)算機(jī)上要裝有MATLAB 6.5以上的版本。

  (3)調(diào)用調(diào)試過程中的數(shù)據(jù)類型要匹配,否則運(yùn)行會出錯[4]。

  這種方法不用復(fù)雜的編程,操作也簡單,對于初學(xué)者比較容易掌握,但對計(jì)算機(jī)操作系統(tǒng)要求較高,兩個軟件都需要正確全面安裝各個組件,否則無法正常調(diào)用。

  1.2 應(yīng)用COM 組件調(diào)用MATLAB

  MATLAB中M語言開發(fā)的算法可以用COM技術(shù)自動轉(zhuǎn)變?yōu)楠?dú)立的COM組件對象,可在任何支持COM對象的應(yīng)用程序中使用。LabVIEW在其相關(guān)的函數(shù)選版→互連接口→ActiveX模塊中提供了一組與該組件操作相關(guān)的子VI,實(shí)現(xiàn)對COM對象具體的操作。

  這種方法適用于規(guī)模較大的應(yīng)用程序,編程有些復(fù)雜,要求使用者對MATLAB工具包和LabVIEW的子程序應(yīng)用特別熟練[5]。

  1.3 應(yīng)用動態(tài)鏈接庫技術(shù)調(diào)用MATLAB

  在LabVIEW編程界面下利用動態(tài)鏈接庫技術(shù)調(diào)用MATLAB,步驟為:

  (1)在MATLAB編程界面下用m文件翻譯器Matcom將源文件翻譯為cpp代碼,同時編譯為dll文件。

  (2)在LabVIEW編程界面下用調(diào)用庫函數(shù)CLF(CallLibrary Function)節(jié)點(diǎn),進(jìn)行動態(tài)鏈接庫函數(shù)的調(diào)用。

  這種方法適合對C語言等編程很熟練的高手,因?yàn)樵贚abVIEW動態(tài)鏈接庫需要用C語言等編程。

  2 LabVIEW中調(diào)用MATLAB進(jìn)行信號處理的實(shí)現(xiàn)

  2.1 信號分析的處理過程

  LabVIEW與MATLAB協(xié)同工作,在分析處理信號過程中,LabVIEW負(fù)責(zé)數(shù)據(jù)采集,同時設(shè)計(jì)用戶圖形界面;MATLAB在后臺主要完成大型計(jì)算、數(shù)據(jù)分析、細(xì)節(jié)處理,提供給LabVIEW調(diào)用,其工作過程如圖1所示。

004.jpg

  2.2 調(diào)用MATLAB script節(jié)點(diǎn)法對信號進(jìn)行濾波

  實(shí)際的信號很容易被干擾,特別是傳感器輸出的模擬信號,如汽車油門開度傳感器、水溫傳感器、真空度傳感器等。采集到原始信號后,必須對其進(jìn)行濾除處理,除去干擾信號,才能正確使用。

  混有干擾的信號直接濾波效果較差,在時域上也很難看出是什么特征的,但如果變換到頻域之后,就很容易看出特征了。因此,將原始有干擾的信號先進(jìn)行FFT變換,將時域變換到頻域,再進(jìn)行濾波處理,最后再反變換還原信號,其效果很好。LabVIEW信號處理模塊有不少濾波節(jié)點(diǎn)可以完成濾波功能,圖2就是用LabVIEW處理信號的程序框圖,可以看到過程比較復(fù)雜,處理后顯示的信號也較差。

005.jpg

  上述過程在MATLAB中由幾個函數(shù)運(yùn)算就可完成,圖3是LabVIEW調(diào)用MATLAB script節(jié)點(diǎn),對信號變換濾波處理的程序框圖。按照MATLAB程序中要求的信息分別在腳本節(jié)點(diǎn)外框上添加輸入變量和輸出變量(一般習(xí)慣把輸入變量放在左邊,輸出變量放在右邊),同時修改數(shù)據(jù)類型,使二者匹配。將LabVIEW采集到的信息送給MATLAB script節(jié)點(diǎn),導(dǎo)入事先在MATLAB中調(diào)試好的程序,在LabVIEW中運(yùn)行即可。輸出信號可通過輸出變量用相應(yīng)的顯示控件在前面板顯示,處理過程中許多需要設(shè)定的參數(shù)都可以在前面板以按鈕方式設(shè)置,數(shù)據(jù)可任意改變,就像一個實(shí)際儀器一樣,操作簡單、數(shù)據(jù)可靠。該程序還可以打包成可安裝文件,在任何平臺上使用。

007.jpg

  圖4是程序運(yùn)行后顯示的波形。由圖4(a)、(b)可知,原始信號是一個混雜有干擾的信號,其頻譜在低頻處有一個模值特別高的點(diǎn),這一點(diǎn)就是原信號的數(shù)據(jù),這是需要保留的點(diǎn);而在高頻部分還有很多模值相對較小的點(diǎn),這些就是干擾信號,是要去除的數(shù)據(jù)。對數(shù)據(jù)進(jìn)行低通濾波,把高頻的信號去掉,得到濾波后信號的頻譜圖,如圖4(c)、(d)所示。由圖可知,高頻部分的雜波已經(jīng)被清除。如要了解時域的波形上有什么變化,可以對頻域信號進(jìn)行反傅里葉變換,得到經(jīng)過低通濾波后的時域波形,恢復(fù)后的波形是去除干擾后很好的正弦波。

008.jpg

  2.3 調(diào)用MATLAB script節(jié)點(diǎn)法對信號進(jìn)行濾波程序

  程序如下:

  close all;%先關(guān)閉所有圖片

  Adc=2;%直流分量幅度

  Fs=256;%采樣頻率(Hz)

  N=256;%采樣點(diǎn)數(shù)

  t=0:1/Fs:N/Fs;%采樣時刻

  plot(t,S);%顯示原始信號

  title('原始信號');

  hold on

  figure;

  Y=fft(S,256);%對信號進(jìn)行256點(diǎn)的FFT

  Ayy=abs(Y);%取模

  plot(Ayy);%顯示取模后的FFT信號

  title('原始信號頻譜圖');

  hold on

  figure;

  RY=real(Y);%提取FFT后數(shù)據(jù)的實(shí)部

  IY=imag(Y);%提取FFT后數(shù)據(jù)的虛部

  RY(10:N-10)=0;%理想低通濾波

  IY(10:N-10)=0;

  plot(RY);

  title('濾波后信號的頻譜圖');

  hold on

  figure;

  YY=RY+1i*IY;%濾波后重新組合實(shí)部和虛部

  SS=real(ifft(YY));%進(jìn)行反傅里葉變換

  figure

  plot(SS,'r');%顯示濾波后的信號,

  并與原始信號進(jìn)行對比

  title('濾波后的信號');

  hold on

  plot(S)

  MATLAB具有強(qiáng)大的數(shù)值分析和處理能力,還擁有眾多的專業(yè)工具箱,因此在LabVIEW中調(diào)用MATLAB來解決問題過程簡單易行,并能夠擴(kuò)展LabVIEW的功能,極大地拓寬了虛擬儀器的開發(fā)范圍。將LabVIEW與MATLAB有機(jī)地結(jié)合起來,在大型的測試系統(tǒng)與仿真過程中是非常有利的。

  參考文獻(xiàn)

  [1] 劉衛(wèi)國,陳昭平.MATLAB程序設(shè)計(jì)與應(yīng)用[M].北京:高等教育出版社,2002.

  [2] 劉君華.基于LabVIEW的虛擬儀器設(shè)計(jì)與應(yīng)用[M].北京:高等教育出版社,2002.

  [3] 石博強(qiáng).LabVIEW6.1編程技術(shù)實(shí)用教程[M].北京:中國鐵道出版社,2002.

  [4] BISHOP R H.LabVIEW 6i實(shí)用教程[M].喬瑞萍,譯.北京:電子工業(yè)出版社,2002.

  [5] 王沫然.MATLAB與科學(xué)計(jì)算(第二版)[M].北京:電子工業(yè)出版社,2003.


此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。
主站蜘蛛池模板: 成人午夜视频在线观看 | 欧美线在线精品观看视频 | 国产精品理论片在线观看 | 欧美 自拍 丝袜 亚洲 | 美女一级毛片免费不卡视频 | 国产精品亚洲精品不卡 | 99久久免费看国产精品 | 精品无码久久久久久国产 | 嫩模大尺度人体福利视频 | 欧美国产一区二区 | 91精品手机国产在线能 | 国产高清精品自在久久 | 韩日一级视频 | 青青草原色 | 欧美日韩亚洲综合另类ac | 国产网站免费视频 | 国产成人综合网亚洲欧美在线 | 亚洲91精品| 日韩中文字幕精品久久 | 免费国产午夜高清在线视频 | 香蕉久久综合精品首页 | 国产自产在线 | 欧美日韩一区二区不卡三区 | 国产综合久久久久 | 看片免费黄 | 国产福利一区二区在线精品 | 男人天堂中文字幕 | 亚洲欧美自拍一区 | 成人毛片在线播放 | 欧美成人午夜在线全部免费 | 国产一区二区三区亚洲综合 | 国产成年女一区二区三区 | 国产免费一级视频 | 国产一区2区 | 亚洲第一网站 | 无限资源中文免费 | 国产高清精品在线 | 加勒比一区二区 | 国产综合视频在线观看一区 | 天堂中文资源在线8 | 黄网站色视频免费观看w |