您好,欢迎访问三七文档
1介绍由于在现实中存在着大量的非平稳信号,因此针对非平稳信号的处理与分析一直是信号处理领域里的一个研究热点,在目前的非平稳信号处理方法中Wigner-Villy分布、小波变换和经验模式分解法(EMD)等典型方法已经得到了很广泛的应用,不过也存在一定的局限性,其中Wigner-Villy分布由于是二次型时频表示,对于多分量信号,存在交叉项干扰。小波变换对时频面是一种机械的格型分解,所以无自适应性。EMD是一种自适应的信号处理方法,它将复杂的多分量信号自适应地分解为若干个IMF(Intrinsicmodefunction,简称IMF)分量之和,进一步对每个IMF分量进行Hilbert变换求出瞬时频率和瞬时幅值,从而得到原始信号完整的时频分布,由于EMD的自适应分解性等优点使他在机械故障诊断、地震信号分析、海洋信号分析等领域已经得到了广泛的应用,但是EMD方法在理论上还存在一些问题,如过包络、欠包络、模态混淆和端点效应问题,这些问题仍在研究中。最近JonathanS.Smith在前人的研究基础上提出了一种新的自适应非平稳信号的处理方法——局部均值分解(LMD)。并将这种方法应用于脑电信号分析,取得了不错的效果。LMD自适应的将任何一个复杂的非平稳信号分解成若干个瞬时频率具有物理意义的PF分量之和,其中每一个PF分量由一个包络信号和一个纯调频信号相乘而得到,包络信号就是该PF分量的瞬时幅值,而PF分量的瞬时频率则可由纯调频信号直接求出,进一步将所有PF分量的瞬时频率和瞬时幅值组合,便可以得到原始信号完整的时频分布。2局部均值分解方法LMD方法的实质是从原始信号中分离出纯调频信号和包络信号,将纯调频信号和包络信号相乘便可以得到一个瞬时频率具有物理意义的PF分量,迭代处理至所有的PF分量分离出来,便可以得到原始信号的时频分布。对于任意信号()xt,其分解过程如下。1)找出原始信号所有的局部极值点,求出所有相邻的局部极值点的平均值:将所有相邻的平均值点用直线连接起来,然后用滑动平均法进行平滑处理,得到局部均值函数。2)求出包络估计值将所有相邻两个包络估计值用直线连接,然后采用滑动平均方法进行平滑处理,得到包络估计函数。3)将局部均值函数从原始信号中分离出来,得到4)用除以包络估计函数以对进行解调对重复上述步骤便能得到的包络估计函数,假如不等于1,说明不是一个纯调频信号,需要重复上述迭代过程n次,直至为一个纯调频信号,也即的包络估计函数,所以,有式中,迭代终止的条件为实际应用中,在不影响分解效果的前提下,为了减少迭代次数,降低运算时间,可以用作为迭代终止的条件。5)把迭代过程中产生的所有包络估计函数相乘便可以得到包络信号(瞬时幅值函数)6)将包络信号和纯调频信号相乘便可以得到原始信号的第一个PF分量它包含了原始信号中最高的频率成分,是一个单分量的调幅-调频信号,其瞬时幅值就是包络信号,其瞬时频率则可由纯调频信号求出,即7)将第一个PF分量从原始信号中分离出来,得到一个新的信号,将作为原始数据重复以上步骤,循环k次,直到为一个单调函数为止。原始信号能够被所有的PF分量和重构,即说明LMD分解没有造成原信号信息的丢失。3.端点效应LMD分解会受到端点效应的影响,由于局域均值包络函数在端点处均存在一段未知的信号,若对端点不进行处理,在程序运行时,会自动给这部分信号添加一些虚假信息,从而对LMD分解产生影响。LMD端点效应首先发生在端点附近,然后在迭代过程中不断向内部扩散,迭代次数越多端点效应污染整个数据段的程度就越严重。端点效应会使分解得到的各分量在端点附近产生一些变形,从而使结果不容易满足循环终止条件,增加了循环次数,严重的时候会使数据产生严重失真。为减小端点效应对算法的影响,在分解前要对端点经行一定的处理,应用最多的处理方法是镜像延拓算法,镜像延拓是在端点以外延拓一段信号。实际处理的信号两端点一般不是极值点,这时候可以采用镜像延拓的方法进行拓展,在LMD算法中只延拓一个极值点就可以很好的消除端点效应的影响。延拓方法如下图所示,以离端点最近的一个极值点为对称轴(如图中虚线所示),将离端点次近的极值点向外延拓。在求解局部均值函数和局部包络函数的时候将这个延拓的极值点代入,即可求得完整的局部均值函数和局部包络函数。极值点延拓示意图实验用的数据fs=1000;N=1000;ts=1/fs;n=0:N-1;t=n/fs;x=@(t)(1+0.5*cos(9*pi*t)).*cos(200*pi*t+2*cos(10*pi*t))+sin(pi*t).*sin(30*pi*t);以下是图和解释这个是没有经过镜像延拓法后的结果依次是pf1pf2pf3可以发现端点附近的值失真严重对应的显示程序subplot(311);plot(t,pf(1,:));subplot(312);plot(t,pf(2,:));subplot(313);plot(t,pf(3,:));这是对于pf1pf2的纯调频函数依次是si1si2对于的显示程序subplot(211);plot(t,si(1,:));subplot(212);plot(t,si(2,:));这个是对应pf1pf2的包络信号也就是瞬时幅值函数依次是a1a2对应的显示程序subplot(211);plot(t,a(1,:));subplot(212);plot(t,a(2,:));这个是瞬时频率乘以采样率就是ff1ff2程序用的直接法求取瞬时频率对应的显示程序subplot(211);plot(t,ff(1,:));subplot(212);plot(t,ff(2,:));这个是经过镜像延拓法后的pf1pf2pf3端点效应明显减弱对应的显示程序subplot(311);plot(t,pf(1,:));subplot(312);plot(t,pf(2,:));subplot(313);plot(t,pf(3,:));这个是经过镜像延拓法后的这是对于pf1pf2的纯调频函数依次是si1si2对于的显示程序subplot(211);plot(t,si(1,:));subplot(212);plot(t,si(2,:));上面一个是包络信号也就是瞬时幅值函数下面一个是对包络信号进行线性调频Z变换(CZT)的频谱图functionhua_xihua(x,fs,f1,fn,jingdu,style)对应的显示程序subplot(211);plot(t,a(1,:));subplot(212);hua_xihua(a1,fs,0,100,256,2);上面一个是瞬时频率乘以采样率下面一个是对瞬时频率进行线性调频Z变换(CZT)的频谱图functionhua_fft1(y,fs)对应的显示程序subplot(211);plot(t,ff(1,:));subplot(212);hua_xihua(f1,fs,0,100,256,2);这个是包络谱和包络功率谱functionhua_baoluo(y,fs,style,varargin)其中用了希尔伯特变换,DFT等对应显示程序subplot(211);hua_baoluo(pf(1,:),fs,1);subplot(212);hua_baoluo(pf(2,:),fs,1);
本文标题:lmd介绍
链接地址:https://www.777doc.com/doc-2885203 .html