EMD方法基本基本知识

EMD
经验模态分解(Empirical Mode Decomposition,简称EMD))方法被认为是2000年来以傅立叶变换为基础的线性和稳态频谱分析的一个重大突破,该方法是依据数据自身的时间尺度特征来进行信号分解,无须预先设定任何基函数。这一点与建立在先验性的谐波基函数和小波基函数上的傅里叶分解与小波分解方法具有本质性的差别。正是由于这样的特点,EMD 方法在理论上可以应用于任何类型的信号的分解, 因而在处理非平稳及非线性数据上,具有非常明显的优势,适合于分析非线性、非平稳信号序列,具有很高的信噪比。所以,EMD方法一经提出就在不同的工程领域得到了迅速有效的应用,例如用在海洋、大气、天体观测资料与地震记录分析、机械故障诊断、密频动力系统的阻尼识别以及大型土木工程结构的模态参数识别方面。
该方法的关键是经验模式分解,它能使复杂信号分解为有限个本征模函数(Intrinsic Mode Function,简称IMF),所分解出来的各IMF分量包含了原信号的不同时间尺度的局部特征信号。经验模态分解法能使非平稳数据进行平稳化处理,然后进行希尔伯特变换获得时频谱图,得到有物理意义的频率。与短时傅立叶变换、小波分解等方法相比,这种方法是直观的、直接的、后验的和自适应的,因为基函数是由数据本身所分解得到。由于分解是基于信号序列时间尺度的局部特性,因此具有自适应性。
2基本原理
对数据信号进行EMD分解就是为了获得本征模函数,因此,在介绍EMD分析方法的具体过程之前,有必要先介绍EMD分解过程中所涉及的基本概念的定义:本征模函数,这是掌握EMD方法的基础。
本征模函数
在物理上,如果瞬时频率有意义,那么函数必须是对称的,局部均值为零,并且具有相同的过零点和极值点数目。在此基础上,NordneE.Huang等人提出了本征模函数(Intrinsic Mode Function,简称IMF)的概念。本征模函数任意一点的瞬时频率都是有意义的。Huang等人认为任何信号都是由若干本征莫函数组成,任何时候,一个信号都可以包含若干个本征模函数,如果本征模函数之间相互重叠,便形成复合信号。EMD分解的目的就是为了获取本征模函数,然后再对各本征模函数进行希尔伯特变换,得到希尔伯特谱。
Huang认为,一个本征模函数必须满足以下两个条件:
⑴l函数在整个时间范围内,局部极值点和过零点的数目必须相等,或最多相差一个;
⑵在任意时刻点,局部最大值的包络(上包络线)和局部最小值的包络(下包络线) 平均必须为零。
第一个条件是很明显的,它与传统的平稳高斯信号的窄带要求类似。对于第二个条件,是一个新的概念,它把经典的全局性要求修改为局部性要求,使瞬时频率不再受不对称波形所形成的不必要的波动所影响。实际上,这个条件应为“数据的局部均值是零”。但是对于非平稳数据来说,计算局部均值涉及到“局部时间尺度”的概念,而这是很难定义的。因此,在第二个条件中使用了局部极大值包络和局部极小值包络的平均为零来代替,使信号的波形局部对称。Huang等人研究表明,在一般情况下,使用这种代替,瞬时频率还是符合所研究系统的物理意义。本征模函数表征了数据的内在的振动模式。由本征模函数的定义可知,由过零点所定义的本征模函数的每一个振动周期,只有一个振动模式,没有其他复杂的奇波;一个本征模函数没有约束为是一个窄带信号,并且可以是频率和幅值的调制,还可以是非稳态的;单由频率或单由幅值调制的信号也可成为本征模函数。
EMD方法的分解过程
由于大多数所有要分析的数据都不是本征模函数,在任意时间点上,数据可能包含多个波动模式,这就是简单的希尔伯特变换不能完全表征一般数据的频率特性的原因。于是需要对原数据进行EMD分解来获得本征模函数。
EMD分解方法是基于以下假设条件:⑴数据至少有两个极值,一个最大值和一个最小值;⑵数据的局部时域特性是由极值点间的时间尺度唯一确定;⑶如果数据没有极值点但有拐点,则可以通过对数据微分一次或多次求得极值,然后再通过积分来获得分解结果。这种方法的本质是通过数据的特征时间尺度来获得本征波动模式,然后分解数据。这种分解过程可以形象地称之为“筛选(sifting)”过程。
分解过程是:找出原数据序列X(t)所有的极大值点并用三次样条插值函数拟合形成原数据的上包络线;同样,找出所有的极小值点,并将所有的极小值点通过三次样条插值函数拟合形成数据的下包络线,上包络线和下包络线的均值记作ml,将原数据序列X(t)减去该平均包络ml,得到一个新的数据序列h,:
X(t)-ml=hl
由原数据减去包络平均后的新数据,若还存在负的局部极大值和正的局部极小值,说明这还不是一个本征模函数,需要继续进行筛选。

