介绍
由于傅里叶变换得到的是信号的全局频域特征,它只能确定平稳(包括周期性)信号的频域特征,而不能确定非平稳信号在某一时刻的瞬时频域,即时变频率。对于复信号相位在时间上求导,即可得瞬时角频率或者频率。但是,这样计算得角频率或频率可能是负数,这与常识相违背。因此,对一般的非平稳或者非线性信号需要做一些的特殊处理才能求其角频率。故本文引入了希尔伯特-黄变换。
Norden.E. Huang等人对瞬时频率进行深入研究后发现,对于满足一定条件的信号,利用解析信号的方法才能求得具有物理意义得时变频谱,此类信号称之为本征模式分量(Instrinsic Mode Function,IMF),他们可以经由一个经验模式分解(Empirical Mode Decomposition,EMD)过程而得到。所谓本征模式分量是指满足如下两个条件得序列:
(1)数据序列的极值点(包括极大值和极小值)的数量与过零点的数量相等或者相差1。
(2)在任意时刻t,由信号极大值确定的上包络线和极小值确定的下包络线的均值为0。
满足以上两个条件的本征模式分量在连续两个过零点之间只有一个极值点,即只包含一个本征模式震荡,没有复杂的叠加波存在。对于一般的具有一定带宽的非平稳信号都可以满足上述定义。任何平稳信号或者非平稳信号都可以由若干个本征模式分量所构成,在任何时刻,信号可以包含多个震荡模式,每个震荡模式由一个本征模式分量决定。信号的经验模式分解由如下的筛选过程完成:
(1)确定的所有极大值和极小值。将极大值和极小值依次用三次样条曲线连接起来,得到的上包络线和下包络线,这时曲线上的所有点都在这两条包络线之间。上下两条包络线组成的均值组成均值曲线。
(2)将曲线减去均值曲线,得到残差信号。如果不满足本征模式分量的定义,则将作为新的信号,重复步骤(1)和(2),直到得到的残差信号满足本征模式分量的定义,记。
(3)从原始信号中分离出第一个本征模式分量之后,从中减去得到新的原始信号。
(4)重复步骤(1)、(2)和(3),依次得到本征模式分量即残差信号,当满足如下两个条件之一时,整个筛选过程结束:一、本征模式分量或者残差信号小于预先给定的值;二、残差信号为单调信号,从而不能筛选出新的本征模式分量。
于是,经过筛选过程,信号分解为一系列本征模式分量和一个残差信号之和,即
从以上过程可以看出,EMD其实就是一种基函数分解,不过它的基函数是自适应的,不同的信号分解可以得到不同的基函数。
现在已有EMD工具先可供使用,调用其中的emd函数,可以直接将任意信号分解为本征模式分量,该工具箱是由G.Rilling提供的。下面将举一个例子,分别将一段浊音和一段清音分解为本征模式分量,以说明emd函数的用法。
语音信号的经验模式分解。利用EMD工具箱中的emd函数分别将一段浊音和一段清音分解为本征模式分量。
clc;clear all;clear all;
y1=audioread('.\female voice_Freesound.wav',[501,1000]);%读取500浊音段
y2=audioread('.\female voice_Freesound.wav',[501,600]);%读取100清音段
y1=y1(:,1);y2=y2(:,1);
imf1=emd(y1).'; %对浊音进行EMD
imf2=emd(y2).'; %对清音进行EMD
[m1,n1]=size(imf1);[m2,n2]=size(imf2); %求取浊音和清音分解为几个分量
figure(1)
subplot(m1+1,1,1);plot(y1); %浊音波形图
grid on;
title('浊音信号');ylabel('幅度');
for ii=1:m1
subplot(m1+1,1,ii+1);
plot(imf1(ii,:)); %浊音本征分量波形图
grid on;
title(['第',num2str(ii),'个分量']);
ylabel('幅度');
grid on
end
figure(2)
subplot(m2+1,1,1);plot(y2); %清音波形图
grid on;
title('清音信号');ylabel('幅度');
for ii=1:m2
subplot(m2+1,1,ii+1);
plot(imf2(ii,:)); %清音本征分量波形图
grid on;
title(['第',num2str(ii),'个分量']);
ylabel('幅度');
grid on
end
运行效果如图:
从图中可以看出,浊音段分为了6个分量,清音段分为了5个分量(由定义可知没有残差分量)。
由定义式,略去残差分量,即将原始信号分为了多个本征模式之和。对于每个本征模式分量进行希尔伯特变换,得到,于是得到解析信号。故原始信号为
对应于每一个相位,对应于一个角频率。信号的傅里叶变换展开的分量的每个频率在所有时刻都是相同的,每个频率都对应一个恒定的幅度,而根据希尔伯特-黄变换得到的每个分量的幅度和相位都是时变的。
验证
验证两个余弦信号的合成信号的经验模式分解。
设信号,容易得到信号的希尔伯特-黄变换构成的解析信号为
,原信号取其实部,显然,信号包含两个离散的角频率:.代码如下:
clear all;
close all;
clc;
t=0:0.01:10;
x=cos(20*t)+1.2*cos(10*t);
imf=emd(x).';
[m,n]=size(imf);
subplot(m+1,1,1)
plot(t,x);
axis([0,10,-3,3]);ylabel("幅度")
title("原始信号")
for ii=1:m
subplot(m+1,1,ii+1)
plot(t,imf(ii,:));
hold on
switch ii
case 1
plot(t,cos(20*t));
case 2
plot(t,1.2*cos(10*t));
otherwise
break;
end
axis([0,10,-2,2]);ylabel("幅度");
title(["第",num2str(ii),"个分量"])
end
运行结果如下:
图中展示了IMF分量与两个余弦信号的对比,其周期差不多是一致的,但是幅值略有差异,这可以看作是由端点效应引起的。EMD是通过多次筛选得到的本征模式分量,筛选过程是利用信号的上下包络线计算局部均值,而包络线是由三次曲线得到的。信号在端点处不可能同时处于极大值和极小值,因此包络线在端点处必然出现发散的现象,这就是端点效应。由于在端点处分解的IMF出现失真,这种失真在筛选过程中不断扩散,导致整个序列都失真。端点效应是目前仍然需要解决的一个重大问题。
总结
- EMD是一种主成分分析方法,它分解的第一个IMF一般具有较大的能量,代表信号的主要特征,然后再逐步分析低频分量,所以它是一种很好的主成分分析方法。
- EMD是一种自适应时频分析方法,它的基函数是自适应改变的,不同的信号有不同的基函数。
- 有EMD分解的基函数可以得到希尔伯特时变频谱,强调了信号的局部瞬时特征,因而特别适合非平稳、非线性的时变频谱分析。
注:个人参考书籍学习