声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1161|回复: 3

[HHT] 关于Hilbert谱发散的问题

[复制链接]
发表于 2009-12-30 10:42 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

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

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

imf = emd(x);

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


画出的Hilbert谱图如下:


Hilbert谱图.gif

[ 本帖最后由 zhangnan3509 于 2010-1-5 20:04 编辑 ]
回复
分享到:

使用道具 举报

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

[ 本帖最后由 吃书的老虎 于 2009-12-31 09:40 编辑 ]
 楼主| 发表于 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;
[A,f,tt]=hhspectrum(imf(1,:));
[im,tt]=toimage(A,f);
disp_hhs(im,[],fs);
colormap(flipud(gray))  %绘出Hilbert谱

求得的图也是这样,不知道为什么。。
2009-12-31_143853.bmp

下面是我用STFT求的imf(1,:)的时频分布图
2009-12-31_143806.bmp

[ 本帖最后由 yjesefcu 于 2009-12-31 14:38 编辑 ]
2009-12-31_143044.bmp
发表于 2010-1-1 09:39 | 显示全部楼层
你这二个图都说明了频率在10这个时间点发生了跳变,都应该没有什么错。至于STFT,可能在画图前做了处理,所以看起来比你直接用Hilbert得到的时频图要清楚。在边端出现异常现象是正常的,边端以外的频率一般情况不清楚,由于EMD边端效应,会有异常。在10时间点,频率跳变,任何一种求频率的方法都会带来频率的异常。显然STFT边端是经过处理后的图像。这里你的图是正常的,如果你要想好看一点,可以把取个阈值再显示。包括你第一幅图也是正常的,你可以优化EMD程序,显示阈值。
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-16 19:55 , Processed in 0.076949 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表