经验模态分解
近来,一种被称为EMD的新的非线性方法被黄等人提出,这种方法能够自适应的把非平稳信号分解成一系列零均值的AMFM信号(调频调幅) 的总和。尽管这种方法经常有着显著的效果,但是这个方法在算法方面的定义是困难的,因此这种方法没有作为一种分析方法得到承认,一般一种分析方法是需要有理论分析和性能评估。因此本文的目的是用实验的方式使得该算法更容易理解,并且提出了基于原算法的各种各样的改进的算法。设置实验性能评估的许多初始条件是为了获取一种有效的分解并且使得该算法更容易理解。
1. EMD基础
EMD的出发点是把信号内的震荡看作是局部的。实际上,如果我们要看评估信号x(t)的2个相邻极值点之间的变化(2个极小值,分别在t-和t+处),我们需要定义一个(局部)高频成分{d(t),t-<=t<=t+}(局部细节),这个高频成分与震荡相对应,震荡在2个极小值之间并且通过了极大值(肯定出现在2极小值之间)。为了完整这个图形,我们还需要定义一个(局部)低频成分m(t)(局部趋势),这样x(t)=m(t)+d(t),(t-<=t<=t+)。对于整个信号的所有震动成分,如果我们能够找到合适的方法进行此类分解,这个过程可以应用于所有的局部趋势的残余成分,因此一个信号的构成成分能够通过迭代的方式被抽离出来。
对于一个给定的信号x(t),进行有效的EMD分解步骤如下:
1) 找出想x(t)的所有极值点
2) 用插值法对极小值点形成下包络emint(t),对极大值形成上包络emax(t)
3) 计算均值m(t)=(emint(t)+emax(t))/2
4) 抽离细节d(t)=x(t)-m(t)
5) 对残余的m(t)重复上诉步骤
在实际中,上述过程需要通过一个筛选过程进行重定义,筛选过程的第一个迭代步骤是对细节信号d(t)重复从1-4步,直到d(t)的均值是0,或者满足某种停止准则才停止迭代。
一旦满足停止准则,此时的细节信号d(t)就被称为IMF,d(t)对应残量信号用第5步计算。通过以上过程,极值点的数量伴随着残量信号的产生而越来越少,整个分解过程会产生有限个模函数(IMF)。
模函数和残量信号可以进行谱分析,但是这个谱分析不能从狭隘的角度来看。首先,需要强调一下,即使是谐振荡,应用上述方法产生的高频和低频也只是局部的,没办法产生一个预设的频带过滤(例如小波变换)进行辨识。选择的模函数对应了一个自适应(依赖于信号自身的)的时变滤波器。一个这方面的例子:一个信号由3个部分组成(这3个部分是时间频率上都明显叠加的信号),用上述方法成功的分解了。分解如图1所示。这个例子的程序是emd_fmsin2.m
另外一个例子(emd_sawtooth.m)强调了EMD潜在的非谐振性质如图2所示。在这些例子中,线性的非线性的震荡都能被有效的识别和分离。因而,任何谐振分析(傅里叶,小波,…)可能结束在同类文章中,更少的紧凑和更少的实际意义的分解。
2. 算法的改进
正如第二部分所定义的,EMD算法依赖于一系列的选项,这些选项需要用户控制,并且需要专业的知识。在此我们的目的找出更准确的选项,并且给予原来的算法进行改进。
3.1采样率,插值方法和边缘效应
EMD的基础操作是估计出上包络和下包络作为极值点之间的插值曲线。选择的插值法的性能是非常重要的参数。我们的实验是要确定三次样条插值法作为首选。其他的插值法(线性的或者多项式的)会增加筛选的迭代次数,并且会产生过分解信号,这些过分解信号散布在临近的模函数内。
其次,自从这个算法运用到实际的离散时间信号中,需要注意的是极值点必须能够正确的找出,其必要条件是要求大量的过采样(关于这点将会在第4段进行进一步的研究)
最后,边界状态也要进行考虑,因为极小的的误差会扩散到有限的测量数据长度内。作为这方面的考量,通过镜像沿拓加入极值点到边界附近能够得到较好的结果。
3.2筛选的停止准则
当筛选过程结束时,抽取的模函数会是满意的。在这方面有2个必备的条件:第一个是极值点数和过零点数最多相差1个,第二个是上包络和下包络的均值必须近似等于零或者满足某种准则。
均值的幅度有多小需要通过计算与对应的模函数的幅值,但是用一个过低的阈值来终止迭代过程会导致如前面提到的问题(过迭代产生过分解)。作为一个改进的准则,我们目前所认识的,我们提出(在emd.m)一个新的准备建立在2个阈值上的。目的是保证整体的小的波动在整体大的过程中有意义。这个总量引进了模幅值a(t)=(emax(t)-emin(t))/2,和估计函数o(t)=|m(t)/a(t)|,为了让筛选迭代停止,当满足o(t)< θ1对于规定的部分(1-α)在整个段,当o(t)< θ2对于剩余的部分。一旦设定α≈0.05,θ1≈0.05,θ2≈0.5(这些在emd.m是默认值)
3.3局部EMD
经典EMD应用中,筛选迭代适合于整个数据长度,并且追求只要有局部区域存在(出现在包络均值处),就不认为足够小。然而,正如文中已经提到的,因为好的局部逼近会有对其他部分信号进行数据污染的缺点,所以整个信号会出现过迭代。这种情况特别容易发生在在一样的幅值和在过分解通过扩散到其他临近的模函数。原始算法的分层的和非线性的并不能保证序列信号的EMD会是每个EMD的序列。
因此,本文提出的第一个改进算法是基于原始的EMD基础上的。这个新的算法称其为局部EMD(local_emd.m),这个新算法在赛选过程中引入了一个中间步骤:对有异常的较大的数据的局部区域进行识别和隔离,这个附加的步骤只适合处理这些异常区域。通过引进一个重量函数w(t)来实现上述功能。当满足o(t)> θ1,的时间范围时,w(t)=1,否则w(t)缓慢的衰减至0。第二部分所描述的原EMD算法的第4步就改成了d(t)=x(t)-w(t)m(t)。
3.4在线EMD
第二个改进算法是基于这样一种事实提出的:筛选过程依赖于对极值点的插值,因此对给定的数据长度的数据点只需要使用有限个极值点(三次样条插值5个极小值和5个极大值)。因此模函数的抽取不需要了解整个信号(或者前一次残余信号)。这就为在线运行,并且将之应用于数据流(emd_online.m)的改进的EMD算法铺平了道路。
模函数的抽取的必要条件同样适用于筛选过程,这样做能够防止出现可能的不连续的点,这样就需要了解整个信号了,筛选运行次数是与先验知识相符的,并且少量的迭代次数(少于10次,特别是是4次)能够产生足量的有意义IMF。为了更有效应用在线EMD算法,我们建议对局部算法上再加一个平滑窗。新的有效数据进入窗的前边沿,当满足停止准则时,整块数据进入后边沿。基于这样一种远离,从而IMF和其相应的残量成分可以计算出来。因此整个算法能够应用于残量成分,继而从剩余的模函数中抽离有效成分。
这个新的算法怎样工作例子的可以通过运行ex_omline.m这个程序观看到,这个例子中的解析信号是由图1中的3个周期信号组成的。运用在线EMD算法,对2000个数据点组成的基础数据块进行分解,最终分解得到16000个数据点。
除了将在线算法的基本使用在数据流的分解中,在计算负担上(处理较长的数据,计算负担会变的更重),有人指出它较标准算法有更好的优越性。

