zhuxiaoxun 发表于 2009-1-7 20:42

EMD程序问题

在使用Rilling程序时遇到了一些问题,一直困扰至今:
1.就是关于坐标的问题。为什么我分解出来的信号没有坐标?或者坐标不对(听说是频率归一化的原因)。
2.对于调幅、调频信号分解不是很正确。
3.三维图感觉怪怪的。
我的程序如下:
N = 1024;% # of data samples
fs=1000
t=(1:N)/fs;
%t=1:1024
%x=sin(2*pi*8*t)+sin(2*pi*20*t)
%x=cos(2*pi*4*t+0.5*sin(2*pi*2*t))+sin(2*pi*16*t);
x=(1+0.5*sin(2*pi*1*t)).*cos(2*pi*14*t+0.4*sin(2*pi*3*t))+sin(2*pi*2*t)+sin(2*pi*7*t);
imf=emd(x);
%=hhspectrum(imf);
if size(imf,1)>1
    =hhspectrum(imf(1:end-1,:));;
else
    =hhspectrum(imf);
end
=toimage(A,fa,tt,length(tt));
for k=1:size(E,1)
    bjp(k)=sum(E(k,:))*1/fs;
end
f=(0:N-3)/N*(fs/2);
%%绘制原信号
figure(1)
plot(t,x);
xlabel('时间');
ylabel('幅值')
%%%%%%EMD分解
figure(2)
=size(imf);
for i=1:m   
    subplot(m,1,i);
    plot(imf(i,:));
    axis()
    xlabel('时间');
    ylabel('频率')
end
%emd_visu(x,t,imf,1);
%%%%绘制灰度图
figure(3)
imagesc(tt1,,E);
set(gca,'YDir','normal')
colormap(flipud(gray))
axis()
xlabel('频率 / Hz');
ylabel('幅值')
%%%绘制边际谱
figure(4)
plot(f,2*bjp)
axis()
xlabel('频率 / Hz');
ylabel('幅值')
%绘制mesh三维图,不可用
figure(5)
mesh(tt,fa,abs(A))
xlabel('time/s')
ylabel('frequency/Hz')
zlabel('Ampititude')
title(' mesh')
感觉有问题,希望有高手帮帮我。

zhuxiaoxun 发表于 2009-1-7 20:43

如果真有好心人,就帮小弟以x=(1+0.5*sin(2*pi*1*t)).*cos(2*pi*14*t+0.4*sin(2*pi*3*t))+sin(2*pi*2*t)+sin(2*pi*7*t)信号为例,帮小弟做一份完整的EMD带坐标分解、边际谱和时频图。真的不胜感激。
谢谢谢谢谢谢谢谢!:@)
页: [1]
查看完整版本: EMD程序问题