浅谈VMD(变分模态分解)

统一解释一下,我也是才学习这个,很多地方不懂。至于译文,也是自己根据原论文进行的一些翻译,很多地方不是很准确,研一的可以自己试着去读英文原文,而且大家学校应该都能下载这篇论文。研二的如果急着要用可以参考借鉴一下。
新的自适应信号处理方法,对非平稳、非线性信号具有良好处理效果。

文章说明

因为最近论文需要用到VMD,所以看了几篇关于VMD的论文,VMD在2014年提出,所以其论文比较新,而且知网上的论文都是基于VMD的应用,里面的原理都是从VMD原文摘抄,不太好理解,我也看了VMD这篇论文,我也进行了一定的翻译,译文在后面,但翻译总有差距,希望英语好的专业好的能提出建议,谢谢。

阅读说明

我知道好多人看着VMD看博客最想知道的就是这东西的应用和大概步骤原理,而具体原理算法不太感兴趣,而且也不太容易看懂。本文既然是浅谈,就从VMD的步骤和应用。

VMD工作原理步骤

步骤
VMD是通过迭代搜寻变分模型(具体怎么搜寻,请亲们自己看,我主要讲他的大概)最优解, 来确定我们所知的模态uk(t)及其对应的中心频率ωk和带宽。
每个模态都是具有中心频率的有限带宽(就是在频域中有在一定的宽度)。所有模态之和为源信号。

而对求最优解采用二次惩罚和拉格朗日乘数将上诉约束问题转换为非约束问题,并用交替方向乘子法求解这个非约束问题, 通过迭代更新最终得到信号分解的所有模态。分解的所有模态中有包含主要信号的模态和包含噪声的模态。将包含主要信号的模态进行重构,从而达到去噪的效果。

代码步骤思路(uk和ωk更新算法)

1、初始化uk、ωk、λ和n=0,k=0
2、n=n+1(迭代次数)
3、k=k+1,根据VMD算法公式更新uk、ωk
4、又根据相关的算法更新拉格朗日乘数λ
5、知直到满足一定条件,停止迭代,不然转到2步骤
以上只是求每一个模态的单步骤我的理解总步骤:
1、初始化uk、ωk、λ和n=0,
2、n=n+1(迭代次数)
3、根据VMD算法公式更新uk、ωk
4、又根据相关的算法更新拉格朗日乘数λ
5、知直到满足一定条件根据(相似系数来判断),停止迭代,不然转到2步骤
6、k=k+1,将源信号减去分解出来的模态,并作为下次一循环的源信号,转到步骤1

如何判断相关模态

判断
用信号与模态的相似程度来判断信号与噪声 。推荐一篇论文,他对VMD进行了一些优化。例如:在VMD中一般采用局部重构,即将与原信号相似的模态就认为是信号,与原信号相差大的模态认为噪声,然而噪声模态中其实还含有一些信号,用一定方法提取信号,可增加信噪比和可信度。同理(我自己的看法),采用定的滤波器处理信号模态来去除其中的噪声会不会提高信噪比。这是一个方向。

推荐论文:基于VMD的激光雷达回波信号去噪方法研究

应用

其实看了上面的原理,其实大家都该有一个基本的想法,VMD将信号分解与重构,用的最多就是来去噪。
我准备用来进行心率提取
其他应用:谐波提取、用的最多的滚动轴承检测、故障检测等等

VMD原文

下面是原文链接,可以自行下载,也可以联系我,还有我自己的译文,翻译一班不是太准确,但能帮助你更好的理解。

缺点及解决方法

1、最大的局限性是边界效应和突发的信号。这与基于L2平滑阶段的使用密切相关,该阶段过度惩罚了域边界和内部的跳跃。

2、长期模态的光谱带会随着时间的推移而急剧变化,并且会在全局范围内重叠。在这里,直接的解决方案是将信号分解成较短的块,在这些块上信号足够稳定。

3、要求预先定义模态数K。这是我们与许多成功的聚类和分段算法(例如k-means)共享的缺点。

补充

在写论文,通常拿VMD与EMD(经验模态分解)、EWT(经验小波变换)进行性能对比。
对于预定义模态数K的解决方法,推荐一篇论文:基于反馈变分模式分解的单通道盲源分离算法,他采用反馈模式对K自动识别定义,解除了预定义的先验模式。

EMD以及VMD的matlab代码(求大家给个赞别)

VMD链接: https://pan.baidu.com/s/1tlPoq07HTsdhr1zEN7bzdw
提取码: wac3
EMD链接:https://pan.baidu.com/s/1sAvwEV8bOCannCjVBJNcpg
提取码:xww7

