|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?我要加入
x
小弟最近做毕设。matlab和HHT都不是很熟悉。遇到了很多问题,看论坛上的贴子,得到了很多启发。但是还有一些问题。希望大侠帮我看看
我用的程序是法国人的。
下面是我自己编的一段主程序,用来求HHT谱。但是得到的谱图,横坐标是数据点,而不是时间。纵坐标是归一化的频率,而不是实际频率。如图
下面是我的程序:
imf=emd(x);
a=length(imf);
imf=cell2mat(imf);%我的matlab2009得到的imf集是cell格式的,这里先转换为矩阵。
xx=reshape(imf,7000,a);
xx=xx';
[A,f,tt] = hhspectrum(xx,1:7000,2,1);
[im,tt,ff] = toimage(A,f);
disp_hhs(im)
因为我对hhspectrum toimage disp_hhs这三个程序的一些参数不是很明白,所以老是调试不对。请大家帮我看看我这段程序对不对,应该怎样改才能得到实际频率和时间。
另外,我用破凰的程序求边际谱得到的结果是这种的:
在x=0处总有一个很大的振幅。
fs=350; %fs为采样频率;
N=7000; %采样点数
[A,fa,tt]=hhspectrum(xx);
[E,tt1]=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分解就错了。请大侠解答,不胜感激。 |
|