batizhang 发表于 2007-11-26 10:24

emd仿真遇到的疑问!

我用emd对两个线性调频信号的叠加进行分析,其中s=s1+s2;   s1=exp(j*2*pi*(5*1e6*t+1/2*2*1e12*t.^2));   s2=exp(j*2*pi*(2*1e7*t+1/2*2.5*1e12*t.^2)); 采样频率为1e8,数据长度为256,仿真结果如下:

问题是经过emd分解,信号怎么只分解得到一个imf分量(至少应该是两个imf啊)和一个res剩余分量?而希尔伯特变换好像是对imf做的,res忽略掉,这样的话,一个imf分量难道包含了两个线性调频信号(即和原信号一样)?那样不满足imf分量条件啊?哪位高手帮忙分析一下,可以自己做下仿真试试。

eight 发表于 2007-11-26 10:44

本帖最后由 wdhd 于 2016-9-14 10:34 编辑

原帖由 batizhang 于 2007-11-26 10:24 发表
我用emd对两个线性调频信号的叠加进行分析,其中s=s1+s2;   s1=exp(j*2*pi*(5*1e6*t+1/2*2*1e12*t.^2));   s2=exp(j*2*pi*(2*1e7*t+1/2*2.5*1e12*t.^2)); 采样频率为1e8,数据长度为256,仿真结果如下:
311 ...
余量有可能是imf,你的情况就是一个IMF了

batizhang 发表于 2007-11-26 10:48

回复 #2 eight 的帖子

哦,原来这样,不过看文献说hilbert一般都只对imf操作的,res是忽略的,那得到的时频谱岂不是不对了?但这里感觉又是对的啊?

[ 本帖最后由 zhangnan3509 于 2007-11-26 10:53 编辑 ]

zhlong 发表于 2007-11-26 10:53

hilbert谱图问题可以看看hhspectrum这个函数,
%HHSPECTRUMcompute Hilbert-Huang spectrum
%
% = HHSPECTRUM(x,t,l,aff) computes the Hilbert-Huang spectrum
%
% inputs:
%   - x   : matrix with one signal per row
%   - t   : time instants
%   - l   : estimation parameter for instfreq (integer >=1 (1:default))
%   - aff : if 1, displays the computation evolution
%
如果这样使用这个函数=hhspectrum(imf);,自然所有的IMF包括残余分量都用于计算谱图了。

zhangnan3509 发表于 2007-11-26 11:07

回复 #4 zhlong 的帖子

如果想除去残余分量,使它不参与计算,有没有函数可以直接使用?

zhlong 发表于 2007-11-26 11:13

回复 #5 zhangnan3509 的帖子

=hhspectrum(imf(,:));
只要把hhspectrum函数的自变量取不同的imf分量就可以了,如只计算第一个IMF的谱图:
=hhspectrum(imf(1,:));

zhangnan3509 发表于 2007-11-26 11:18

回复 #6 zhlong 的帖子

我想的是 如果把虚假分量剔除之后,再画谱图。看来要做成一个函数了。

zhlong 发表于 2007-11-26 11:20

回复 #7 zhangnan3509 的帖子

关键在于先要确定哪些才是虚假分量了

zhangnan3509 发表于 2007-11-26 11:25

回复 #8 zhlong 的帖子

这个好办,之后就是怎么把处理后的Imf,再重新计算。我是把emd_visu这个函数作了一下改造,Imf经过了重新选择。只是使用了一个函数完成了上面的选择。下一步就是把剔出虚假分量后的Imf计算谱图。

[ 本帖最后由 zhangnan3509 于 2007-11-27 10:52 编辑 ]

prideheart 发表于 2007-11-28 15:38

Warning: Imaginary parts of complex X and/or Y arguments ignored
Warning: HILBERT ignores imaginary part of input.
我运行的时候怎么提出这样的警告啊?
那个第一张图右边的滑动条是起到一个什么作用啊?
还有就是时频图为什么总是断断续续的?不能把它的刻度变小点吗?
谢谢,刚学,不大懂,请明示。

zhlong 发表于 2007-11-28 16:46

hilbert函数是对实数信号进行希尔伯特变换,如果输入的是复数,那么只取复数信号的实部进行变换。
增加HHT时频图的频率点数,也就是你说的刻度变小点请看http://forum.vibunion.com/forum/viewthread.php?tid=50010, 此贴一楼的第三点谈到这个问题。

prideheart 发表于 2007-11-28 21:36

本帖最后由 wdhd 于 2016-9-14 10:34 编辑

原帖由 zhlong 于 2007-11-28 16:46 发表
hilbert函数是对实数信号进行希尔伯特变换,如果输入的是复数,那么只取复数信号的实部进行变换。
增加HHT时频图的频率点数,也就是你说的刻度变小点请看http://www.chinavib.com/forum/viewthread.php?tid=50 ...
多谢,在那个帖子里看了一个晚上,明白了许多,但我不明白边际谱到底是个什么意思,到底怎么用??
另外EMD分解是按时间来进行分解的吧? 那它每段的频率都不相同,对吧?
而且我更希望得到的是一个信号的时频谱,这样不是就可以直接看出到底在哪个时刻频率发生变化了吗?就知道了故障发生的时刻了吧?
但是按上边分解出来的时频图都不怎么清晰,而且纵轴刻度也不是实际的频率。

而且本帖第一张图右边的滑动条是起到一个什么作用啊,是怎么个意思?

新手,见凉,请赐教,先谢了

jingrenzhi 发表于 2007-11-28 22:26

回复 #4 zhlong 的帖子

你好,你那个网站怎么上不去了?http://zhlong.ys168.com/

eight 发表于 2007-11-28 23:53

本帖最后由 wdhd 于 2016-9-14 10:34 编辑

原帖由 jingrenzhi 于 2007-11-28 22:26 发表
你好,你那个网站怎么上不去了?http://zhlong.ys168.com/
已测试,没有问题

jingrenzhi 发表于 2007-11-29 09:22

回复 #14 eight 的帖子

哦!谢谢!我再试试!昨天晚上我没上去!
页: [1] 2
查看完整版本: emd仿真遇到的疑问!