|
本帖最后由 manguoyong 于 2011-11-9 22:49 编辑
你好:
1 EMD (经验模态分解)
这是一个使用EMD分解出IMF的例子,一个试验信号由一个tone信号,一个chirp信号,叠加得到,目的是使用EMD将这两个信号分离,得到的预期结果应该是chirp信号在高阶,tone信号在低阶,(原因是chirp信号在各个局部的频率都比tone信号高)。
现在来看具体的执行情况:
这个信号最终被分解成了6阶还有一个残余分量,以第一阶IMF分解过程为例:
首先对原始信号进行处理,先求出各个局部极大值点,然后用插值法连接这些点组成上包络线,同样找到极小值点连接这些点组成下包络线,包络线均值就是中间的紫色连线,用原始信号减去包络线均值就得到了下面的第一个residue.,但是它并不满足IMF定义,所以就以这个residue作为原始信号继续重复上面的操作,这个例子里面得到第一阶IMF共持续了8次上面的操作。
此时我们来看第八次的结果,符合iMF的两个条件:极值点之和过零点至多相差一个,而且包络线均值为零,(也就是中间的紫线和X轴重合)。
这就得到了第一个IMF,然后用原始信号减去这个IMF,得到的新的信号,作为初始信号在进行重复上面的筛选过程。
2 EMD
举一个例子:里面有iMF处理和hht谱 边际谱做法。
m=importdata();
i=1;
N=1024;
f=500;
while i<1024
data(i)=m(i);
i=i+1;
end
imf=emd(data);
figure(1)
[m,n]=size(imf);
for i=1:m
subplot(m,1,i);
plot(imf(i,1:500));
end
figure(2)
dt=1/f;
h = nspab(imf',500,0,500,dt);
%h(1:5,:)=0;
subplot(211)
surf(h(1:200,11:1010))
shading interp
Xlabel('ʱ¼ä(µãÊý)','FontSize',12);
Ylabel('ƵÂÊ(Hz)','FontSize',12);
Zlabel('•ùÖµ(Hz)','FontSize',12);
title('a','FontSize',12)
ms=mspc(h)
%ms(32)=1.2*ms(32)
subplot(212)
plot(1:250,ms(1:250))
Ylabel('•ùÖµ','FontSize',12);
Xlabel('ƵÂÊ(Hz)','FontSize',12)
title('c','FontSize',12)
这里面nspab和mspc这两个函数是HHT工具箱里函数,我觉得比较简单就来使用了,使用disp-hht,hhtspectrum,还有toimage,就可以画出HHT谱,
|
评分
-
1
查看全部评分
-
|