3. 性能基础
自从EMD本质上定义为一种算法,但是并没有作为一种分析方法所承认,它的性能估计是困难的,并且需要大量的模拟实验。我们将从两方面报告他的原理,一方面是从先前将EMD应用到实数信号所表现出的非凡性,另一方面是从对分解的理解。
4.1分量和采样率
当我们分析一个单分量信号,EMD作为分辨单元理想状态下只分离出1个模函数(这个模函数正好识别这个单分量)且不包含残余分量。然而,即时出去边缘效应的影响,也很难得到这样理想化的分解结果,这是因为无法避免采样率对EMD分解的影响。如果一个周期内采样的点很少,那么在这样一个采样率下,采样得到的极值点也就不准确了。
图3(emd_sam;ling.m)通过固定频率f的方程产生了一个信号进行EMD分解验证以上由于采样率造成的错误。代表了从频率为f的分量抽离出来的第一个EMD模函数。结果是,即时是这样一个分量估计,也完全取决于频率f:当分量的周期是采样率的倍数时,错误发生在极小值时,我们会观察到。
4.2分量的分离
在由2个分量构成的信号中,其中,理想状态下EMD抽离出2个模函数,尽管采用了适当的采样率,但是第一个模函数要求采样率为,采样率为时对模函数1的影响比或函数2要大。发生在抽离过程中的错误可以通过准则(1)的扩展重量得到量化。对应于模函数1,对应于模函数2(会出现较少的错误点)(emd_separation.m)。
上面的结果用图4描述的,结果表明对于复杂结构的信号,对整个区域进行分量分离是困难的,特别是当>1/4时。观察模型依赖于赋值比,但是在第一个逼近出都显示了同样一个特性:许多错误都包含在三角区域内,这些三角区域被2条通过这个区域的直线所限制。换句话说,对于一个给定的频率,对于每一个幅值比必然存在一个适当的使得()不能被分离。这个发现认为EMD可以作为是一组常数Q的滤波器组来理解,这个结论与文献[1,4,7]提到的包含宽带噪声的随机过程的结论是一致的
4. 小结
EMD是新的有前景的非平稳非线性处理方法,但是仍需要更好的解释。这篇文章讨论了算法现存的问题,目的是使该算法能够得到更有效的应用,并且提出了许多具有初始的性能估计。
这篇文章在使用EMD方面提供了一个新的视角和做了一些改进的算法,但这些工作都是经验性的,需要对该算法做进一步的理论研究。

你可能感兴趣的:(Matlab,函数)