变分模态分解(VMD)

这篇具有很好参考价值的文章主要介绍了变分模态分解(VMD)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


前言

在信号处理中,变分模态分解是一种信号分解估计方法。该方法在获取分解分量的过程中通过迭代搜寻变分模型最优解来确定每个分量的频率中心和带宽,从而能够自适应地实现信号的频域剖分及各分量的有效分离。


一、VMD 1是什么?

基本概念

  1. VMD(Variational mode decomposition)是一种自适应、完全非递归的模态变分和信号处理的方法;
  2. 优点:a自确定模态分解个数的优点;b降低复杂度高和非线性强的时间序列非平稳性;
  3. 自适应性:在根据实际情况确定所给序列的模态分解个数,随后的搜索和求解过程中可以自适应地匹配每种模态的最佳中心频率和有限带宽,并且可以实现固有模态分量(IMF)2的有效分离、信号的频域划分;
  4. 目标:得到给定信号的有效分解成分,最终获得变分问题的最优解;
  5. 适用:适用于非平稳性的序列,分解获得包含多个不同频率尺度且相对平稳的子序列;
  6. 核心思想:构建和求解变分问题。

求解步骤

首先,构造变分问题
假设原始信号 S 被分解为 K 个分量 μ ,保证分解序列为具有中心频率的有限带宽的模态分量,同时各模态的估计带宽之和最小,约束条件为所有模态之和与原始信号相等,则相应约束变分表达式为
变分模态分解(VMD)

然后,求解约束变分表达式
引入惩罚参数 α 、Lagrange乘法算子 λ ,将约束变分问题转变为非约束变分问题,得到增广Lagrange表达式为
变分模态分解(VMD)
求解式(2)鞍点

  • 初始化参数 μ1 、ω2 、λ1 和 nn 初值设为0;
  • 设置循环过程,令n = n + 1,μk 、ωk、λt 依据下式更新值;
  • 当分量满足式(6)时,求解完毕。变分模态分解(VMD)
    变分模态分解(VMD)
    变分模态分解(VMD)
    变分模态分解(VMD)

二、python实现

引入vmdpy库

变分模式分解python包

  • https://github.com/vrcarva/vmdpy下载项目,然后从项目文件夹运行“python setup.py install”
  • pip安装vmdpy

vmdpy中示例代码

import numpy as np
import matplotlib.pyplot as plt 
from vmdpy import VMD
#. Time Domain 0 to T  
T=1000fs=1/Tt=np.arange(1,T+1)/T
freqs=2*np.pi*(t-0.5-fs)/(fs)
#. center frequencies of components  
f_1=2
f_2=24
f_3=288
#. modes  
v_1=(np.cos(2*np.pi*f_1*t))
v_2=1/4*(np.cos(2*np.pi*f_2*t))
v_3=1/16*(np.cos(2*np.pi*f_3*t))
f=v_1+v_2+v_3+0.1*np.random.randn(v_1.size)
#. some sample parameters for VMD  
alpha=2000
# moderate bandwidth constraint  
tau=0.
# noise-tolerance (no strict fidelity enforcement)  
K=3
# 3 modes  
DC=0
# no DC part imposed  
init=1
# initialize omegas uniformly  
tol=1e-7
#. Run actual VMD code  
u,u_hat,omega=VMD(f,alpha,tau,K,DC,init,tol)

变分模态分解(VMD)-Python代码

python实例、含实验数据

三、补充

EMD库–pyemd

1.直接在settings中搜索pyemd添加,但速度十分慢
2.下载python模块pyhht,可实现经验模态分解功能,但是pyhht不适合python3版本
3.先下载emd包:emd

EMD与VMD区别

(1)分解 3

  • EMD分解的IMF分量个数不能人为设定,而VMD(Variational Mode Decomposition)则可以;
  • 但VMD也有弊端:分解过多,则信号断断续续,没有多少规律可言。

尝试后继续补充


  1. Dragomiretskiy, K.; Zosso, D. Variational mode decomposition. IEEE Trans. Signal Process. 2014, 62, 531–544. ↩︎

  2. Intrinsic Mode Functions,IMF的各个分量分别代表了原始信号中的各频率分量,并按照从高频到低频的顺序依次排列,参考文献https://blog.csdn.net/fengzhuqiaoqiu/article/details/101157527 ↩︎

  3. 信号处理——EMD、VMD的一点小思考 ↩︎文章来源地址https://www.toymoban.com/news/detail-405663.html

