emd
经验模态分解
说明
MATLAB从2018a开始给出了内置函数来实现经验模式分解(EMD)与希尔伯特-黄变换(HHT),函数名分别是emd与hht,用户可以直接调用两个函数来实现经验模式分解以及与希尔伯特-黄变换。
语法
[imf,residual] = emd(X)
[imf,residual,info] = emd(X)
[___] = emd(___,Name,Value)
emd(___)
描述
-
[imf,residual] = emd(X)
返回固有模态函数
imf
和residual
对应于经验模式分解的残差信号X
。 当x为一列向量时返回的Imf为一矩阵,imf矩阵中每一列存储着不同层分解的imf函数;返回的residual为一列向量。 用于emd
将复杂信号分解和简化为执行希尔伯特频谱分析所需的有限数量的本征模式函数。 -
[imf,residual,info] = emd(X)
返回
info
用于返回附加信息,这些附加信息从IMFs和残差中获取。 -
[___] = emd(___,Name,Value)
使用一个或多个
Name,Value
对参数指定的其他选项执行经验模式分解。指定可选的以逗号分隔的名称、值参数对,Name是参数名必须在引号内,Value是对应的值,可以按任何顺序指定多个名称和值参数如Name1,Value1,…,NameN,ValueN. -
emd(___)
将原始信号、imf 和残差信号绘制在同一图形中。
输入参数
-
X—时域信号
指定为实值向量或具有单列的单变量时间表。如果X是时间表,X必须包含递增的、有限的行时间。
输出参数
-
imf—本征模函数
矩阵 | 时间表
固有模式函数(IMF),以矩阵或时间表的形式返回。每个IMF都是一个振幅和频率调制信号,具有正的、缓慢变化的包络线。要对信号进行频谱分析,可以对其imf应用Hilbert-Huang变换。
-
**residual— 信号残差 **
列向量 | 单数据列时间表
信号的残差,作为列向量或单个数据列时间表返回。残差表示原始信号X中未被emd分解的部分。
剩余值返回为:
- 当X是向量时,返回一个列向量。
- 当X是单数据列时间表时,返回一个但数据列时间表。
-
info—诊断的其他信息
用于诊断的其他信息,以包含以下字段的结构形式返回:- NumIMF—提取的imf数
NumIMF是从1到N的向量,其中N是imf的数目。如果没有提取imf,NumIMF为空。
- NumExtrema—每个IMF的极值数
NumExtrema是一个长度等于imf数的向量。NumExtrema的第k个元素是在第k个IMF中发现的极值数。如果没有提取imf,则NumExtrema为空。
- NumZerocrossing—每个IMF中的过零点数
NumZerocrossing是一个长度等于imf数的向量。NumZerocrossing的第k个元素是第k个IMF中的过零点数。如果没有提取imf,NumZerocrossing为空。
- NumSifting—用于提取每个IMF的筛选迭代次数
NumSifting是一个长度等于imf数量的向量。NumSifting的第k个元素是提取第k个IMF时使用的筛选迭代次数。如果没有提取imf,NumSifting为空。
- MeanEnvelopeEnergy—每个IMF的上下包络平均值的能量
如果UL是上包络,LE是下包络,则平均包络能量是
mean(((LE+UL)/2).^2)
。MeanEnvelopeEnergy是一个长度等于imf个数的向量。MeanEnvelopeEnergy的第k个元素是第k个IMF的平均包络能量。如果没有提取IMF,则意味着EnvelopeEnergy为空。- RelativeTolerance—每个IMF残差的最终相对公差
相对公差定义为上一个筛选步骤的残差与当前筛选步骤的残差之差的平方。
当RelativeTolerance
小于SiftRelativeTolerance
时,筛分过程停止。
如果没有提取IMF,则意味着EnvelopeEnergy为空。
Name-Value参数
指定名称、值参数的可选逗号分隔对。Name是参数名,Value是相应的值。名称必须出现在引号内。可以按任意顺序指定多个名称和值对参数,如Name1,Value1,…,NameN,ValueN。
-
’SiftRelativeTolerance’ — 柯西收敛准则
0.2(default) |正标量
对应的Value可指定为一个正数,Value缺省时为0.2。SiftRelativeTolerance是筛选停止标准之一,当相对公差小于SiftRelativeTolerance指定的Value值时,筛选停止。
-
’SiftMaxIterations’ — 筛选迭代的最大次数
100(default) |正整数标量
对应的Value可指定为一个正整数,Value缺省时为100。SiftMaxIterations是筛选停止标准之一,当迭代次数大于siftmaxiteration指定的Value值时,筛选停止。
-
’MaxNumIMF’ —提取的最大imf个数
10(default) |正整数标量
对应的Value可指定为一个正整数,Value缺省时为10。MaxNumIMF是筛选停止标准之一,生成的imf数量等于MaxNumIMF时,分解停止。
-
’MaxNumExtrema’ — 残差信号极值的最大个数
1(default) |正整数标量
对应的Value可指定为一个正整数,Value缺省时为1。MaxNumExtrema是筛选停止标准之一,当极值个数小于MaxNumExtrema时,分解停止。
-
’MaxEnergyRatio’ — 信号残差能量比
20(default) |标量
信号与剩余能量比,指定为逗号分隔对,由“MaxEnergyRatio”和标量.MaxEnergyRatiois信号在筛选开始时的能量与平均包络的比值能源.maxergyratiois分解停止标准之一就是,当电流能量比大于最大能量比时,分解停止。
-
‘Interpolation’ — 包络线构造的插值法
‘spline’ (default) | ‘pchip’
可选项有两种:
- ‘spline’:x为光滑信号,此为默认选项
- ‘pchip’:x为非光滑信号
'spline’采用三次样条插值法,'pchip’采用三次Hermite插值法。
-
**‘Display’ — 在命令窗口中切换信息显示 **
0(default) |1
在命令窗口中切换信息显示,指定为由“display”和0或1组成的逗号分隔对。在命令窗口中生成的表指示每个生成的IMF的sift迭代次数、相对公差和sift停止标准,这个信息也包含在info中。指定DisplayAs 1以显示表,或指定0以隐藏表。