MATLAB从2018a开始给出了内置函数来实现经验模式分解(EMD)与希尔伯特-黄变换(HHT),函数名分别是emd与hht,用户可以直接调用两个函数来实现经验模式分解以及与希尔伯特-黄变换。
一、MATLAB函数库内的emd函数
语法格式:
1. [imf,residual] = emd(X)
2. [imf,residual,info] = emd(X)
3. [___] = emd(___,Name,Value)
4. emd(___)
格式1. 返回输入序列x的本征模态函数(固有模态函数)imf和残差(剩余信号)residual。当x为一列向量时返回的Imf为一矩阵,imf矩阵中每一列存储着不同层分解的imf函数;返回的residual为一列向量。
格式2. info用于返回附加信息,这些附加信息从IMFs和残差中获取。
格式3. 使用一个或多个由Name,Value组合的参数来估计emd。指定可选的以逗号分隔的名称、值参数对,Name是参数名必须在引号内,Value是对应的值,可以按任何顺序指定多个名称和值参数如Name1,Value1,...,NameN,ValueN.
例如: 'MaxNumIMF',5 。
'SiftRelativeTolerance' — 柯西收敛准则
对应的Value可指定为一个正数,Value缺省时为0.2。SiftRelativeTolerance是筛选停止标准之一,当相对公差小于SiftRelativeTolerance指定的Value值时,筛选停止。
'SiftMaxIterations' — 筛选迭代的最大次数
对应的Value可指定为一个正整数,Val