马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?我要加入
x
本帖最后由 impulse 于 2018-1-22 09:08 编辑
本文主要分为两部分,第一部分是介绍时频分析领域的发展,第二部分介绍个人提出的方法。网站无法上传高分辨率图片,建议大家看附件中的算法介绍文档、论文以及代码。
…………………………………………………第一部分 时频分析综述……………………………………………………… 在故障诊断领域,如轴承、齿轮、内燃机等机械设备,出现故障时均会表现出非线性行为,所产生的声音、振动、温度、压力等信号会具有明显的时变特征。如何精确表示、提取这些特征,是信号处理技术最为关心的点。能够揭示信号非线性时变特征的时频分析技术(Time-frequency analysis,TFA),刚好能够胜任这一需求。在任何一本信号处理书籍中,TFA均会占据较大篇幅,国内如《现代信号处理教程》胡广书著,《机械故障诊断中的现代信号处理方法》褚福磊著,《机械故障诊断的内积变换原理与应用》何正嘉著,国外如,《A Wavelet Tour of Signal Processing》S. Mallat著,《Time-frequency analysis》L. Cohen著,《Foundations of time-frequency analysis》K. Grochenig著等等。由此也可见TFA的重要地位。 从最早的短时傅里叶变换(STFT)、WVD技术、小波变换,EMD,一直到今天,TFA技术从未停止发展的脚步,并且近五年,目标更加明确,发展更为迅速。大家且沉住气,听我慢慢道来。 1946年~1965年,TFA处于原始理论积累,在工程实践中未得到有效开展。 1966年~1983年,受益于FFT技术的发展,这段时间是STFT的天下。 1984年~2000年,上至天文,下到地理,可以说无处不用小波。 2000年~2010年,借助于基于数据的自适应处理思路,EMD方法占据了这10年大家的主要视野。 (额外一提,由于WVD存在交叉干扰项,导致其难以用于工程实践,不建议大家过度关注)。 2010年~至今,该领域内并未出现引用数超过500的文章,这间接说明了一个问题,TFA技术发展有所放缓,但也涌现了许许多多有趣的算法如: 以上数据说明该领域内的研究者,你忙你的,我忙我的。但是,对该领域发展有所警觉的研究者应该会注意到某些端倪。表面上看,时频分析貌似无序的发展,本质上实则始终冲一个目标在努力。这个目标就是理想时频分析(Ideal time-frequency analysis, ITFA)。 那么理想时频分析应该具有什么样的性质呢? 时频谱,为时间-频率的二维函数,能够将一维时序信号扩展到二维平面中,其时变特征也会被清晰地展现出来。然而,传统TFA技术存在着各种各样的缺陷,如海森伯格不确定原理,交叉项,模态混叠等等。这些缺陷严重干扰了信号特征的刻画,造成时变规律不够明显,难以有效识别。在分析仿真信号时,我们心里应该十分清楚,时频谱最理想的样子是怎样的,即信号能量只出现在瞬时频率曲线上,在时间-频率方向,能够以最佳分辨率刻画信号能量轨迹。对于离散信号而言,这里的最佳时频分辨率应该是,时域采样分辨率与频域分析分辨率。 为实现ITFA目标,目前主要有两种途径,一是在原时频谱的基础上进行能量重排,二是将多分量信号分解为单分量模态而后进行Hilbert变换。这两种途径,在某些领域都有着各自的最佳适用范围,很难说谁优谁劣。 …………………………………………………第二部分 同步提取变换……………………………………………………… 在这样的大环境下,笔者提出了一种新的时频分析方法,取名“同步提取变换”(Synchroextracting Transform,SET),也是为实现ITFA做的一种努力。单从名字上看,这个方法与同步压缩变换,同出一门,但是二者原理南辕东辙。 开始介绍方法之前,先来说说SET的特点: (1)时频分辨率高,renyi熵低于目前99%的TFA方法(即能量聚集性高),处理结果非常接近ITFA目标; (2)可用于模态分解,在低信噪比的情况下,具有较好的噪声鲁棒性; (3)能够用于弱信号检测,可及时发现微弱故障特征; (4)计算复杂度与STFT处于同一水平,可用于实时计算; (5)无需太多输入参数,与STFT一样,是属于无参数化的方法; (6)该方法可移植于小波变换、S变换等方法,笔者目前集中于算法理论方面的完善,没有更多的精力从事相关研究,所以该方法具有十分广泛的拓展空间; (7)笔者提供了论文中所有仿真与实验数据分析的MATLAB程序,方便大家理解以及应用拓展,论文最后有程序下载地址。 下面开始介绍笔者提出的方法以及原理。 图1 图1(a)为25Hz谐波信号的STFT时频谱,图1(b)为1s时刻的时频谱切片。首先,大家心里应该清楚一点,对于该仿真信号的频谱,应该是仅仅在25Hz刻度上的一条线而已。可是时频谱所反映出来的信息是,该信号能量发散非常严重,虽然能量依然是集中在25Hz附近,但是发散的能量严重干扰了对于该信号特征的辨识。图1(b)反映了时频能量发散的范围,即频域支撑范围之内。 在分析信号时,大家通常更加关心时频分析的幅值谱,也就是如上图所示,反映的是信号能量的变化。然而,非常重要的相位谱,却被大部分人给忽略了。为何会这样?说实话,相位谱长的很丑,仅仅从肉眼看,很难看出什么有趣的信息。人喜欢貌相,学术圈也是如此。但是,相位谱中包含的信息却十分有用。还是以25Hz仿真信号为例。由相位谱,我们可以推导出以下数据特征。(如何推导,见论文) 图2 在频谱支撑的范围内,也就是凡是有25Hz信号能量的位置,时频系数具有相同的瞬时频率。更加直观的理解是,图2(a)中浅绿色的数值全部是25Hz。这一点就太有趣了,利用这个特征,我们可以做更多事情啊。因此,笔者就坏坏地做了一件小事。时频谱能量不是发散特别严重吗?OK,谁发散,谁滚蛋!我利用了数学中常见的delta函数,仅保留时频平面中25Hz轨迹上的时频能量,其他能量统统给我滚蛋。(公式见论文)。下面看一下这个处理过程中,很重要的一个算子,同步提取算子(SEO),见图3,(a)是SEO,(b)是切片。SEO就是用于剔除发散能量的时频系数的,所保留的是时频脊线上时频系数。可以预见,这个时频脊上的系数由于能量最大,应该具有很好的噪声鲁棒性的。很巧的是,这个系数可以实现信号重构与模态分解。并且SEO是一个与信号幅值无关的量,无论是大幅值信号,还是小幅值弱信号,在SEO看来,你俩的特征是一样一样的。 图3 图4 图4就是所提方法的分析结果了。怎么样?没有了讨人厌的发散能量,感觉是不是清爽多了?之前我们分析的都是平稳谐波信号,那么该方法用于复杂信号,结果会如何呢?见图5。这是个3分量非平稳信号,有调幅,也有调频。图5(a)是传统的时频谱,图5(b)与图2(a)一个东西。重点来了啦,图5(c)是这个信号的SEO。这个信号中的3个分量的幅值本来都是变化着的,但是在SEO中,只给出了瞬时频率的轨迹。大家考虑一个问题。弱信号幅值很小,当各分量幅值具有很明显差异时,想在时频谱中识别弱幅值信号,将会是一件很有难度的事情。但是,对于SEO来说,却是相当容易的。因为,管你强弱呢,SEO不会鸟你的,老子只关心瞬时频率曲线!太TM有性格了。图5(d)即最终分析结果,看着如何,对于非平稳信号而言,时频能量是不是依然很清爽? 图5 接下来,大家跟我来看一个经典蝙蝠信号的分析结果。这个信号已经被默认为验证自己方法的标准库了,谁方法处理的更好,用蝙蝠说话。处理结果如图6。图6(a)为传统的时频谱,这个图相信大家已经在众多研究文献中,见过N次了,这里不再赘述。图6(b)是这个信号的SEO。在(a)中难以看清的小幅值分量,在(b)中清清楚楚。可以明显看出,有4条曲线,也就是4个单分量信号。图6(c)是该信号的最终分析结果,后面跟着放大图。对于分析结果,大家感觉如何?夏天来了,去掉那些一坨坨讨厌的东西,清爽一下还是很有必要的。那么用MATLAB想获得这个结果,复杂不?笔者明确告诉大家,真的很easy。因为,我已经将源代码进行了最大程度的优化。用我分享的程序,出图6的结果只需要一句代码,即“[SEO Te tfr] =SET_Y(detrend(data),45);”。detrend(data)是去均值的数据,45是窗长度。偷偷告诉大家一个秘密,省掉45也能运行,即“[SEO Te tfr] = SET_Y(detrend(data));”,因为我已经设置了默认值。怎么样,程序用起来,是不是也特别清爽? 图6 上面的内容简单地介绍了SET的原理,这里面所包含的东西还在等着大家更加深入的发现,还是看论文吧。最后,我想提的是,SET到底能做一些什么具体的事情,以及大家如何在这篇论文之后,从事什么方向的科研规划? (1) 可以把各个领域中,以前用传统时频分析做过的研究,再用SET做一遍,绝对会有意想不到的新东西发现。 (2) 我的这个算法是基于STFT提出的,但是,该理论完全适用于其他时频分析方法,如小波变换,S变换。大家完全可以将该文的研究思路移植于其他方法,保证不坑。 (3) 本文方法是一阶的,也就是说适用于处理缓慢渐变的非平稳信号。对于具有强调频调幅的信号,处理结果有些糟糕。但是,大家可以顺着思路研究二阶、三阶,一直到N阶。怎么做?论文的最后一篇参考文献,会给你答案。 (4) 在信号处理领域,有时候大家会很关注弱信号的检测。因为弱信号,可以帮助大家预测设备将来发展的趋势,发现一些未知的规律,如用于寿命预测、早期故障诊断等等。SEO绝对可以满足大家这方面的需求,值得深入研究。 (5) 近些年,EMD赚足了大家的眼球。但是,研究过EMD的人应该会很清楚,这玩意言过其实了。SET可以实现EMD的功能,看论文中图和数据,效果绝对杠杠的,不坑人不骗人。但是,目前我的研究不够深入,导致信号重构只限于一阶,希望大家能够将其打破这个限制,实现理想重构与模态分解。 (6) 在面对更加复杂的信号时,如各分量的瞬时频率挨着太近、甚至是有所交叉时,处理结果还是不够好,这些限制还期待大家去研究打破。 (7) 路还很远,希望能够与大家共勉共进退,提出具有中国特色的理论方法,让中国也能够进入信号处理领域的顶尖殿堂,而不再是一味地模仿和跟随。大家加油! 代码下载地址,http://cn.mathworks.com/matlabcentral/fileexchange/62483.
|