yjesefcu 发表于 2009-12-30 10:42

关于Hilbert谱发散的问题

对两个线性调频信号叠加的信号进行HHT处理,分解后求其Hilbert谱,本来应该是两根直线的,但发现求出来的Hilbert谱线很发散,不知道为什么,请各位指教!

代码如下:
t = (1:1500)/500;
x = chirp(t,0,3,100) + chirp(t,50,3,250);

imf = emd(x);

% 画hilbert谱
fs=500;
= hhspectrum(imf);
=toimage(A,f);
disp_hhs(im,[],fs);
colormap(flipud(gray))%绘出Hilbert谱


画出的Hilbert谱图如下:




[ 本帖最后由 zhangnan3509 于 2010-1-5 20:04 编辑 ]

吃书的老虎 发表于 2009-12-31 09:38

你可能没有考虑到这种情况:二个符合IMF特征的信号,其在叠加后再分解,不一定得到原信号。这个结论在调频信号叠加时,更要注意。实际上谐波能够分解到叠加前的信号,也是有条件的。这个问题涉及到信号的基本组成信号应该是什么的问题。EMD只是经验分解,还没有理论框架。你将二个调频信号叠加,得到的IMF,谁也不知道应该是什么样子。

[ 本帖最后由 吃书的老虎 于 2009-12-31 09:40 编辑 ]

yjesefcu 发表于 2009-12-31 14:33

可是我分别对前两个IMF求时频分布,得出来的都是直线,完全没有任何发散的情况....
而且我处理别的信号也基本上都会出现这种情况,下面是一个频率跳变信号
t=(1:1000)/100;
x = [ sin(20*pi*t) 2*cos(40*pi*t) ];
imf = emd(x);
fs=100;
=hhspectrum(imf(1,:));
=toimage(A,f);
disp_hhs(im,[],fs);
colormap(flipud(gray))%绘出Hilbert谱

求得的图也是这样,不知道为什么。。


下面是我用STFT求的imf(1,:)的时频分布图


[ 本帖最后由 yjesefcu 于 2009-12-31 14:38 编辑 ]

吃书的老虎 发表于 2010-1-1 09:39

你这二个图都说明了频率在10这个时间点发生了跳变,都应该没有什么错。至于STFT,可能在画图前做了处理,所以看起来比你直接用Hilbert得到的时频图要清楚。在边端出现异常现象是正常的,边端以外的频率一般情况不清楚,由于EMD边端效应,会有异常。在10时间点,频率跳变,任何一种求频率的方法都会带来频率的异常。显然STFT边端是经过处理后的图像。这里你的图是正常的,如果你要想好看一点,可以把取个阈值再显示。包括你第一幅图也是正常的,你可以优化EMD程序,显示阈值。
页: [1]
查看完整版本: 关于Hilbert谱发散的问题