Matlab編程並繪製函數或者信號包絡線

2021-12-26 雲龍派

Matlab繪製包絡線可以通過hilbert或者envelope實

Hilbert變換是一個很有用的變換,用它來做包絡分析更是一種有效的數據處理方法。

clc;clear all;close all;t = 0:0.01:6*pi;y = sin(t).*sin(9.*t);h = hilbert(y); % Hilbert變換y1 = 3*cos(t).*sin(9.*t);h1 = hilbert(y1); % Hilbert變換figure;subplot(2,1,1);plot(t,y);hold onplot(t,abs(h),'r--','linewidth',1.5)hold onplot(t,-1*abs(h),'r--','linewidth',1.5)grid onsubplot(2,1,2);plot(t,y1);hold onplot(t,abs(h1),'g-.','linewidth',1.5)hold onplot(t,-1*abs(h1),'g-.','linewidth',1.5)grid on

% Hilbert變換測試clcclear allclose all
ts = 0.001;fs = 1/ts;N = 200;f = 50;k = 0:N-1;t = k*ts;
% 信號變換% 結論:sin信號Hilbert變換後為cos信號y = sin(2*pi*f*t);yh = hilbert(y); % matlab函數得到信號是合成的覆信號yi = imag(yh); % 虛部為書上定義的Hilbert變換
figuresubplot(211)plot(t, y)title('原始sin信號')subplot(212)plot(t, yi)title('Hilbert變換信號')
% 檢驗兩次Hilbert變換的結果(理論上為原信號的負值)% 結論:兩次Hilbert變換的結果為原信號的負值yih = hilbert(yi);yii = imag(yih);max(y + yii)
% 信號與其Hilbert變換的正交性% 結論:Hilbert變換後的信號與原信號正交sum(y.*yi)
% 譜分析% 結論:Hilbert變換後合成的覆信號的譜沒有大於奈氏頻率的頻譜,即其譜為單邊的NFFT = 2^nextpow2(N);f = fs*linspace(0,1,NFFT);Y = fft(y, NFFT)/N;YH = fft(yh, NFFT)/N;
figuresubplot(211)plot(f,abs(Y))title('原信號的雙邊譜')xlabel('頻率f (Hz)')ylabel('|Y(f)|')subplot(212)plot(f,abs(YH))title('信號Hilbert變換後組成的覆信號的雙邊譜')xlabel('頻率f (Hz)')ylabel('|YH(f)|')

% 包絡分析(高中心頻率的窄帶信號分析)% 基於:兩個信號乘積的Hilbert變換取決於高頻信號的Hilbert變換clcclear allclose all
ts = 0.001;fs = 1/ts;N = 200;k = 0:N-1;t = k*ts;
% 原始信號f1 = 10;f2 = 70;% a = cos(2*pi*f1*t); % 包絡1a = 2 + cos(2*pi*f1*t); % 包絡2% a = 1./(1+t.^2*50); % 包絡3m = sin(2*pi*f2*t); % 調製信號y = a.*m; % 信號調製
figuresubplot(241)plot(t, a)title('包絡')subplot(242)plot(t, m)title('調製信號')subplot(243)plot(t, y)title('調製結果')
% 包絡分析% 結論:Hilbert變換可以有效提取包絡、高頻調製信號的頻率等yh = hilbert(y);aabs = abs(yh); % 包絡的絕對值aangle = unwrap(angle(yh)); % 包絡的相位af = diff(aangle)/2/pi; % 包絡的瞬時頻率,差分代替微分計算
% NFFT = 2^nextpow2(N);NFFT = 2^nextpow2(1024*4); % 改善柵欄效應f = fs*linspace(0,1,NFFT);
YH = fft(yh, NFFT)/N; % Hilbert變換覆信號的頻譜A = fft(aabs, NFFT)/N; % 包絡的頻譜
subplot(245)plot(t, aabs, t, a, '.')title('包絡的絕對值')legend('包絡分析結果', '真實包絡')subplot(246)plot(t, aangle)title('調製信號的相位')subplot(247)plot(t(1:end-1), af*fs)title('調製信號的瞬時頻率')subplot(244)plot(f,abs(YH))title('原始信號的Hilbert譜')xlabel('頻率f (Hz)')ylabel('|YH(f)|')subplot(248)plot(f,abs(A))title('包絡的頻譜')xlabel('頻率f (Hz)')ylabel('|A(f)|')

envelope繪製包絡線

clc;clear all;close all;t = 0:0.01:6*pi;y = sin(t).*sin(9.*t);figure;plot(t,y);hold on% 包絡線繪製[up,lo] = envelope(y);plot(t,up,t,lo,'linewidth',1.5)legend('signal','上包絡線','下包絡線')hold off

