跟你的程序不太一样
imf=emd(x);
m=size(imf,1);
figure
for i=1:m
subplot(m,1,i);
plot(1:N,imf(i,1:N));
ylabel(['imf',num2str(i)]);
end %%IMF图
y=0;
for i=1:m
y=imf(i,:)+y;
end %%restructure
a=corrcoef(x,y); %%完备性
%求时频谱
[A,f,t]=hhspectrum(imf(1:end-1, :));
%绘制瞬时包络图和瞬时频率图
figure;
subplot(211),plot(t/N,f(1,:)*fs);xlabel('时间 t/s');ylabel('频率');title('imf1分量瞬时频率');
subplot(212),plot(t/N,f(2,:)*fs);xlabel('时间 t/s');ylabel('频率');title('imf2分量瞬时频率');