HHT反变换与瞬时频率的频移
function = invhhtclear;
f1=100;
f2=5000;
ts=1/20000;
fs=1/ts;
k=0.4;
t=0:ts:k;
y=sin(2*pi*t*f1)+t*4;
= emd(y);
=size(imf);
figure(1)
= hhspectrum(imf);
plot(fa,abs(A))
th=2*pi*fa.*tt; %求瞬时相位
yy=real(A.*exp(sqrt(-1)*th)); %重构原信号
figure(2)
plot(tt,yy)
figure(21)
= abs(fftshift(fft(yy,length(tt))));
= abs(fftshift(fft(xx,length(t))));
plot(ff1)
figure(22)
plot(ff2) 结果是
[ 本帖最后由 JulianChin 于 2007-12-1 13:07 编辑 ] 注意:
瞬时频率—瞬时幅度谱并不是一条理想垂线,这说明瞬时频率变换有频移!!
因此HHT反变换的实用性还有待研究
我不是搞算法的,编程水平不高,我这种计算HHT反变换方法很原始,我希望论坛上那位前辈能做出精度更好的程序给大家分享 对于那些瞬时谱成混沌形态的信号,好像没法重构,因为不知道瞬时谱对于时间的函数,也没法拟合 HHT本质上来说是没法反变换的。因为从imf到瞬时频率有一步微分,即瞬时相位微分成为瞬时频率。如果反变换,就要对瞬时频率积分,此时会产生一个常数项,这个常数项是不确定的。因此也就造成你的途中趋势项的缺失。你的程序中求瞬时相位的那一步其实是默认常数项为零。因此,HHT反变换是没法绕过常数项问题的。这是算法本质决定的。
回复 #5 playfish 的帖子
我想你是对的 趋势项的问题,在hht中,在我有限的水平看来,确实是还没有更好的办法解决。 playfish说的有道理,这问题目前还不好解决
页:
[1]