这是我在论坛里找的,我现在也用的是这个,你用试试吧,里面的几个程序要下工具箱才能用
t=1:500;
t=t*1/400;
x1=sin(2*pi*20*t);
x2=0.4*sin(2*pi*40*t+140);
f=400;
y=linspace(1,2,500);
z=x1+x2+y
%在后面添加一个趋势向可以把三个分量完全分解出来
imf=emd(z);
emd_visu(z,1:length(z),imf,1)
figure (4)
dt=1/f;
h = nspab(imf',500,0,500,dt);
h(1:2,:)=0;
ms=mspc(h,t)
subplot(224)
plot((1:length(ms)),ms)
xlabel('频率(Hz)','FontSize',12);
ylabel('幅值','FontSize',12);
subplot(211)
surf(h(1:200,1:end-20))
shading interp
xlabel('时间(点数)','FontSize',12);
Ylabel('频率(Hz)','FontSize',12);
zlabel('幅值','FontSize',12);
title('a','FontSize',12)
view([-75,25])
yt=subplot(223)
imagesc(h(1:200,:))
Ylabel('频率(Hz)','FontSize',12);
xlabel('时间(点数)','FontSize',12);
set(yt,'ydir','nor')
title('b','FontSize',12);title('c','FontSize',12); |