VMD确定分解个数K(matlab)

VMD确定分解个数K

1. VMD基础概念

变模态分解(variational mode decomposition,VMD)
将一个时间序列f分解成k个具有固定中心频率ω_k的模态分量u_k (t),并使每个模态量的频率估计带宽之和最小。对各模态分量进行Hilbert变换得到其单边频谱,通过混合一估计中心频率,将各分量的单边频谱调制到基频带,再经过对解调信号梯度的L2正则化进行高斯平滑估计,得到风功率分量的带宽。对应的受约束的变分模型表示为:
在这里插入图片描述

其中,∂t表示求偏导,δ(t)表示狄拉克分布函数。
1.2变分问题的求解
引入拉格朗日乘子 和二次罚函数 ,将上述约束变分问题转化为无约束问题,即
VMD确定分解个数K(matlab)_第1张图片

利用乘数的交替方向法寻找扩展拉格朗日表达式(2)的鞍点,得到各模态的频域更新,则模态分量和中心频率的迭代表达式为:

VMD确定分解个数K(matlab)_第2张图片

其中, 表示分量的维纳滤波; 表示对应模态的中心频率;对 进行傅里叶逆变换,取实部{u_k (t)}得到时域模态分量;n表示迭代次数;ω表示频率值。最后通过傅里叶逆变换转换到时域,得到序列分解后的k各窄带IMF分量,完成了信号在频域内的自适应分割。
VMD是将序列从时域转换到频域内进行分解,对于这类非线性数据既能很好的保留原始信息,又能避免变量信息重叠,且分解过程具有较强的鲁棒性。

2.根据中心频率选取分解个数K

VMD分解的效果主要受模态数的选取值的影响,当模态的选取值较小时,由于VMD算法相当于自适应滤波器组,原始信号中一些重要信息将会被过滤,影响后续预测的精度;而当模态的选取值较大时,相邻模态分量的中心频率则会相距较近,导致模态重复或产生额外的噪声。不同模态的主要不同点在于中心频率的不同,所以,通过对不同模态数下中心频率的分布进行观察选取合适的模态数值。
VMD确定分解个数K(matlab)_第3张图片

3.根据相关系数进一步确定K

K=5时的分解结果中的422Hz、851 Hz和1530 Hz的三个中心频率比较接近,大概率会发生通频带重合、模态重合的现象,从而造成风功率信号的过分解。因此,为了进一步确定模态数的选取值K,对分解出的相邻的模态分量的相关性进行分析,求解其皮尔逊相关系数。
VMD确定分解个数K(matlab)_第4张图片

4.代码

https://download.csdn.net/download/hahahahah123456/15468344

5.关于中心频率的计算

VMD确定分解个数K(matlab)_第5张图片
链接
点击链接有更详细的讨论过程。

参考:

[1]陶凯,吴定会.基于VMD-JAYA-LSSVM的短期风电功率预测[J/OL].控制工程:1-7[2021-02-25].https://doi.org/10.14107/j.cnki.kzgc.20190288.
[1]郑小霞,周国旺,任浩翰,符杨.基于变分模态分解和排列熵的滚动轴承故障诊断[J].振动与冲击,2017,36(22):22-28.

你可能感兴趣的:(数据分析,matlab)