浅谈VMD(变分模态分解)相关推荐

  1. 变分模态分解 python_浅谈VMD(变分模态分解)

    学号:19011210554   姓名:袁博 [嵌牛导读]:好多人看着VMD看博客最想知道的就是这东西的应用和大概步骤原理,而具体原理算法不太感兴趣,而且也不太容易看懂.本文既然是浅谈,就讲解一下VM ...

  2. matlab中使用VMD(变分模态分解)

    最近我们被客户要求撰写关于VMD(变分模态分解)的研究报告,包括一些图形和统计输出. 拨号音信号的变模分解 创建一个以4 kHz采样的信号,类似于拨打数字电话的所有键.将信号另存为MATLAB®时间数 ...

  3. vmd变分模态分解程序matlab论坛_博士兼职辅导员论坛分享会第三期

    新一期经验分享报告会又来了!本次报告满满干货,快来看看都有些什么内容吧? 报告题目 齿轮箱关键零部件复合故障特征提取方法研究 报告摘要: 基于振动信号的复合故障特征提取技术一直以来都是旋转机械故障诊断 ...

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

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

  5. 利用智能算法优化参数的自适应变分模态分解,VMD实现混合储能系统的分频

    关键词:混合储能,VMD,麻雀搜索算法,遗传算法,混合储能容量配置优化,混合储能功率分配,利用智能算法优化参数的自适应变分模态分解,VMD实现混合储能系统的分频,高频分配给超级电容器,低频分配给蓄电池 ...

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

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

  7. 分解得到的时频域特征_【推荐文章】基于变分模态分解和广义Warblet变换的齿轮故障诊断...

    <机械传动>2018年  第42卷   第7期 文章编号:1004-2539(2018)07-0157-05 DOI:10.16578/j.issn.1004.2539.2018.07.0 ...

  8. 基于VMD变分模态分解算法Python程序

    基于VMD变分模态分解算法Python程序 可用于时间序列和其他领域 特色:1.基于Python 2.数据从excel文件中读取,更换简单 全部完整的代码,保证可以运行的代码看这里. http://t ...

  9. 变分模态分解_Android小部件示例中的模态对话框(弹出)

    变分模态分解 在此示例中,我们将看到如何在主屏幕中创建一个可以打开弹出对话框的Android小部件. 如您所知,Android Widgets是小型应用程序,基本上可以做两件事. 按下时启动新的活动, ...

  10. 张量分解浅谈(四 Tucker 分解)

    学完了SVD算法之后,我们继续回到张量几大分解的学习上来,本期学习的主要内容是张量的 Tucker 分解 以及 前面的CP分解还留下一点没有说完,正好一并补齐!后面的公式我将采用颜色标记,红色代表必须 ...

最新文章

  1. opencv图像操作:读取,裁剪,保存,缩放,遍历和读取文件夹图片
  2. php实现stripos,php stripos()函数
  3. 如何让服务器运行js,服务器端JavaScript运行环境Node.js的依赖性管理
  4. python进阶(小白也能看懂)——装饰器浅谈(一)
  5. KFold、StratifiedKFold、GroupKFold的区别
  6. ABP入门系列(11)——编写单元测试
  7. WPF入门教程系列(一) 创建你的第一个WPF项目
  8. unknown error: Chrome failed to start: crashed 解决方法
  9. 控制上网!!!(版本之1.1) 当前时间从网络取得。
  10. 照片尺寸及像素对应表
  11. UE4 虚幻引擎,光照系统。BP_Sky_Sphere 白天黑夜效果
  12. 使用Java生成图形验证码(后端)
  13. Java实现企业微信回调配置
  14. Spherical Harmonics Lighting
  15. 学计算机西电和中南,放弃中南大学等985高校,去南航、西电的强势专业到底值不值得呢?...
  16. 【移动应用开发】2022/2023 年 8 大移动应用程序开发趋势
  17. 微信小程序截图分享 图片不清晰
  18. 阿拉伯数字对应人民币大写表
  19. 夜来风雨声,WebSocket 知多少!
  20. 51单片机用STC—ISP烧录程序是一直显示“正在检测目标单片机···”冷启动板子没有反应

热门文章

  1. linux控制windows关机
  2. python包的init文件_Python模块包中__init__.py文件的作用
  3. button按钮onclick触发不了_用一篇深度好文,详解按钮的设计
  4. OpenCV探索之路(十六):图像矫正技术深入探讨
  5. java水电费收费系统_基于jsp的电费管理系统-JavaEE实现电费管理系统 - java项目源码...
  6. IMP-00058: 遇到 ORACLE 错误 1017 导入时登录失败
  7. WIN32汇编对话框的使用
  8. 基于.net平台的Windows窗体应用程序——(已附源码)学生管理系统
  9. java 判断是否为车牌_java车牌检测识别库
  10. Flash网页游戏开发