wangqingyang 发表于 2012-10-18 15:58

求助:求关于抑制hilbert变换端点效应的Matlab程序

在对信号进行hilbert变化和EMD分解时都会产生端点效应。尤其是hilbert变换不是整周期采样时,会产生较大的端点效应,造成能量泄露,请问哪位大侠能给小弟分享个处理hilbert变换中端点效应的Matlab程序,或者是指点一下如何编程也行。谢谢各位大侠!

wangqingyang 发表于 2012-10-18 20:30

{:{18}:}

yghit08 发表于 2012-10-19 08:55

如果你够有能力的话去找沈毅,他在Signal Processing上发表了一篇关于抑制端点效应的文章。主要是通关延拓端点来实现端点抑制,只要是能做预示的方法都能做端点延拓。最后总结一句:不要寄大希望于端点延拓获得很好的端点抑制的结果。不知道你做Hilbert变换的目的是什么。如果是为了求取瞬时频率的话,可以考虑换其他的方法。当然,如果你整个问题不是一定要用HHT做的话,那么建议试试广义S变换,小波分解和短时傅里叶变换!

wangqingyang 发表于 2012-10-19 10:05

yghit08 发表于 2012-10-19 08:55 static/image/common/back.gif
如果你够有能力的话去找沈毅,他在Signal Processing上发表了一篇关于抑制端点效应的文章。主要是通关延拓端 ...

谢谢,真的十分感谢您的帮助。
我主要是利用HHT变换或者是Hilbert变换,进行模态参数辨识。主要是发现有的时候阻尼较大的话,识别效果不好,而且发现经过EMD后的频谱图上面有能量的泄露,因此考虑是端点效应造成的,由于EMD和HIlbert都有端点效应,我就是看看能不能通过端点效应的抑制,得到更好的结果。
谢谢您!

yghit08 发表于 2012-10-19 10:52

wangqingyang 发表于 2012-10-19 10:05 static/image/common/back.gif
谢谢,真的十分感谢您的帮助。
我主要是利用HHT变换或者是Hilbert变换,进行模态参数辨识。主要是发现有 ...

HHT变换的核心是EMD,将混杂了多组分的信号分成单组分信号,利用Hilbert变换只是为了将单组分信号转换成分析信号从而进一步达到求解瞬时幅值和瞬时相位(瞬时频率)的目的。另外,在目前Hilbert变换的实现是基于傅里叶变换的,因此也不可避免的引入边界效应(将信号做傅里叶变换,强令负频率部分为0然后傅里叶逆变换行程信号的虚部,实部取原信号,这就是Hilbert变换的实现)。不知道你说的阻尼比大的情况不好具体是什么。另外你处理的是什么信号?非平稳信号还是平稳信号?再者,你怎么确定你关注的结构的阻尼比?阻尼比目前没有一个很好的方法来确定。你结构的阻尼比能有多大?建议你看看Hilbert变换的书,看完就会发现Hilbert变换是适合处理小阻尼比情况的(至于多小不清楚),阻尼比大了处理出来的结果失真(Hilbert变换已经不适合处理这类大阻尼比结构的振动响应信号了)

wangqingyang 发表于 2012-10-19 16:55

yghit08 发表于 2012-10-19 10:52 static/image/common/back.gif
HHT变换的核心是EMD,将混杂了多组分的信号分成单组分信号,利用Hilbert变换只是为了将单组分信号转换成分 ...

谢谢师兄了。{:{51}:}

td21 发表于 2013-4-3 11:02

多谢楼主分享
页: [1]
查看完整版本: 求助:求关于抑制hilbert变换端点效应的Matlab程序