emd
经验模态分解
描述
emd (___)
将原始信号、IMFs和剩余信号作为子图绘制在同一幅图中。
例子
执行经验模态分解和可视化信号的希尔伯特谱
加载并可视化一个由频率变化明显的正弦波组成的非平稳连续信号。手提钻的振动和烟花的声音是非平稳连续信号的例子。信号以一定的速率采样fs
.
负载(“sinusoidalSignalExampleData.mat”,“X”,“fs”) t =(0:长度(X)-1)/fs;情节(t, X)包含(“时间(s)”)
混合信号包含不同振幅和频率值的正弦波。
要创建希尔伯特频谱图,需要信号的本征模态函数(IMFs)。进行经验模态分解,计算信号的IMFs和残差。由于信号不平滑,请指定'pchip
'作为插值方法。
[imf,residual,info] = emd(X,“插值”,“pchip”);
命令窗口中生成的表格显示了每个生成的IMF的筛分迭代次数、相对公差和筛分停止准则。此信息也包含在信息
.控件可以隐藏表“显示”,0
名称值对。
方法创建希尔伯特谱图国际货币基金组织
用经验模态分解得到的分量。
遗传性出血性毛细血管扩张症(imf, fs)
频率与时间图是一个稀疏图,带有一个垂直色条,表示IMF中每个点的瞬时能量。该图表示从原始混合信号分解出的各分量的瞬时频谱。图中出现了3个在1秒内频率变化明显的imf。
正弦信号的本征模函数的过零和极值
这个三角恒等式对同一个物理信号有两种不同的看法:
.
生成两个正弦信号,年代
而且z
,以致于年代
是三个正弦波的和吗z
是一种振幅经过调制的单正弦波。通过计算两个信号之差的无穷范数来验证两个信号是否相等。
T = 0:1e-3:10;= 2* *100;= 2* *20;s = 0.25 * cos ((omega1-omega2) * t) + 2.5 * cos(ω* t) + 0.25 * cos((ω+₂)* t);Z = (2+cos(2/2*t).^2) *cos(t);规范(s-z正)
Ans = 3.2729e-13
绘制正弦曲线,选择从2秒开始的1秒间隔。
Plot (t,[s' z']) xlim([2 3]) xlabel(“时间(s)”) ylabel (“信号”)
获得信号的频谱图。频谱图显示了三个不同的正弦分量。傅里叶分析认为信号是正弦波的叠加。
pspectrum(年代,1000,的谱图,“TimeResolution”4)
使用emd
计算信号和附加诊断信息的本征模态函数(IMFs)。默认情况下,该函数输出一个表,表示每个IMF的筛选迭代次数、相对公差和筛选停止条件。经验模态分解将信号视为z
.
[imf,~,info] = emd(s);
零点交叉和局部极值的数量最多相差一个。这满足了信号是IMF的必要条件。
信息。NumZerocrossing - info.NumExtrema
Ans = 1
绘制IMF并选择从2秒开始的0.5秒间隔。IMF是AM信号,因为emd
将信号视为振幅调制。
Plot (t,imf) xlim([2 2.5]) xlabel(“时间(s)”) ylabel (国际货币基金组织的)
计算振动信号的本征模态函数
模拟损坏轴承发出的振动信号。进行经验模态分解,可视化信号的IMFs,寻找缺陷。
节径为12厘米的轴承有8个滚动元件。每个滚动元件直径为2厘米。外部赛车保持静止,内部赛车以每秒25圈的速度行驶。加速度计对10千赫的轴承振动进行采样。
Fs = 10000;F0 = 25;N = 8;D = 0.02;P = 0.12;
来自健康轴承的振动信号包括几个阶的驱动频率。
T = 0:1/fs:10-1/fs;yHealthy = [1 0.5 0.2 0.1 0.05] * sin(2 *π* f0 *(1 2 3 4 5]。* t) / 5;
在测量过程的中途,在轴承振动中激发共振。
yHealthy = (1 + 1. / (1 + linspace(-10、10、长度(yHealthy)) ^ 4)) * yHealthy;
共振在轴承的外圈引入缺陷,导致渐进磨损。该缺陷引起一系列冲击,这些冲击在轴承的球通过频率外圈(BPFO)处重复出现:
在哪里 是驾驶速度, 是滚动元件的个数, 为滚动元件的直径, 是轴承的节径,和 为轴承接触角。假设接触角为15°,计算BPFO。
Ca = 15;Bpfo = n*f0/2*(1-d/p*cosd(ca));
使用pulstran
函数将冲击建模为5毫秒正弦周期序列。每个3千赫正弦波由一个平顶窗口打开。使用幂律在轴承振动信号中引入渐进磨损。
fImpact = 3000;tImpact = 0:1/fs:5e-3-1/fs;wImpact = flattopwin(length(tImpact))'/10;xImpact = sin(2*pi*fImpact*tImpact).*wImpact;Tx = 0:1/bpfo:t(end);Tx = [Tx;1.3。^ tx-2];nWear = 49000;nSamples = 100000;yImpact = pulstran(t,tx',xImpact,fs)/5; yImpact = [zeros(1,nWear) yImpact(1,(nWear+1):nSamples)];
通过将冲击添加到健康信号中,生成BPFO振动信号。绘制信号并选择从5.0秒开始的0.3秒间隔。
yBPFO = yImpact + yHealthy;xLimLeft = 5.0;xLimRight = 5.3;yMin = -0.6;yMax = 0.6;yBPFO情节(t)在[limLeft,limRight] = meshgrid([xLimLeft xLimRight],[yMin yMax]);情节(limLeft limRight,“——”)举行从
放大所选间隔,以可视化冲击的效果。
xlim ([xLimLeft xLimRight])
在信号中加入高斯白噪声。指定的噪声方差 .
Rn = 150;yGood = yHealthy + randn(size(yHealthy))/rn;yBad = yBPFO + randn(size(yHealthy))/rn;plot(t,yGood,t,yBad) xlim([xLimLeft xLimRight])“健康”,“受损”)
使用emd
对健康轴承信号进行经验模态分解。计算前五个本征模态函数(IMFs)。使用“显示”
名称-值对显示每个IMF的筛选迭代次数、相对公差和筛选停止准则的表。
imfGood = emd(yGood,“MaxNumIMF”5,“显示”1);
Current IMF | #Sift Iter |相对Tol | Stop Criterion Hit 1 | 3 | 0.017132 | SiftMaxRelativeTolerance 2 | 3 | 0.12694 | SiftMaxRelativeTolerance 3 | 6 | 0.14582 | SiftMaxRelativeTolerance 4 | 1 | 0.011082 | SiftMaxRelativeTolerance 5 | 2 | 0.03463 | SiftMaxRelativeTolerance分解停止,因为提取了最大数量的本构模函数。
使用emd
没有输出参数来显示前三种模式和残差。
emd (yGood“MaxNumIMF”5)
计算和可视化的缺陷轴承信号的IMFs。第一种经验模式揭示了高频冲击。这种高频模式的能量随着磨损的进行而增加。第三种模式表示振动信号中的共振。
imfBad = emd(yBad,“MaxNumIMF”5,“显示”1);
Current IMF | #Sift Iter |相对Tol | Stop Criterion Hit 1 | 2 | 0.041274 | SiftMaxRelativeTolerance 2 | 3 | 0.16695 | SiftMaxRelativeTolerance 3 | 3 | 0.18428 | SiftMaxRelativeTolerance 4 | 1 | 0.037177 | SiftMaxRelativeTolerance 5 | 2 | 0.095861 | SiftMaxRelativeTolerance分解停止,因为提取了最大数量的本构模函数。
emd (yBad“MaxNumIMF”5)
分析的下一步是计算提取的imf的希尔伯特谱。有关详细信息,请参见计算振动信号的希尔伯特谱的例子。
信号的残差和本征模态函数的可视化
加载并可视化一个由频率变化明显的正弦波组成的非平稳连续信号。手提钻的振动和烟花的声音是非平稳连续信号的例子。信号以一定的速率采样fs
.
负载(“sinusoidalSignalExampleData.mat”,“X”,“fs”) t =(0:长度(X)-1)/fs;情节(t, X)包含(“时间(s)”)
混合信号包含不同振幅和频率值的正弦波。
进行经验模态分解,绘制信号的本征模态函数和残差。由于信号不平滑,请指定'pchip
'作为插值方法。
emd (X,“插值”,“pchip”,“显示”,1)
当前的国际货币基金组织(IMF) | #筛Iter | |停止准则的相对托尔触及0.026352 1 | 2 | | SiftMaxRelativeTolerance 2 | 2 | 0.0039573 | SiftMaxRelativeTolerance 3 | 1 | 0.024838 | SiftMaxRelativeTolerance 4 | 2 | 0.05929 | SiftMaxRelativeTolerance 5 | 2 | 0.11317 | SiftMaxRelativeTolerance 6 | 2 | 0.12599 | SiftMaxRelativeTolerance 7 | 2 | 0.13802 | SiftMaxRelativeTolerance 8 | 3 | 0.15937 | SiftMaxRelativeTolerance 9 | 2 | 0.15923 | SiftMaxRelativeTolerance分解停止因为的数量剩余信号中的extrema小于MaxNumExtrema值。
emd
生成与原始信号、前3个IMFs和残差的交互图。命令窗口中生成的表格显示了每个生成的IMF的筛分迭代次数、相对公差和筛分停止准则。控件可以隐藏表格“显示”
或将其指定为0
.
右键单击图中的空白区域以打开国际货币基金组织的选择器窗口。使用国际货币基金组织的选择器来选择性地查看生成的IMFs、原始信号和残差。
在列表中选择需要显示的imf。选择是否在图上显示原始信号和残差。
所选的imf现在显示在图上。
使用图来可视化从原始信号分解出的各个分量以及残差。中所选择的IMFs,其残差不会因IMFs的总数而改变国际货币基金组织的选择器窗口。
输入参数
x
- - - - - -时域信号
向量|时间表
时域信号,指定为实值向量,或具有单列的单变量时间表。如果x
是一个时间表,x
必须包含递增的有限行次数。
名称-值参数
指定可选参数对为Name1 = Value1,…,以=家
,在那里的名字
参数名称和价值
对应的值。名称-值参数必须出现在其他参数之后,但对的顺序无关紧要。
在R2021a之前,使用逗号分隔每个名称和值,并将其括起来的名字
在报价。
例子:“MaxNumIMF”,5
SiftRelativeTolerance
- - - - - -柯西型收敛准则
0.2
(默认)|积极的标量
柯西式收敛准则,指定为逗号分隔的对,由“SiftRelativeTolerance”
一个正标量。SiftRelativeTolerance
筛分停止标准之一,即当电流相对公差小于时筛分停止SiftRelativeTolerance
.有关更多信息,请参见筛分相对公差.
SiftMaxIterations
- - - - - -筛选迭代的最大次数
One hundred.
(默认)|正标量整数
筛选迭代的最大次数,指定为由逗号分隔的对组成“SiftMaxIterations”
一个正标量整数。SiftMaxIterations
筛选停止标准之一,即当当前迭代次数大于时,筛选停止SiftMaxIterations
.
SiftMaxIterations
只能使用正整数指定。
MaxNumIMF
- - - - - -提取的最大imf数
10
(默认)|正标量整数
提取的imf的最大数目,指定为逗号分隔的对,由“MaxNumIMF”
一个正标量整数。MaxNumIMF
为分解停止条件之一,即当生成的imf数等于MaxNumIMF
.
MaxNumIMF
只能使用正整数指定。
MaxNumExtrema
- - - - - -剩余信号中的最大极值数
1
(默认)|正标量整数
剩余信号中极值的最大数目,指定为由逗号分隔的对组成“MaxNumExtrema”
一个正标量整数。MaxNumExtrema
是否有一个分解停止的条件,即当极值个数小于时,分解停止MaxNumExtrema
.
MaxNumExtrema
只能使用正整数指定。
MaxEnergyRatio
- - - - - -信号与剩余能量之比
20.
(默认)|标量
信号与剩余能量的比值,以逗号分隔的对组成“MaxEnergyRatio”
一个标量。MaxEnergyRatio
是信号在筛选开始时的能量与平均包络能量的比值。MaxEnergyRatio
分解停止准则之一,即当电流能量比大于时,分解停止MaxEnergyRatio
.有关更多信息,请参见能量比例.
插值
- - - - - -包络结构的插值方法
样条的
(默认)|“pchip”
包络线构造的插值方法,指定为由逗号分隔的对组成“插值”
,要么样条的
或“pchip”
.
指定插值
为:
样条的
,如果x
是平滑信号“pchip”
,如果x
是非光滑信号吗
样条的
插值方法采用三次样条,而“pchip”
使用分段三次埃尔米特插值多项式。
显示
- - - - - -切换命令窗口中的信息显示
0(默认)|1
在命令窗口中显示的切换信息,指定为由逗号分隔的对组成“显示”
或者0或者1。命令窗口中生成的表格显示了每个生成的IMF的筛分迭代次数、相对公差和筛分停止准则。指定显示
1表示显示表,0表示隐藏表。
输出参数
国际货币基金组织
-本征模态函数
矩阵|时间表
内模态函数(IMF),以矩阵或时间表的形式返回。每个IMF是一个振幅和频率调制信号,具有正的和缓慢变化的包络。要对信号进行频谱分析,可以对其imf应用Hilbert-Huang变换。看到遗传性出血性毛细血管扩张症
而且本征模态函数.
国际货币基金组织
返回为:
一个每一列都为的矩阵
国际货币基金组织
,当x
是向量时间表,何时
x
单列数据时间表吗
剩余
—信号残差
列向量|单数据列时间表
信息
—诊断附加信息
结构
用于诊断的附加信息,作为具有以下字段的结构返回:
NumIMF
—提取的imf个数NumIMF
向量是从1到的吗N,在那里N为imf的个数。如果没有提取imf,NumIMF
是空的。NumExtrema
-每个IMF的极值数NumExtrema
是长度等于imf数的向量。的k的第Th元素NumExtrema
极值的个数是多少k国际货币基金组织(IMF)。如果没有提取imf,NumExtrema
是空的。NumZerocrossing
-每个国际货币基金组织的零交叉次数每个国际货币基金组织的零交叉次数。
NumZerocrossing
是长度等于imf数的向量。的k的第Th元素NumZerocrossing
的零交叉数是多少k国际货币基金组织(IMF)。如果没有提取imf,NumZerocrossing
是空的。NumSifting
-用于提取每个IMF的筛选迭代次数NumSifting
是长度等于imf数的向量。的k的第Th元素NumSifting
的提取中是否使用了筛选迭代的次数k国际货币基金组织(IMF)。如果没有提取imf,NumSifting
是空的。MeanEnvelopeEnergy
-为每个IMF获得的上下包络线的平均值的能量如果
问题
上面的信封和勒
是较低的信封,MeanEnvelopeEnergy
是意思是(((LE + UL) / 2) ^ 2)。
.MeanEnvelopeEnergy
是长度等于imf数的向量。的k的第Th元素MeanEnvelopeEnergy
的平均包络能是k国际货币基金组织(IMF)。如果没有提取imf,MeanEnvelopeEnergy
是空的。RelativeTolerance
-每个IMF残差的最终相对公差相对公差定义为前一筛分步骤的残差与当前筛分步骤的残差之差的平方2范数与前一筛分步骤的残差的平方2范数之比我筛分步骤。筛分过程停止时
RelativeTolerance
小于SiftRelativeTolerance
.有关其他信息,请参见筛分相对公差.RelativeTolerance
是长度等于imf数的向量。的k的第Th元素RelativeTolerance
是否得到了最终的相对公差k国际货币基金组织(IMF)。如果没有提取imf,RelativeTolerance
是空的。
更多关于
经验模态分解
经验模态分解(EMD)算法对信号进行分解x(t)转化为本征模态函数(IMFs)和迭代过程中的残差。算法的核心部分包括筛选一个函数x(t)得到一个新函数Y(t):
的局部极小值和极大值x(t).
然后利用局部极值构造上下包络年代−(t)而且年代+(t),分别为x(t).根据信封的均值,米(t).
减去均值x(t)要得到残差:Y(t) =x(t)−米(t).
分解概述如下:
首先,让我们r0(t) =x(t),在那里x(t)是初始信号,让我= 0.
筛前检查r我(t):
求的局部极值的总个数(TN)r我(t).
的能量比(ER)r我(t)(见能量比例).
If (ER >
MaxEnergyRatio
)或(TN <MaxNumExtrema
)或(imf数目> .MaxNumIMF
)然后停止分解。让r我,上一页(t) =r我(t).
筛选r我,上一页(t)获得r我,坏蛋(t).
检查r我,坏蛋(t)
的相对公差(RT)r我,坏蛋(t)(见筛分相对公差).
获取当前的迭代次数(IN)。
如果(RT <
SiftRelativeTolerance
)或(IN > .SiftMaxIterations
),然后停止筛选。国际货币基金组织已经成立:国际货币基金组织我(t) =r我,坏蛋(t).否则,让r我,上一页(t) =r我,坏蛋(t)执行步骤5。让r我+1(t) =r我(t)−r我,坏蛋(t).
让我=我+ 1.返回步骤2。
本征模态函数
EMD算法通过迭代筛选过程对信号进行分解x(t)成货币基金国际货币基金组织我(t)还有一个残差rN(t):
最初由Huang等人介绍。[1],国际货币基金组织被定义为具有两个特点的职能:
局部极值的数量——局部极小值和局部极大值的总数——和零交叉的数量最多相差一个。
由局部极值构造的上下包络的均值为零。
然而,如上所述[4]但是,通过筛选直到获得严格的IMF,可能会得到没有物理意义的IMF。具体来说,筛选到零点交叉数和局部极值最多相差一个,就可以得到像imf一样的纯音函数,换句话说,函数非常类似于傅里叶基上投影得到的函数。这种情况正是EMD努力避免的,他们更喜欢AM-FM调制组件的物理意义。
参考[4]提出获得物理上有意义结果的选项。的emd
函数通过使用放宽了原有的IMF定义筛分相对公差, cauchy型停止准则。的emd
函数迭代以提取自然的AM-FM模式。生成的imf可能无法满足局部极值-零点交叉条件。看到正弦信号的本征模函数的过零和极值.
筛分相对公差
筛分相对公差中是否提出了柯西型停止准则[4].电流相对公差小于时停止筛分SiftRelativeTolerance
.电流相对公差定义为
由于柯西准则没有直接计算过零和局部极值的数量,因此分解返回的IMFs可能不满足本征模态函数的严格定义。在这些情况下,您可以尝试减少的值SiftRelativeTolerance
从默认值开始。看到[4]对于停止标准的详细讨论。文中还讨论了在经验模态分解中坚持严格定义imf的利弊。
能量比例
能量比是信号在筛选开始时的能量与平均包络能量的比值[2].当电流能量比大于时,分解停止MaxEnergyRatio
.为我在国际货币基金组织中,能量比定义为
参考文献
[1]黄诺登·E,沈政,龙瑞文,吴曼丽·C.,施兴辉,郑全安,颜乃春,董志超,刘英华。非线性和非平稳时间序列分析的经验模态分解和希尔伯特谱伦敦皇家学会学报。系列A:数学、物理和工程科学454年,没有。1971(1998年3月8日):903-95。https://doi.org/10.1098/rspa.1998.0193。
[2]拉托,r.t.,医学博士奥蒂盖拉和A.G.巴蒂斯塔。“论HHT,它的问题,以及一些解决方案。”金宝搏官方网站机械系统与信号处理“,22日,没有。6(2008年8月):1374-94。https://doi.org/10.1016/j.ymssp.2007.11.028。
[3]瑞林,加布里埃尔,帕特里克弗兰德林和保罗Gonçalves。经验模态分解及其算法IEEE-EURASIP非线性信号和图像处理研讨会2003.NSIP-03。格拉多,意大利,8-11。
[4]王刚,陈先尧,乔方利,吴兆华,黄诺登。"论本征模态函数"自适应数据分析研究进展02年,没有。03(2010年7月):277-93。https://doi.org/10.1142/S1793536910000549。
扩展功能
C/ c++代码生成
使用MATLAB®Coder™生成C和c++代码。
使用注意事项和限制:
代码生成不支持时间表。金宝app
方法指定的插值方法
“插值”
名称-值对必须是编译时常量。
版本历史
在R2018a中引入
MATLAB命令
你点击了一个对应于这个MATLAB命令的链接:
在MATLAB命令窗口中输入该命令来运行该命令。Web浏览器不支持MATLAB命令。金宝app
您也可以从以下列表中选择一个网站:
如何获得最佳的网站性能
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。