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

  摘  要MATLABLabVIEW是目前流行于工程技術領域的工具軟件,。LabVIEW的優(yōu)點是能夠將信號順利地采集進來并進行自動化分析和處理,,但其分析信號能力有局限和缺陷。MATLAB分析計算能力很強,,但與外部設備交換信息能力卻很差,。將二者結合起來混合編程,取長補短,,充分發(fā)揮各自的優(yōu)勢,,可設計出功能比較完善的信號處理系統(tǒng)。為此,,研究了在LabVIEW中調用MATLAB進行信號處理的方法,。詳述了各種方法的使用流程、注意事項,,并總結了各種方法使用的不同領域和優(yōu)缺點,。

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

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

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

  1 MATLAB在LabVIEW中調用的實現(xiàn)

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

  1.1 調用MATLAB script節(jié)點算法

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

  1.1.1 調用MATLAB script節(jié)點過程

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

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

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

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

  (2)從MATLAB中導入,??梢韵仍贛ATLAB環(huán)境下編程運行調試好程序后,再用右鍵單擊MATLAB腳本節(jié)點,,打開快捷菜單,,然后選擇Import,從對話框中選擇需要導入的文件即可[3],。

  1.1.3 保存MATLAB腳本程序

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

  1.1.4 調用過程的注意事項

  在LabVIEW中調用MATLAB要注意以下幾點:

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

  (2)使用MATLAB腳本時需要調用MATLAB服務器,,所以計算機上要裝有MATLAB 6.5以上的版本。

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

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

  1.2 應用COM 組件調用MATLAB

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

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

  1.3 應用動態(tài)鏈接庫技術調用MATLAB

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

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

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

  這種方法適合對C語言等編程很熟練的高手,因為在LabVIEW動態(tài)鏈接庫需要用C語言等編程,。

  2 LabVIEW中調用MATLAB進行信號處理的實現(xiàn)

  2.1 信號分析的處理過程

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

004.jpg

  2.2 調用MATLAB script節(jié)點法對信號進行濾波

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

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

005.jpg

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

007.jpg

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

008.jpg

  2.3 調用MATLAB script節(jié)點法對信號進行濾波程序

  程序如下:

  close all;%先關閉所有圖片

  Adc=2;%直流分量幅度

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

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

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

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

  title('原始信號');

  hold on

  figure;

  Y=fft(S,256);%對信號進行256點的FFT

  Ayy=abs(Y);%取模

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

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

  hold on

  figure;

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

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

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

  IY(10:N-10)=0;

  plot(RY);

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

  hold on

  figure;

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

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

  figure

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

  并與原始信號進行對比

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

  hold on

  plot(S)

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

  參考文獻

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

  [2] 劉君華.基于LabVIEW的虛擬儀器設計與應用[M].北京:高等教育出版社,,2002.

  [3] 石博強.LabVIEW6.1編程技術實用教程[M].北京:中國鐵道出版社,,2002.

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

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


此內容為AET網站原創(chuàng),未經授權禁止轉載,。