杭州锐达数字技术有限公司
查看: 7412|回复: 50

[综合] 一种新的时频分析方法—同步提取变换SET

[复制链接]
发表于 2017-4-27 13:19 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 impulse 于 2018-1-22 09:08 编辑

本文主要分为两部分,第一部分是介绍时频分析领域的发展,第二部分介绍个人提出的方法。网站无法上传高分辨率图片,建议大家看附件中的算法介绍文档、论文以及代码。

…………………………………………………第一部分 时频分析综述………………………………………………………
        在故障诊断领域,如轴承、齿轮、内燃机等机械设备,出现故障时均会表现出非线性行为,所产生的声音、振动、温度、压力等信号会具有明显的时变特征。如何精确表示、提取这些特征,是信号处理技术最为关心的点。能够揭示信号非线性时变特征的时频分析技术(Time-frequency analysis,TFA),刚好能够胜任这一需求。在任何一本信号处理书籍中,TFA均会占据较大篇幅,国内如《现代信号处理教程》胡广书著,《机械故障诊断中的现代信号处理方法》褚福磊著,《机械故障诊断的内积变换原理与应用》何正嘉著,国外如,《A Wavelet Tour of Signal ProcessingS. Mallat著,《Time-frequency analysisL. Cohen著,《Foundations of time-frequency analysisK. Grochenig著等等。由此也可见TFA的重要地位。
       从最早的短时傅里叶变换(STFT)WVD技术、小波变换,EMD,一直到今天,TFA技术从未停止发展的脚步,并且近五年,目标更加明确,发展更为迅速。大家且沉住气,听我慢慢道来。
1946~1965年,TFA处于原始理论积累,在工程实践中未得到有效开展。
1966~1983年,受益于FFT技术的发展,这段时间是STFT的天下。
1984~2000年,上至天文,下到地理,可以说无处不用小波。
2000~2010年,借助于基于数据的自适应处理思路,EMD方法占据了这10年大家的主要视野。
(额外一提,由于WVD存在交叉干扰项,导致其难以用于工程实践,不建议大家过度关注)
2010~至今,该领域内并未出现引用数超过500的文章,这间接说明了一个问题,TFA技术发展有所放缓,但也涌现了许许多多有趣的算法如:
(1)同步压缩变换(Synchrosqueezingtransform2011年发表,引用数429);
(2)变分模态分解(Variationalmode decomposition2014年发表,引用数228);
(3)经验小波分解(Empiricalwavelet transform2013年发表,引用数149);
(4)稀疏时频分析(Data-driventime–frequency analysis2013年发表,引用数72)
       以上数据说明该领域内的研究者,你忙你的,我忙我的。但是,对该领域发展有所警觉的研究者应该会注意到某些端倪。表面上看,时频分析貌似无序的发展,本质上实则始终冲一个目标在努力。这个目标就是理想时频分析(Ideal time-frequency analysis, ITFA)
      那么理想时频分析应该具有什么样的性质呢?
      时频谱,为时间-频率的二维函数,能够将一维时序信号扩展到二维平面中,其时变特征也会被清晰地展现出来。然而,传统TFA技术存在着各种各样的缺陷,如海森伯格不确定原理,交叉项,模态混叠等等。这些缺陷严重干扰了信号特征的刻画,造成时变规律不够明显,难以有效识别。在分析仿真信号时,我们心里应该十分清楚,时频谱最理想的样子是怎样的,即信号能量只出现在瞬时频率曲线上,在时间-频率方向,能够以最佳分辨率刻画信号能量轨迹。对于离散信号而言,这里的最佳时频分辨率应该是,时域采样分辨率与频域分析分辨率。
为实现ITFA目标,目前主要有两种途径,一是在原时频谱的基础上进行能量重排,二是将多分量信号分解为单分量模态而后进行Hilbert变换。这两种途径,在某些领域都有着各自的最佳适用范围,很难说谁优谁劣。
…………………………………………………第二部分 同步提取变换………………………………………………………
       在这样的大环境下,笔者提出了一种新的时频分析方法,取名“同步提取变换”(Synchroextracting TransformSET),也是为实现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.

