Matlab是一款應(yīng)用較廣的數(shù)學(xué)軟件蹭沛,常用于算法開發(fā)臂寝、數(shù)據(jù)可視化、數(shù)據(jù)分析以及數(shù)值計(jì)算的高級技術(shù)計(jì)算語言和交互式環(huán)境摊灭。
Matlab語言十分簡潔交煞,這使得它在數(shù)值計(jì)算、矩陣計(jì)算等方面相對于C斟或、Fortran等傳統(tǒng)語言有著無以倫比的優(yōu)越性素征。而其集成了易于使用的視窗環(huán)境,可以非常方便的繪制函數(shù)和數(shù)據(jù)圖層萝挤。Matlab常常引用于工程計(jì)算御毅、控制設(shè)計(jì)、信號處理與通訊怜珍、圖像處理端蛆、信號檢測等領(lǐng)域。
Matlab是對已有數(shù)據(jù)的分析酥泛,而數(shù)據(jù)的采集則交由外部的采集儀來完成今豆,比如麥克風(fēng)采集音頻信號嫌拣、攝像機(jī)采集圖像光學(xué)信號、示波器采集電路信號等呆躲。示波器作為最常用的測量儀器可以直接或間接測量出大部分領(lǐng)域的可感知信號异逐,包括音頻、光強(qiáng)插掂、電磁波等(當(dāng)然前提得轉(zhuǎn)化為電信號才行)灰瞻。
下面我們以mobileScope示波器(www.fescale.com)為例講解配合matlab對信號的分析。
首先采集一組三角波和正弦波信號辅甥。
采集一組三角波和正弦波信號
點(diǎn)擊導(dǎo)出酝润,可將圖層數(shù)據(jù)導(dǎo)出來。
“導(dǎo)出”功能按鈕
數(shù)據(jù)文件所在目錄
打開軟件所在的文件夾璃弄,可以看到里面有個(gè)analyse.m?的腳本文件和matlab的文件夾要销,導(dǎo)出的數(shù)據(jù)就放在里面命名方式為xxx.dat,將這兩個(gè)文件拷貝到電腦夏块。
Analyse.m文件中集成了幾個(gè)比較經(jīng)典的demo蕉陋,我們來看下幾個(gè)主要demo的代碼示例。
我們先打開analyse.m文件拨扶,將里面需要載入波形數(shù)據(jù)文件修改為實(shí)際采集的。
[if !supportLists]§?[endif]
chDatas = load('wave17_01_03_17_42_34_824.dat');
[if !supportLists]§?[endif]
matlab載入波形數(shù)據(jù)還是相對簡單的茁肠,一行語句就搞定患民,而且還自動(dòng)生成相應(yīng)的矩陣。當(dāng)然matlab目前也支持使用C/C++垦梆,但顯然那會(huì)是一個(gè)相當(dāng)煩躁的編碼過程匹颤。
運(yùn)行:
matlab描繪的兩組波形
可以看出這個(gè)和示波器顯示的是一致的,比例有所壓縮托猩,這個(gè)我們可以隨意用鼠標(biāo)調(diào)整印蓖。
基本矩陣運(yùn)算
Matlab支持豐富的矩陣運(yùn)算,加減乘除京腥、微分赦肃、倒數(shù)、絕對值等等公浪,都是幾行語句就搞定的事他宛。
[if !supportLists]§?[endif]
addition = ch1 + ch2; % 加法
[if !supportLists]§?[endif]
[if !supportLists]§?[endif]
subtraction = ch1 - ch2; % 減法
[if !supportLists]§?[endif]
[if !supportLists]§?[endif]
abs2 = abs(ch2); % 絕對值
[if !supportLists]§?[endif]
波形加減后的圖形
上圖所示是波形加減后的圖形
李莎茹曲線
李莎茹圖形,又稱XY模式欠气,可以用來測量兩路信號相位差厅各,評定頻率比參數(shù)等強(qiáng)大的功能。這個(gè)在matlab上只需要一句語句就能畫出來的预柒。
[if !supportLists]§?[endif]
plot(ch1, ch2, '-g');
[if !supportLists]§?[endif]
三角波和正弦波合成的李莎茹圖形
上圖所示既是三角波和正弦波合成的李莎茹圖形
時(shí)頻域運(yùn)算
對于信號處理來說队塘,時(shí)域和頻域的轉(zhuǎn)換幾乎是用的最多的袁梗。離散傅里葉變換FFT可以方便的把一組時(shí)域信號轉(zhuǎn)換頻率的權(quán)重集合,直觀的反應(yīng)出一個(gè)信號的頻率成分憔古。
[if !supportLists]§?[endif]
ch1FFT = abs(fft(ch1, FFT_N));
[if !supportLists]§?[endif]
頻率成份
上圖顯示出兩組信號的頻率成份
坐標(biāo)系轉(zhuǎn)換
直角坐標(biāo)系轉(zhuǎn)換為極坐標(biāo)顯示遮怜。
[if !supportLists]§?[endif]
polarTRefer = -pi:2*pi/length(ch1):pi-2*pi/length(ch1);
[if !supportLists]§?[endif]
[if !supportLists]§?[endif]
polar(polarTRefer, ch1, 'g');
[if !supportLists]§?[endif]
三角波信號的在極坐標(biāo)系下的顯示
正選波信號的在極坐標(biāo)系下的顯示
上面圖顯示兩個(gè)通道信號的在極坐標(biāo)系下的顯示
濾波處理
濾波是數(shù)字信號處理的一個(gè)比較復(fù)雜的問題,一個(gè)好的濾波器可以真實(shí)還原源數(shù)據(jù)信號有效屏蔽噪聲投放。Matlab集成低通濾波器奈泪。
[if !supportLists]§?[endif]
filter_out = filter(filter_bz, filter_az, filter_in);
[if !supportLists]§?[endif]
綠色是原始帶噪聲的信號,紅色為經(jīng)過濾波后的信號波形
上圖綠色是原始帶噪聲的信號灸芳,紅色為經(jīng)過濾波后的信號波形
曲線擬合
示波器采集的是離散點(diǎn)信號涝桅,有時(shí)候想要得到其擬合的曲線,以用于建立模型或者預(yù)測數(shù)據(jù)烙样。典型的例子為冯遂,電池在沒電情況下的放電曲線,信號傳輸過程中的衰減特性曲線或者熱傳導(dǎo)曲線等谒获。示波器采集的是離散帶噪聲的樣本蛤肌,擬合的意義就是剔除干擾找到最佳的曲線。
曲線擬合的效果