到了这里,关于变分模态分解(VMD)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 变分模态分解(VMD)与其改进算法

            之前参加课题组相关信号处理的课题的学习笔记。         变分模态分解(variational mode decomposition)VMD是2014年提出的一种非递归信号处理方法,通过将时间序列数据分解为一系列具有有限带宽的本征模态函数(IMF),迭代搜寻变分模态的最优解。VMD可以自适应更新各

    2024年02月07日
    浏览(53)
  • 变分模态分解(VMD)原理-附代码

    1 VMD算法原理 VMD的思想认为待分解信号是由不同IMF的子信号组成的。VMD为避免信号分解过程中出现模态混叠,在计算IMF时舍弃了传统信号分解算法所使用的递归求解的思想,VMD采用的是完全非递归的模态分解。与传统信号分解算法相比,VMD拥有非递归求解和自主选择模态个数

    2024年02月02日
    浏览(40)
  • VMD如何确定分解层数(一):最优变分模态分解(OVMD)---VMD分解的基础上确定分解层数和更新步长

    上篇博文已经讲述了VMD的分解机制,关于其中的参数,特别是分解层数如何确定的问题,这篇文章给出一个解决方法:最优变分模态分解(OVMD),利用中心频率法确定分解层数K,利用残差指数指标确定更新步长tau。 关于利用中心频率法确定分解层数的文章,无论国内还是国

    2023年04月08日
    浏览(81)
  • 【VMD-LSTM】变分模态分解-长短时记忆神经网络研究(Python代码实现)

    💥💥💞💞 欢迎来到本博客 ❤️❤️💥💥 🏆博主优势: 🌞🌞🌞 博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️ 座右铭: 行百里者,半于九十。 📋📋📋 本文目录如下: 🎁🎁🎁 目录 💥1 概述 1.1 变分模态分解算法 1.2 LSTM 📚2 运行结果​编辑 🎉3 

    2024年02月09日
    浏览(99)
  • 【VMD-DBO-LSTM】变分模态分解-蜣螂优化算法-长短时记忆神经网络研究(Python代码实现)

    💥💥💞💞 欢迎来到本博客 ❤️❤️💥💥 🏆博主优势: 🌞🌞🌞 博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️ 座右铭: 行百里者,半于九十。 📋📋📋 本文目录如下: 🎁🎁🎁 目录 💥1 概述 1.1 变分模态分解算法 1.2 蜣螂优化算法 1.3 LSTM 📚2 运行

    2024年02月09日
    浏览(54)
  • 【MATLAB】逐次变分模态分解SVMD信号分解算法

    有意向获取代码,请转文末观看代码获取方式~ 逐次变分模态分解(Sequential Variational Mode Decomposition,简称SVMD)是一种用于信号处理和数据分析的方法。它可以将复杂的信号分解为一系列模态函数,每个模态函数代表了信号中的一个特定频率成分。 SVMD的主要目标是提取信号中

    2024年01月16日
    浏览(50)
  • 【MATLAB】 多元变分模态分解MVMD信号分解算法

    有意向获取代码,请转文末观看代码获取方式~ 多元变分模态分解(MVMD)是一种信号分解方法,可以自适应地实现信号的频域剖分及各分量的有效分离。 MVMD算法的具体步骤如下: 假设原始信号S被分解为K个分量μ,保证分解序列为具有中心频率的有限带宽的模态分量,同时各

    2024年01月17日
    浏览(72)
  • 时序分解 | MATLAB实现MVMD多元变分模态分解信号分量可视化

    效果一览 基本介绍 MVMD多元变分模态分解 可直接替换 Matlab语言 1.算法新颖小众,用的人很少,包含分解图,效果如图所示,适合作为创❤️~ 2.直接替换数据即可用 适合新手小白 注释清晰~ 3.附赠测试数据 直接运行main一键出图~ 程序设计 完整源码和数据获取方式:私信

    2024年02月09日
    浏览(39)
  • EI级 | Matlab实现VMD-TCN-BiLSTM变分模态分解结合时间卷积双向长短期记忆神经网络多变量光伏功率时间序列预测

    预测效果 基本介绍 1.【EI级】Matlab实现VMD-TCN-BiLSTM多变量时间序列预测(光伏功率数据); Matlab实现VMD-TCN-BiLSTM变分模态分解结合时间卷积双向长短期记忆神经网络多变量光伏功率时间序列预测; VMD对光伏功率分解,TCN-BiLSTM模型对分量分别建模预测后相加。 2.运行环境为Ma

    2024年02月01日
    浏览(53)
  • VMD-SSA-LSTM基于变分模态分解和麻雀算法优化长短期记忆网络的时间序列预测MATLAB代码(含LSTM、VMD-LSTM、VMD-SSA-LSTM等模型的对比)。

    clc; clear all close all %% VMD-SSA-LSTM预测 tic load vmd_data.mat load lstm.mat disp(\\\'…………………………………………………………………………………………………………………………\\\') disp(\\\'VMD-SSA-LSTM预测\\\') disp(\\\'………………………………………………………………………………………

    2024年02月10日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包