时频分析与算法介绍.pdf

1.61 MB, 下载次数: 328

介绍

SET_Y.zip

223.64 KB, 下载次数: 215

代码

点评

赞成: 2.0
赞成: 2
  发表于 2017-6-7 23:47

评分

1

查看全部评分

回复
分享到:

使用道具 举报

 楼主| 发表于 2017-4-27 13:31 | 显示全部楼层
我也是醉了,我图片上传了1个小时,每次都是失败失败失败。
发表于 2017-4-27 15:33 | 显示全部楼层
g-123 发表于 2017-4-27 13:31
我也是醉了,我图片上传了1个小时,每次都是失败失败失败。

这帖子肯定要火
发表于 2017-4-28 03:21 | 显示全部楼层
楼主太牛了
发表于 2017-4-28 19:47 | 显示全部楼层
不知道,抗噪性如何
 楼主| 发表于 2017-4-28 20:04 | 显示全部楼层
sh_lin30 发表于 2017-4-28 19:47
不知道,抗噪性如何

在低信噪比的情况下,估计瞬时频率和进行单分量模态分解,比SST与EMD效果要好,文中有相关仿真说明。
 楼主| 发表于 2017-4-28 20:05 | 显示全部楼层
g-123 发表于 2017-4-28 20:04
在低信噪比的情况下,估计瞬时频率和进行单分量模态分解,比SST与EMD效果要好,文中有相关仿真说明。

在低信噪比的情况下,估计瞬时频率和进行单分量模态分解,比SST与EMD效果要好,文中有相关仿真说明。
发表于 2017-4-28 21:35 | 显示全部楼层
g-123 发表于 2017-4-28 20:05
在低信噪比的情况下,估计瞬时频率和进行单分量模态分解,比SST与EMD效果要好,文中有相关仿真说明。

能进行信号的重构吗?
发表于 2017-4-28 21:35 | 显示全部楼层
g-123 发表于 2017-4-28 20:05
在低信噪比的情况下,估计瞬时频率和进行单分量模态分解,比SST与EMD效果要好,文中有相关仿真说明。

能进行信号的重构吗?

点评

你理解的重构是什么呢? 是类似于IMF分量的叠加 还是别的呢?  详情 回复 发表于 2017-6-7 22:18
 楼主| 发表于 2017-4-28 21:42 | 显示全部楼层
2581428947 发表于 2017-4-28 21:35
能进行信号的重构吗?

可以的,完全没有问题。
发表于 2017-4-28 21:43 | 显示全部楼层
g-123 发表于 2017-4-28 21:42
可以的,完全没有问题。

为什么程序里没有啊
 楼主| 发表于 2017-4-28 21:48 | 显示全部楼层
2581428947 发表于 2017-4-28 21:43
为什么程序里没有啊

程序里有。
Example_1中,
%.....................Fig. 11....................
.
.
.......................................................
Example_2中,
%.....................Fig. 17....................
.
.
.......................................................
Example_3中,
%.....................Fig. 23....................
.
.
.......................................................
以上code中的内容,均是关于信号重构与模态分解的,只是我没有画出重构结果而已。

发表于 2017-4-28 21:50 | 显示全部楼层
g-123 发表于 2017-4-28 21:48
程序里有。
Example_1中,
%.....................Fig. 11....................

好的,谢谢了
发表于 2017-4-29 16:00 | 显示全部楼层
g-123 发表于 2017-4-28 21:48
程序里有。
Example_1中,
%.....................Fig. 11....................

实际好多专业中只需要对一个信号进行重构(我的专业就是这样),楼主能不能再做一个关于信号重构的小程序看一下效果如何,谢谢了
 楼主| 发表于 2017-5-1 20:09 | 显示全部楼层
2581428947 发表于 2017-4-29 16:00
实际好多专业中只需要对一个信号进行重构(我的专业就是这样),楼主能不能再做一个关于信号重构的小程序 ...

对于信号重构这个问题,其实文章中,有很大篇幅都在阐述。而且程序里也给出了解决方案。如果说单独小程序的话,我建议还是尽量自己写。一是的确不太复杂,二是收获会更多。
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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