HHT的一点问题,请大侠解答
小弟最近做毕设。matlab和HHT都不是很熟悉。遇到了很多问题,看论坛上的贴子,得到了很多启发。但是还有一些问题。希望大侠帮我看看我用的程序是法国人的。
下面是我自己编的一段主程序,用来求HHT谱。但是得到的谱图,横坐标是数据点,而不是时间。纵坐标是归一化的频率,而不是实际频率。如图
下面是我的程序:
imf=emd(x);
a=length(imf);
imf=cell2mat(imf);%我的matlab2009得到的imf集是cell格式的,这里先转换为矩阵。
xx=reshape(imf,7000,a);
xx=xx';
= hhspectrum(xx,1:7000,2,1);
= toimage(A,f);
disp_hhs(im)
因为我对hhspectrum toimage disp_hhs这三个程序的一些参数不是很明白,所以老是调试不对。请大家帮我看看我这段程序对不对,应该怎样改才能得到实际频率和时间。
另外,我用破凰的程序求边际谱得到的结果是这种的:
在x=0处总有一个很大的振幅。
fs=350; %fs为采样频率;
N=7000; %采样点数
=hhspectrum(xx);
=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);
plot(f,bjp);
xlabel('频率 / Hz');
ylabel('幅值');
这是程序。不知道是我这程序错了,还是前面的EMD分解就错了。请大侠解答,不胜感激。
回复 楼主 lfine100 的帖子
没人解答么
页:
[1]