MATLAB相關內容往期回顧

MATLAB中繪製三維圖形

MATLAB的輸入輸出input函數

matlab詳細介紹畫柱形圖

matlab中矩陣的入門知識

matlab中legend函數的用法

matlab繪圖--線性規劃圖解法示意

Matlab 進度條的製作

Matlab對fig文件導出數據

Matlab中plot函數全功能解析

Matlab的fmincon函數求解非線性規劃

MATLAB線性規劃函數求解線性規劃

MATLAB求解混合整數線性規劃

電子書推薦(一)《MATLAB在數學建模中的應用》

matlab GUI實現導入txt文件(含字符和數據的文本)

matlab 畫圖——誤差條圖errorbar函數(含視頻講解)

matlab多項式(定義、四則計算、求根)

Matlab中繪製不同坐標的圖形

Matlab 多項式擬合函數關係

層次分析法(AHP)在MATLAB中的應用

MATLAB的lsqcurvefit函數擬合非線性式子中的未知參數

MATLAB的fgoalattain()函數求解多目標規劃

基於MATLAB的灰色預測模型GM(1,1)計算的GUI界面

電子書推薦(二)《Matlab 從入門到精通 》

MATLAB曲線擬合工具箱

MATLAB的主成分分析的GUI界面計算

MATLAB《自動控制原理》相關編程

MATLAB的switch選擇語句和input輸入語句

MATLAB的switch選擇語句和input輸入語句視頻

MATLAB實例講解—求二元函數的極值

MATLAB實例講解—求二元函數的極值視頻

MATLAB的ode45函數實例求常微分方程數值解

MATLAB求解微分方程組—以一種傳染病的動力學模型求解為例

本文內容來源於長笛人倚樓Gloria的博客,僅供參考學習,如內容、圖片有任何版權問題,請聯繫處理,24小時內刪除。

