zhangnan3509 发表于 2007-7-12 16:27

回复 #15 zhlong 的帖子

以上程序和楼主在1楼的图一致(频率是归一化的)

[ 本帖最后由 zhlong 于 2007-7-12 16:35 编辑 ]

tangaoming 发表于 2007-7-12 16:34

我的意思就是怎么消除尾部出现的波动,这是什么原因造成的?

zhlong 发表于 2007-7-12 16:34

回复 #16 zhangnan3509 的帖子

我用那几句程序就是为了说明这个频率在末端波动问题是由于hhspectrum在使用hilbert和instinfreq求瞬时频率时带来的。但是我还没有解决办法。

ps:版主的图太大,我机器显示好慢!

wendy袁 发表于 2007-9-8 21:22

本人初用hht看了论坛里的一些相关帖子,在使用instfreq.m时用些不明白的,希望各位给予帮助,谢谢!
程序中写到:
%frequency of the analytic signal X at time instant(s) T, using the
% trapezoidal integration rule.
% The result FNORMHAT lies between 0.0 and 0.5.
这里求瞬时频率是用Hilbert变换求的瞬时频率和瞬时振幅吗?(angle(-x(t+1)*conj(x(t-1)))不明白)
还有为什么它得出的值在0-0.5之间?那个梯形积分准则(不知道有没有翻译错)是什么?


Ps:感兴趣的版友请注意这里应该是angle(—x(t+1)*conj(x(t-1))破凰已经在下面的帖子里解释得很清楚 关于袁版友的问题,所以我们不难发现注释文件里少了一个负号,所以请大家注意。
                                                                                             By zhlong ,zhangnan3509

[ 本帖最后由 zhangnan3509 于 2007-9-9 22:02 编辑 ]

zhangnan3509 发表于 2007-9-8 22:50

回复 #19 wendy袁 的帖子

好像程序里没有关于hilbert的痕迹吧?用瞬时频率函数怎么也不会求瞬时振幅吧?这个函数的输出值也没有关于振幅的项啊

wendy袁 发表于 2007-9-9 10:51

不是先对信号进行Hilbert变换后再调用这个程序不就可以求得瞬时频率吗?
那这个程序是如何求瞬时频率的?angle(x(t+1)*conj(x(t-1)))不明白
还有为什么它得出的值在0-0.5之间?那个梯形积分准则(不知道有没有翻译错)是什么?

破凰 发表于 2007-9-9 14:30

angle(-x(n+1).*conj(x(n-1)))+pi 就等于ϕ(n+1)-ϕ(n-1) 。
ϕ(n)——第n点的相位
%可以两边同时取正切来证明。加pi 的目的是由于angle后的范围为[-pi,pi],加pi 后就将其范围平移为.

再用中点差分公式(ϕ(n+1)-ϕ(n-1) )/(2*2pi)求出归一化频率了。显然,其范围是0-0.5

wendy袁 发表于 2007-9-9 15:29

:handshake ,终于明白了。非常感谢!

zhlong 发表于 2007-9-9 16:19

回复 #22 破凰 的帖子

能否麻烦破凰解释一下这个地方怎么证明?谢谢!

破凰 发表于 2007-9-9 20:22

回复 #24 zhlong 的帖子

你设解析信号x(n)=a(n)+j*b(n)
然后由ϕ(n)=angle(x(n)),可得tg(ϕ(n))=b(n)/a(n)。
这样便可以求出tg(ϕ(n+1)-ϕ(n-1) )------------(1)
同理可以求得tg(angle(-x(n+1).*conj(x(n-1)))+pi )---------------------(2)
比较(1)和(2)便知。

破凰 发表于 2007-9-9 20:35

其实还可以这样理解
设解析信号x(n)=a(n)exp(jϕ(n));
则-x(n+1)=a(n+1)exp(j(ϕ(n+1)-pi));
conj(x(n-1))=a(n-1)exp(-jϕ(n-1));
-x(n+1)*conj(x(n-1))=a(n+1)a(n-1)exp(j(ϕ(n+1)-ϕ(n-1)-pi));
显然,angle(-x(n+1)*conj(x(n-1)))=ϕ(n+1)-ϕ(n-1)-pi,即angle(-x(n+1).*conj(x(n-1)))+pi =ϕ(n+1)-ϕ(n-1)
这应该就是instfreq.m编写者这样求的根据。

[ 本帖最后由 zhangnan3509 于 2007-9-9 21:23 编辑 ]

wendy袁 发表于 2007-9-10 15:03

谢谢破凰给予这么详细的解答!
我还有问题,我用emd对elcentro地震波进行分解得到10个分量,再对各个分量求解瞬时频率。我现在要用的是这些分量的有效单频(即把emd分量看成一个个单频分量)目前我用的是f=?(freq*dt)/T(?()为求和)为这个分量的有效单频。以下的附件是我求得的各分量的瞬时频率和分量的有效单频。之前我记得在论坛中有看过:emd分解所得的频率在同一时刻各个分量的瞬时频率应该是逐渐递减的规律,但是我所求的不是,而且最后一个分量的前几个快到最大频率(根据采样定理可知最大频率为25Hz),是哪个地方出错了吗?希望各位能够帮忙。谢谢!
(附件太大不允许上传:'( )

破凰 发表于 2007-9-10 16:38

回复 #27 wendy袁 的帖子

可能是hilbert变换的边界效应造成的

zhangnan3509 发表于 2007-9-11 12:06

回复 #27 wendy袁 的帖子

这种情况我也碰见过,但是我想这种规律不是绝对的,受了很多因素影响,如附件,第一个和第二个iMF相比

[ 本帖最后由 zhangnan3509 于 2007-9-11 12:07 编辑 ]

wendy袁 发表于 2007-9-11 12:59

也就是说这个程序还不稳定是吗?这样一来我的数据就不能用了阿。
页: 1 [2] 3
查看完整版本: 请教HHT