一、经验模态分解(Empirical Mode Decomposition, EMD)

目的

EMD是由 NE. Huang 等人提出的一种将信号分解成特征模态的方法。它的优点是不会运用任何已经定义好的函数作为基底,而是根据所分析的信号而自适应生成固有模态函数。可以用于分析非线性、非平稳的信号序列,具有很高的信噪比和良好的时频聚焦性。

步骤

EMD分解时有几个假设条件:

  1. 信号至少存在两个极值点,一个极大值,一个极小值。
  2. 时间尺度特性是由两个极值点之间的时间尺度确定的。

EMD分解的目的是将一个信号 f ( t ) f(t) f(t)分解为N个固有模态函数(Intrinsic Mode Function, IMF)和一个残差(residual)。其中,每个IMF需要满足一下两个条件:

  1. 在整个数据范围内,局部极值点和过零点的数目必须相等,或者相差数目最多为1。
  2. 在任意时刻,局部最大值的包络(上包络线)和局部最小值的包络(下包络线)的平均值必须为零。

EMD分解的步骤如下:

第一步:找出原始信号中全部的局部极大值和极小值点,然后通过曲线拟合的方法结合各个极值点构造出上包络线和下包络线,这样原始信号就被上下包络线所包络。
第二步:由上下包络线可构造出它们的均值曲线 m ( t ) m(t) m(t),再用原始信号 f ( t ) f(t) f(t)减去均值曲线,这样得到的 H ( t ) H(t) H(t)就是IMF。
第三步:由于第一、二步得到的IMF通常不会满足IMF的两个条件,所以要不断重复第一二步,直到SD(筛分门限值,一般取值 0.2~0.3)小于门限值时才停止,这样得到的第一个满足条件的 H ( t ) H(t) H(t)就是第一个IMF。
SD的求法: S D = ∑ t = 0 r ∣ H k − 1 ( t ) − H k ( t ) ∣ 2 / ∑ t = 0 T H k − 1 2 ( t ) SD = \sum_{t=0}^{r}|H_{k-1}(t) - H_{k}(t)|^{2}/\sum_{t=0}^{T}H_{k-1}^{2}(t) SD=t=0rHk1(t)Hk(t)2/t=0THk12(t)第四步:残差 r ( t ) = f ( t ) − H ( t ) r(t) = f(t) - H(t) r(t)=f(t)H(t),重复第一、二、三步,直到 r ( t ) r(t) r(t)满足预先设定的条件。

问题
  1. IMF 分解时存在着模态混叠现象,也就是说一个IMF中会包含不同时间尺度的特征成分。一方面是由于信号本身的原因,另一方面是EMD算法本身的缺陷。
  2. 在分解出IMF的过程中需要迭代很多次,而停止迭代的条件缺乏一个标准,所以不同的停止迭代的条件得到的IMFs也是不同的。

二、集成经验模态分解(Ensemble Empirical Mode Decomposition, EEMD

目的

为了解决EMD中存在的模态混叠等问题,Huang通过了一种噪声辅助信号处理(NADA),将信号中加入了噪声进行辅助分析。在EMD 方法中,得到合理IMF 的能力取决于信号极值点的分布情况,如果信号极值点分布不均匀,会出现模态混叠的情况。为此,Huang 将白噪声加入待分解信号,利用白噪声频谱的均匀分布,当信号加在遍布整个时频空间分布一致的白噪声背景上时,不同时间尺度的信号会自动分布到合适的参考尺度上,并且由于零均值噪声的特性,经过多次平均后,噪声将相互抵消,集成均值的结果就可作为最终结果。

步骤

第一步:定义一个 MaxIter,表示要进行EMD的总次数,还有一个 m 作为进行 EMD 的当前次数。
第二步:将信号加入白噪声,得到加噪之后的待处理信号。用EMD的方法进行分解待处理信号,得到 p 个IMF分量 C j , m C_{j,m} Cj,m,表示第 m 次分解出来的第 j 个IMF。
第三步:将 MaxIter 次EMD得到的每个阶段对应的 IMF 进行求平均值,这个最后的值就是通过 EEMD 得到的最终 IMFs。 I M F j ˉ = ∑ m = 1 M a x I t e r C j , m / M a x I t e r \bar{IMF_{j}} = \sum_{m=1}^{MaxIter}C_{j,m} / MaxIter IMFjˉ=m=1MaxIterCj,m/MaxIter

Ref

https://blog.csdn.net/woaidapaopao/article/details/51953302
《基于 EEMD 和多尺度模糊熵的电机轴承故障特征提取方法研究 》

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