相關焦點

  • MATLAB的compass函數繪製羅盤圖
    在matlab中使用compass()函數來繪製羅盤圖。語法:羅盤圖顯示包含分量 (U,V) 的向量,就像箭頭從原點射出一樣。U、V 和 Z 位於笛卡爾坐標中,繪製於一個環狀網格上。compass(U,V) 顯示具有 n 個箭頭的羅盤圖,其中 n 是 U 或 V 中的元素數目。每個箭頭的基點的位置為原點。
  • MATLAB的ezplot函數繪製隱函數圖像
    1、plot函數plot是繪製二維圖形,並且是x,y的表達式是已知的或者是形如y=f(x)這樣確切的表達式plot函數的基本調用格式為:plot(x,y) 其中x和y為長度相同的向量,分別用於存儲x坐標和y坐標數據。函數plot 是繪製二維圖形的最基本函數,它是針對向量或矩陣的列來繪製曲線的。
  • MATLAB的feather函數繪製箭頭圖
    示例因為是向量圖,feather函數的輸入需要兩個變量,分別表示x方向和y方向。複數自帶實數和虛數,能直接繪製。中矩陣的入門知識MATLAB的輸入輸出input函數Matlab對fig文件導出數據matlab多項式(定義、四則計算、求根)MATLAB的switch選擇語句和input輸入語句視頻講解MATLAB的switch選擇語句和input輸入語句matlab中的歸一化處理的三種方法MATLAB求函數的導數和偏導
  • MATLAB的stem函數繪製枝幹圖(實例加程序)
    'MarkerEdgeColor','green')MATLAB相關內容往期回顧MATLAB中繪製三維圖形MATLAB的輸入輸出input函數matlab詳細介紹畫柱形圖matlab中矩陣的入門知識matlab中legend函數的用法matlab
  • matlab科研繪圖之包絡線繪製
    介紹一種用matlab包絡線的方法,該方法用到了matlab求局域最大最小值函數,大家有什麼好的建議和方法,歡迎在下方留言討論。原始碼:% 示例數據來源於matlab幫助文檔x = -200:0.1:200;A = (1-cos(2*pi*0.01*x)).
  • MATLAB繪製交互式圖形
    MATLAB的輸入輸出input函數matlab詳細介紹畫柱形圖matlab中矩陣的入門知識matlab中legend函數的用法matlab繪圖--線性規劃圖解法示意Matlab 進度條的製作Matlab對fig文件導出數據Matlab中plot函數全功能解析
  • MATLAB非線性擬合函數nlinfit函數
    /log(x);endMATLAB相關內容往期回顧MATLAB中繪製三維圖形MATLAB的輸入輸出input函數matlab詳細介紹畫柱形圖matlab中矩陣的入門知識matlab中legend函數的用法matlab
  • MATLAB 與複數處理相關的函數
    MATLAB的輸入輸出input函數matlab詳細介紹畫柱形圖matlab中矩陣的入門知識matlab中legend函數的用法matlab繪圖--線性規劃圖解法示意Matlab 進度條的製作Matlab對fig文件導出數據Matlab中plot函數全功能解析
  • matlab是什麼程式語言?matlab是程式語言嗎
    MATLAB可以進行矩陣運算、繪製函數和數據、實現算法、創建用戶界面、連接其他程式語言的程序等,主要應用於工程計算、控制設計、信號處理與通訊、圖像處理、信號檢測、金融建模設計與分析等領域。二、matlab是程式語言嗎?嚴格的來說matlab不算是程式語言。只有你有C語言的基礎,Matlab就很容易。
  • MATLAB的text函數圖形標註
    MATLAB的輸入輸出input函數matlab詳細介紹畫柱形圖matlab中矩陣的入門知識matlab中legend函數的用法matlab繪圖--線性規劃圖解法示意Matlab 進度條的製作Matlab對fig文件導出數據Matlab中plot函數全功能解析
  • MATLAB 蒙特卡洛方法編程並舉例分析
    函數matlab詳細介紹畫柱形圖matlab中矩陣的入門知識matlab中legend函數的用法matlab繪圖--線性規劃圖解法示意Matlab 進度條的製作Matlab對fig文件導出數據Matlab中plot函數全功能解析Matlab的fmincon函數求解非線性規劃
  • Matlab編程:自定義函數
    點擊上方藍字關注 無距書鄉 獲取即時更新在之前的文章中,我們寫到了如果有一些重複的事情要做的話,我們會用到循環的方式來做,但這
  • 雙十一特輯---MATLAB繪製愛心表白程序
    MATLAB可以實現很多數學中有趣的函數圖形,利用函數+程式語言向女生發送一段代碼,編譯執行後,你的心意就會被收到啦,這樣浪漫的感覺只有程式設計師才懂。在網上收集了一些相關的程序,大家可以自行選擇,全部程序代碼可以在公眾號回復「表白程序」,即可獲得網盤資源。
  • MATLAB繪製雙y軸圖形兩種方法
    function 可以是指定 plot、semilogx、semilogy、loglog、stem 的函數句柄或字符向量,或者是能接受以下語法的任意 MATLAB® 函數:h = function(x,y)例如,plotyy(x1,y1,x2,y2,@loglog) % function handleplotyy(x1,y1,x2
  • MATLAB求函數的導數和偏導
    matlab求導命令diff調用格式:diff(函數),求的一階導數;diff(函數,n),求的n階導數(n是具體整數);diff(函數,變量名),求對的偏導數;diff(函數,變量名,n),求對的n階偏導數;matlab求雅可比矩陣命令jacobian,調用格式:jacobian([函數;函數;函數],[])給出矩陣
  • MATLAB的solve函數求非線性解方程或方程組
    中繪製三維圖形MATLAB的輸入輸出input函數matlab詳細介紹畫柱形圖matlab中矩陣的入門知識matlab中legend函數的用法matlab繪圖--線性規劃圖解法示意Matlab 進度條的製作Matlab對fig文件導出數據Matlab中plot函數全功能解析
  • MATLAB中的數據插值函數
    MATLAB的輸入輸出input函數matlab詳細介紹畫柱形圖matlab中矩陣的入門知識matlab中legend函數的用法matlab繪圖--線性規劃圖解法示意Matlab 進度條的製作Matlab對fig文件導出數據Matlab中plot函數全功能解析
  • MATLAB的dsolve函數求微分方程的符號解
    MATLAB的輸入輸出input函數matlab詳細介紹畫柱形圖matlab中矩陣的入門知識matlab中legend函數的用法matlab繪圖--線性規劃圖解法示意Matlab 進度條的製作Matlab對fig文件導出數據Matlab中plot函數全功能解析
  • MATLAB的拉格朗日插值
    MATLAB的輸入輸出input函數matlab詳細介紹畫柱形圖matlab中矩陣的入門知識matlab中legend函數的用法matlab繪圖--線性規劃圖解法示意Matlab 進度條的製作Matlab對fig文件導出數據Matlab中plot函數全功能解析
  • MATLAB中regress函數用法(多元線性回歸)
    MATLAB的輸入輸出input函數matlab詳細介紹畫柱形圖matlab中矩陣的入門知識matlab中legend函數的用法matlab繪圖--線性規劃圖解法示意Matlab 進度條的製作Matlab對fig文件導出數據Matlab中plot函數全功能解析