在现实中,每个信号的频率组成成分都不同,然而并不是所有的信号都能求得具有物理意义的瞬时频率,因此,L.Cohen于1992年从物理学的角度,提出将自然界中的信号分为单分量信号和多分量信号,但是对于两种信号的区分,并没有一个严格意义上的定义。他主要是根据信号的时频分布图将单分量信号和多分量信号区分开来的。单分量信号的时频分布图上有且仅有一条谱线,每个时刻有且仅有一个对应值,此对应值便是该信号的瞬时频率;而多分量信号的时频分布图上则有两条或两条以上的谱线,每个时刻均有不同的对应值,即每个时刻包含不同的瞬时频率。
现实领域中存在的信号大都是多分量信号,直接对这些信号求取瞬时频率会出现频率混叠的现象,得不到具有明确物理意义的瞬时频率,因此,需要利用一些时频分析方法首先将这些多分量信号分解成一系列单分量信号,再对其求取瞬时频率,这样才能正确地、完整地掌握信号的特征,局部均值分解(Local Mean Decomposition, LMD)就是其中一种较好的时频分析方法。
LMD是英国人Jonathan S.Smith于2005年提出的一种新的时频分析方法。它可以依据信号自身的信息,自适应地将一个复杂的多分量信号分解成一系列的乘积函数(Product Function,简称PF)之和,每个乘积函数由一个纯调频函数和一个包络函数相乘而得,将所有乘积函数的瞬时频率和幅值相组合,就能够使原始信号的时频分布完整地呈现出来。
1.LMD分解原理和算法
LMD自适应地将一个原始复杂的多分量信号通过循环迭代分解成有限个单分量的调幅调频信号之和,然后再进一步求取各调幅调频信号的瞬时幅值和瞬时频率,整合得到完整的信号时频分布图,从而使得信号的真实特征信息得以从时域和频域两方面同时呈现出来。
LMD分解的最终结果是将原始信号中包含的所有包络信号和纯调频信号分离出来,每分解一次,就将此次分离出来的包络信号与纯调频信号相乘,得到一个乘积函数,简称PF分量。该乘积函数的幅值就是对应分解出来的包络信号的幅值,它的瞬时频率就是对应分解出来的纯调频信号的频率。循环迭代,直至将信号中包含的所有PF分量分离出来则终止循环。对于任一原始信号,其LMD分解算法如下:
(1)首先求出原始信号所有的局部极值点,再由局部极值点计算出原始信号的局部均值函数和包络估计函数,第一个下标是指第一个局部均值函数和第一个局部包络函数,第二个下标指第一次迭代,以此类推。
(2)用减去,从原始信号中分离出局部均值函数,使原始信号的中心线由变成x轴,得到函数。
(3)然后对进行解调,通过除以包络估计函数实现,得到解调后的函数。
根据步骤(1)中的方法求出的包络估计函数,如果,则说明是一个理想的纯调频函数;如果,那么需要将作为初始信号,重复步骤(1) (2) (3),直至,那么变成一个纯调频函数,迭代终止,步骤如下:
其中
迭代终止的条件为,但在实际应用中,很难达到包络估计值绝对等于1的要求,因此,为了减少迭代次数,提高分解速度,在保证一定的LMD分解效果的前提下,引入一个变动量,当 满足 时,即可终止迭代。
(4)将迭代过程中由步骤(1)计算得到的所有包络估计函数相乘,最后的乘积是一个包络信号,PF分量的瞬时幅值函数也便由此产生。
(5) 用步骤(4)产生的包络信号乘以步骤(3)产生的纯调频信号,所得乘积便是LMD分解的第一个PF分量。
LMD的分解过程是由高频到低频逐层分解,因此, 包括了信号的最高频率组成成分,它是一个调幅调频信号,属于单分量信号的范畴,它的瞬时幅值对应包络信号,它的瞬时频率可以通过纯调频信号求得,其中相位。
(6) 最后用减去分量,得到一个新信号,将此信号作为初始信号,重复以上计算过程,循环k次,直到是一个单调函数,具体步骤如下:
这样,通过以上步骤,原始信号就被分解成了k个PF分量和一个残余分量之和,即:
function [PF,residue] = lmd(x)
c = x;
N = length(x);
A = ones(1,N);
PF = [];
aii = 2*A;
while(1)
si = c;
a = 1;
while(1)
h = si;
maxVec = [];
minVec = [];
% look for max and min point
for i = 2: N - 1
if h (i - 1) < h (i) & h (i) > h (i + 1)
maxVec = [maxVec i];
end
if h (i - 1) > h (i) & h (i) < h (i + 1)
minVec = [minVec i];
end
end
% check if it is residual
if (length (maxVec) + length (minVec)) < 2
break;
end
% handle end point
lenmax=length(maxVec);
lenmin=length(minVec);
%left end point
if h(1)>0
if(maxVec(1)<minVec(1))
yleft_max=h(maxVec(1));
yleft_min=-h(1);
else
yleft_max=h(1);
yleft_min=h(minVec(1));
end
else
if (maxVec(1)<minVec(1))
yleft_max=h(maxVec(1));
yleft_min=h(1);
else
yleft_max=-h(1);
yleft_min=h(minVec(1));
end
end
%right end point
if h(N)>0
if(maxVec(lenmax)<minVec(lenmin))
yright_max=h(N);
yright_min=h(minVec(lenmin));
else
yright_max=h(maxVec(lenmax));
yright_min=-h(N);
end
else
if(maxVec(lenmax)<minVec(lenmin))
yright_max=-h(N);
yright_min=h(minVec(lenmin));
else
yright_max=h(maxVec(lenmax));
yright_min=h(N);
end
end
%get envelop of maxVec and minVec using
%spline interpolate
maxEnv=spline([1 maxVec N],[yleft_max h(maxVec) yright_max],1:N);
minEnv=spline([1 minVec N],[yleft_min h(minVec) yright_min],1:N);
mm = (maxEnv + minEnv)/2;
aa = abs(maxEnv - minEnv)/2;
mmm = mm;
aaa = aa;
preh = h;
h = h-mmm;
si = h./aaa;
a = a.*aaa;
aii = aaa;
B = length(aii);
C = ones(1,B);
bb = norm(aii-C);
if(bb < 1000)
break;
end
end
pf = a.*si;
PF = [PF; pf];
bbb = length (maxVec) + length (minVec);
% check if it is residual
if (length (maxVec) + length (minVec)) < 20
break;
end
c = c-pf;
end
图1 LMD分解结果
图2 各个PF分量的能量
2. EMD与LMD对比
LMD的发展离不开EMD,它的发展灵感来源于EMD,可以称它为EMD发展的延续。因此,LMD和EMD的基本思想是一致的,均是依据信号自身的固有特征,自适应地将信号分解成一系列特征分量之和,再对各分量求取瞬时频率和幅值,整合形成信号的时频分布。
通过对比它们的分解步骤,可以发现LMD和EMD分解都是基于局部极值点而展开的,分解得到的特征分量都是单分量信号,且两者都是先分解得到高频成分,再得到低频成分,直到余项为单调函数分解结束。两者在分解过程中产生的问题也相似,如包络拟合问题、端点问题、循环迭代的终止条件设定问题等。发现相似之处的同时,我们也可以发现两者有着明显的区别,主要概括为以下几点:
(1)PF和IMF的概念与效果不同。调频信号可以满足IMF的两个必要条件,所以经EMD分解得到的IMF分量可以确定是调频信号,而经LMD分解得到的PF分量属于调幅调频信号,它并不能保证满足IMF条件,因此PF与IMF不尽相同。另外,对于作为IMF必须符合的两个条件中,极值点数必须与过零点数相等或差值最大为1这一条,说明了在任意相邻两个极值点间,IMF分量不会出现不过零点的局部的波动情况;而PF分量没有此限制,则可以出现任意相邻的两个极值点之间局部的波动情况。因此,PF分量可以更多地、更准确地捕捉信号的特征信息。
(2)均值函数的求取方法不同。EMD是采用三次样条插值对全部极大值点和极小值点分别插值求取上包络和下包络,取其平均值作为均值函数,这种方法在拟合过程中容易造成过包络或欠包络问题;而LMD是采用滑动平均法平滑处理两两相邻极值点的均值得到均值函数,这种方法可以避免由三次样条插值导致的过包络或欠包络问题,因此LMD相比于EMD可以得到更准确的分解结果,更具优势。
(3)端点效应的影响程度不同。在EMD分解过程中,IMF分量的产生是在IMF的两个必要约束条件下,不断地用原始信号减去包络均值函数这样一个循环过程实现的;而在LMD分解过程中,是不断地用原始信号除以包络估计函数,产生一个纯调频函数,再用此纯调频函数乘以包络函数,最终实现PF分量的产生。因此,从循环次数来讲,获得一个PF分量比获得IMF分量更加快速,循环次数更少,随着信号一层层被分解,端点效应也由端点处慢慢向内扩散,循环次数在一定程度上决定了扩散的程度,所以,端点效应对LMD分解的影响程度比对EMD分解的影响程度要轻。
(4)瞬时频率的计算方式不同。EMD方法中,欲求信号的瞬时频率需要先对各IMF分量做Hilbert变换,然后再通过瞬时相位对时间求导计算出瞬时频率,当瞬时相位存在突变情况时,则会出现瞬时频率的值为负值的现象,很难去解释它的物理意义;而LMD方法中,瞬时频率是可以直接由PF分量的纯调频信号成分按照其物理定义计算得到的,这种计算方式简单,且求出的瞬时频率均为正值,具有明确的物理意义。因此,LMD分解可以得到比EMD分解更加精确的瞬时频率。
(5)计算量不同。EMD分解的实现包括两个迭代过程,一个是IMF分量的获取,另一个是分离出所有IMF分量,得到单调残余项的过程;而LMD分解的实现则包含三个迭代过程,首先是滑动平均法求取信号的局部均值函数和包络估计函数的过程,再就是求得一个纯调频函数的过程,最后是分离出所有PF分量,得到单调残余项的过程。因此,在一定程度上,LMD的三重循环比EMD的二重循环计算量更大。