简要说明EMD函数

这是我在新浪微博上看到的,为了便于自己记录,转载了

博主最近在研究EMD分解,现举例简要说明EMD函数的使用

t=1:500;
t=t*1/2000;
x=sin(2*pi*20*t);
y=0.4*sin(2*pi*40*t+140);
z=x+y;
plot(t,z)   %画出原始的信号

imf=emd(z);%调用EMD工具箱中的emd函数,运行结果如下


%Imf有5行,意味着原始信号被分解成了4个IMF(本征模函数Intrinsic Mode Function)和一个余波(残差residual)

emd_visu(z,1:length(z),imf) %调用EMD工具箱中的emd_visu函数,运行结果如下:


从第一张图我们可以看到,IMF1到IMF4再加上residual就是原始信号。

而f2c和c2f分别从2个相反的方向重构原始信号(f2c1就是IMF1,而f2c2是IMF1和IMF2合成的,f2c3是IMF1,IMF2,IMF3合成的;而c2f1就是IMF4,其余依次类推,注意IMF3和IMF4不是直线,而是曲线,由于一张图里要画好几个分图故图像被压缩了,看起来像直线)

仔细观察各imf分量,我们可以发现imf1和imf2其实就是对应于原始信号中的y和x,而其他的imf的振幅非常小,可以看做是EMD分解的误差。


PS.EMD分解在实际应用中是需要检验的,NASA的ZHAOHUA WU和黄先生写了一篇论文A Study of the Characteristics of White Noise Using the Empirical Mode Decompostion Method来介绍如何检验,他们也写好了matlab程序,大家可以去台湾中央大学数据分析中心下载http://rcada.ncu.edu.tw/research1.htm


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章