VMD确定分解个数K

1. VMD基础概念

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

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

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

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

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

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

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

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

4.代码

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

参考:

[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.

VMD确定分解个数K相关推荐

  1. VMD确定分解个数K(matlab)

    VMD确定分解个数K 1. VMD基础概念 变模态分解(variational mode decomposition,VMD) 将一个时间序列f分解成k个具有固定中心频率ω_k的模态分量u_k (t) ...

  2. KMeans算法,采用肘部法则获取类簇中心个数K的值。

    K-Means是一种非常常见的聚类算法,在处理聚类任务中经常使用,K-Means算法是一种原型聚类算法. 该算法重要的一步就是确定K的值的划分,通常我们采用肘部法则选取K值,再依据轮廓系数,及各个数据 ...

  3. 链表翻转。给出一个链表和一个数k,比如链表1→2→3→4→5→6,k=2,则翻转后2→1→4→3→6→5,若k=3,翻转后3→2→1→6→5→4,若k=4,翻转后4→3→2→1→5→6,用程序实现

    题目中最重要的就是学会一种方法,就是把链表中长度为k的一段从链表中摘除,翻转之后在将其衔接回链表.这是主要的思绪,以下按照此思路给出程序: #include<iostream> using ...

  4. 基于优化VMD的滚动轴承故障诊断研究

    摘要: 针对列车轮对振动信号易受轮轨噪声影响.故障特征提取困难等问题,提出一种基于优化变分模态分解(Variational mode decomposition,VMD)和多尺度样本熵-能量(Mult ...

  5. Python论文复现:VMD之自适应选择分解模态数K值

    Python论文复现:<基于稀疏指标的优化变分模态分解方法>   信号分解方法中,虽然变分模态分解(Variational Mode Decomposition, VMD)有严格的数学推导 ...

  6. VMD分解,matlab代码,包络线,包络谱,中心频率,峭度值,能量熵,近似熵,包络熵,频谱图,希尔伯特变换,包含所有程序MATLAB代码,-西储大学数据集为例

    目录 1.选取数据 2.VMD函数-matlab代码 3.采用matlab脚本导入数据并做VMD分解 4. VMD分解图 5.计算中心频率 6.画包络线 7. 画包络谱 8. 计算峭度值 9.计算能量 ...

  7. linux环境vmd下载,VMD Linux版下载|VMD(变分模态分解程序) V1.9.3 Linux版 下载_当下软件园_软件下载...

    VMD Linux版是款适用于Linux操作系统的分子运动绘图分析模拟软件.它可以真实的模拟分析的运动场景,提供可视化的图形界面,帮助用户更好的理解分析变化,提高研究效率,操作简单,方便快捷,非常好用 ...

  8. 鲸鱼算法优化变分模态分解(VMD)包络熵和参数的特征提取及MATLAB代码实现

    目录 1 简介 2 变分模态分解VMD原理 3 鲸鱼优化算法优化VMD原理 3.1. 鲸鱼优化算法优化VMD原理及流程 3.2. 特征提取流程 4 优化效果 4.1. VMD各分量信号时域图 4.2. ...

  9. 类EMD的“信号分解方法”及MATLAB实现(第四篇)——VMD

    重头戏来了. 在以往的应用经验里,VMD方法在众多模态分解方法中可以说是非常好的.从催更力度上看,这个方法也是格外受关注.笔者决定加快进度快一些写完这个方法,十月份了有些同学要开始做毕设,希望这篇文能 ...

最新文章

  1. 一起来了解React的四种优秀甘特图方案(下篇)
  2. 【Git项目】想成为大咖,先从八卦大咖开始,这个GitHub项目你值得拥有
  3. 转账示例(二):service层面实现(本例采用QueryRunner来执行sql语句,数据源为C3P0)...
  4. 产品经理日常数据分析工作
  5. Kotlin学习笔记18 反射Part2
  6. 【java】Thread.Sleep 与 Thread.onSpinWait
  7. JavaScript学习(五十六)—寄生式继承(临时构造器的使用)
  8. Vue表单输入绑定(文本框和复选框)
  9. vsftpd搭建及配置参数
  10. tensorflow Image 解码函数
  11. 3.1 测试能否对标准输入设置偏移量
  12. [照片]51cto众生相
  13. 关于高等数学、线性代数、数理统计和概率论
  14. Win10系统,ColorPix取色位置偏移如何解决?
  15. jenkins pipeline分目录检出多代码库方法
  16. 电影《无双》中的管理知识
  17. 有道云笔记修改主题教程
  18. 华为手机不小心点了始终_华为手机有一个设置,用过一次就再也离不开了,你打开了吗?...
  19. A Game of Thrones(11)
  20. 我沪漂 16 年,再也不打工了!

热门文章

  1. 浅谈实现数据库乐观锁和悲观锁
  2. 工薪阶层发财的六大“必杀技”
  3. 智慧分拣高精度定位管理系统
  4. 安卓app的文件读写方法
  5. HDMI信号放大延长器-MS9331
  6. ksbsrv: No startup acknowledgement from forked process after 30 seconds
  7. MH2103ACCT6国产软硬件兼容替代STM32F103CBT6
  8. 2020车工(中级)模拟考试系统及车工(中级)考试软件
  9. 清华博士退学申请全文:“清华梦的粉碎”
  10. PKG文件内容和定义