浅谈VMD(变分模态分解)

浅谈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

你可能感兴趣的:(信号处理,算法)