標(biāo)題: 干貨!從示波器到MATLAB:如何實(shí)現(xiàn)電子信號(hào)的數(shù)學(xué)分析 [打印本頁]

作者: Freeman_2016    時(shí)間: 2019-10-11 14:27
標(biāo)題: 干貨!從示波器到MATLAB:如何實(shí)現(xiàn)電子信號(hào)的數(shù)學(xué)分析
Matlab是一款應(yīng)用較廣的數(shù)學(xué)軟件,常用于算法開發(fā)、數(shù)據(jù)可視化、數(shù)據(jù)分析以及數(shù)值計(jì)算的高級(jí)技術(shù)計(jì)算語言和交互式環(huán)境。
Matlab語言十分簡(jiǎn)潔,這使得它在數(shù)值計(jì)算、矩陣計(jì)算等方面相對(duì)于C、Fortran等傳統(tǒng)語言有著無以倫比的優(yōu)越性。而其集成了易于使用的視窗環(huán)境,可以非常方便的繪制函數(shù)和數(shù)據(jù)圖層。Matlab常常引用于工程計(jì)算、控制設(shè)計(jì)、信號(hào)處理與通訊、圖像處理、信號(hào)檢測(cè)等領(lǐng)域。
Matlab是對(duì)已有數(shù)據(jù)的分析,而數(shù)據(jù)的采集則交由外部的采集儀來完成,比如麥克風(fēng)采集音頻信號(hào)、攝像機(jī)采集圖像光學(xué)信號(hào)、示波器采集電路信號(hào)等。示波器作為最常用的測(cè)量?jī)x器可以直接或間接測(cè)量出大部分領(lǐng)域的可感知信號(hào),包括音頻、光強(qiáng)、電磁波等(當(dāng)然前提得轉(zhuǎn)化為電信號(hào)才行)。
下面我們以mobileScope示波器 為例講解配合matlab對(duì)信號(hào)的分析。
首先采集一組三角波和正弦波信號(hào)。
采集一組三角波和正弦波信號(hào)
點(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í)際采集的。
§
chDatas = load('wave17_01_03_17_42_34_824.dat');
§
matlab載入波形數(shù)據(jù)還是相對(duì)簡(jiǎn)單的,一行語句就搞定,而且還自動(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ù)、絕對(duì)值等等,都是幾行語句就搞定的事。
§
addition = ch1 + ch2; % 加法
§
§
subtraction = ch1 - ch2; % 減法
§
§
abs2 = abs(ch2); % 絕對(duì)值
§
波形加減后的圖形
上圖所示是波形加減后的圖形
李莎茹曲線
李莎茹圖形,又稱XY模式,可以用來測(cè)量?jī)陕沸盘?hào)相位差,評(píng)定頻率比參數(shù)等強(qiáng)大的功能。這個(gè)在matlab上只需要一句語句就能畫出來的。
§
plot(ch1, ch2, '-g');
§
三角波和正弦波合成的李莎茹圖形
上圖所示既是三角波和正弦波合成的李莎茹圖形
時(shí)頻域運(yùn)算
對(duì)于信號(hào)處理來說,時(shí)域和頻域的轉(zhuǎn)換幾乎是用的最多的。離散傅里葉變換FFT可以方便的把一組時(shí)域信號(hào)轉(zhuǎn)換頻率的權(quán)重集合,直觀的反應(yīng)出一個(gè)信號(hào)的頻率成分。
§
ch1FFT = abs(fft(ch1, FFT_N));
§
頻率成份
上圖顯示出兩組信號(hào)的頻率成份
坐標(biāo)系轉(zhuǎn)換
直角坐標(biāo)系轉(zhuǎn)換為極坐標(biāo)顯示。
§
polarTRefer = -pi:2*pi/length(ch1):pi-2*pi/length(ch1);
§
§
polar(polarTRefer, ch1, 'g');
§
三角波信號(hào)的在極坐標(biāo)系下的顯示
正選波信號(hào)的在極坐標(biāo)系下的顯示
上面圖顯示兩個(gè)通道信號(hào)的在極坐標(biāo)系下的顯示
濾波處理
濾波是數(shù)字信號(hào)處理的一個(gè)比較復(fù)雜的問題,一個(gè)好的濾波器可以真實(shí)還原源數(shù)據(jù)信號(hào)有效屏蔽噪聲。Matlab集成低通濾波器。
§
filter_out = filter(filter_bz, filter_az, filter_in);
§
綠色是原始帶噪聲的信號(hào),紅色為經(jīng)過濾波后的信號(hào)波形
上圖綠色是原始帶噪聲的信號(hào),紅色為經(jīng)過濾波后的信號(hào)波形
曲線擬合
示波器采集的是離散點(diǎn)信號(hào),有時(shí)候想要得到其擬合的曲線,以用于建立模型或者預(yù)測(cè)數(shù)據(jù)。典型的例子為,電池在沒電情況下的放電曲線,信號(hào)傳輸過程中的衰減特性曲線或者熱傳導(dǎo)曲線等。示波器采集的是離散帶噪聲的樣本,擬合的意義就是剔除干擾找到最佳的曲線。
曲線擬合的效果






歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1