matlab中使用VMD(變分模態(tài)分解)
原文鏈接:http://tecdat.cn/?p=12486
撥號音信號的變模分解
創(chuàng)建一個以4 kHz采樣的信號,類似于撥打數(shù)字電話的所有鍵。將信號另存為MATLAB?時間數(shù)據(jù)。
fs = 4e3;
t = 0:1/fs:0.5-1/fs;
繪制時間表的變分模態(tài)分解。

多分量信號的VMD
生成由頻率為2 Hz,10 Hz和30 Hz的三個正弦波組成的多分量信號。正弦波以1 kHz采樣2秒。將信號嵌入方差為0.012的高斯白噪聲中。
計算噪聲信號的IMF,并在3-D圖中可視化它們。
plot3(p,q,imf)
grid on
xlabel('Time Values')
ylabel('Mode Number')
zlabel('Mode Amplitude')

使用計算出的IMF繪制多分量信號的希爾伯特頻譜。將頻率范圍限制為[0,40] Hz。

分段信號的VMD
生成一個由二次趨勢,線性調(diào)頻信號和余弦組成的分段復(fù)合信號,在t??= 0.5時,兩個恒定頻率之間會發(fā)生急劇過渡? 。
?
x(t)= 6t2 + cos(4πt+10πt2)+ {cos(60πt),cos(100πt-10π),t≤0.5,t> 0.5。
?
信號以1 kHz采樣1秒。繪制每個單獨的分量和復(fù)合信號。
plot(t,6*t.^2)
xlabel('Time (s)')
ylabel('Quadratic trend')
nexttile(5,[1 2])
plot(t,x)
xlabel('Time (s)')
ylabel('Signal')

執(zhí)行變分模態(tài)分解以計算四個本征模式函數(shù)。信號的四個不同分量得以恢復(fù)。
通過添加模式函數(shù)和殘差來重構(gòu)信號。繪制并比較原始信號和重構(gòu)信號。
plot(t,x,':','LineWidth',2)
xlabel('Time (s)')
ylabel('Signal')
hold off
legend('Reconstructed signal','Original signal', ...
'Location','northwest')

計算原始信號與重構(gòu)信號之間的差異的范數(shù)。
使用VMD從ECG信號中去除噪聲
在此示例中標(biāo)記的信號來自MIT-BIH心律失常數(shù)據(jù)庫? ? (信號處理工具箱)。數(shù)據(jù)庫中的信號以360 Hz采樣。
加載與記錄200相對應(yīng)的MIT數(shù)據(jù)庫信號并繪制該信號。
plot(tm,ecgsig)
ylabel('Time (s)')
xlabel('Signal')

ECG信號包含由心跳的節(jié)奏和振蕩的低頻模式驅(qū)動的尖峰。ECG的不同輻條會產(chǎn)生重要的高次諧波。
計算開窗信號的九種固有模式函數(shù),可視化IMF。

第一種模式包含最多的噪聲,第二種模式以心跳的頻率振蕩。通過將除第一個和最后一個VMD模式之外的所有模式相加,構(gòu)造一個干凈的ECG信號,從而丟棄低頻基線振蕩和大部分高頻噪聲。


參考文獻(xiàn)
1.matlab使用經(jīng)驗?zāi)J椒纸鈋md 對信號進(jìn)行去噪
2.matlab中的偏最小二乘回歸(PLSR)和主成分回歸(PCR)
3.matlab使用hampel濾波去除異常值
4.matlab預(yù)測ARMA-GARCH 條件均值和方差模型
5.matlab使用Copula仿真優(yōu)化市場風(fēng)險
6.matlab測量計算信號的相似度
7.matlab使用貝葉斯優(yōu)化的深度學(xué)習(xí)
8.matlab使用移動平均濾波器、重采樣和Hampel過濾器進(jìn)行信號平滑處理
9.matlab實現(xiàn)MCMC的馬爾可夫切換ARMA – GARCH模型估計