【优化算法应用教学】VMD的参数优化(附matlab代码)

引言

引言

大家多多少少听过,看过或使用过一种信号处理方法:变分模态分解方法(Variational mode decomposition,VMD)。该方法于2014年发表在信号处理顶级SCI期刊IEEE transactions on signal processing,至今已有4840多次引用,深受各领域研究者的欢迎。

图片

VMD在一定程度上解决了EMD的模态混叠问题,然而,VMD的性能受到其参数的影响,尤其是惩罚因子alpha和模态分解数k。手动调参是繁琐的、不经济的。研究者们通过设置合理的优化目标函数,利用群智能优化算法对其参数进行自适应的选择。

本期介绍一种VMD参数优化的方式,即利用包络熵最小

实操

对于一个优化问题,需要先明确这个问题的四项基本元素:变量个数,变量下界,变量上界,目标函数。VMD参数优化问题也不例外。主要有以下步骤:

1.确定变量个数。我们目标是为VMD选择合适的alpha和k,因此,变量个数,即dim=2;

2.确定这两个变量各自的优化范围。为了快速教学,这里我们随机设置了alpha和k的范围,即1000≤alpha≤3000;3≤k≤10。那么就获得了变量的上下界,依次写入lb和ub中:

lb=[1000, 3];% 变量下限(请自行按文献修改)ub=[3000, 10];% 变量上限(请自行按文献修改)

3.定义目标函数。这里以包络熵最小作为目标值。计算每个imf的包络熵,熵值最小是对应的alpha和k,即为最优的VMD参数组合。我们已将该部分封装成了function,方便调用。

%% 计算最小包络熵for i = 1:K    amp= abs(hilbert(imf(i,:))); % 对分解得到的IMF分量进行希尔伯特变换,得到幅值    amp_n = amp/sum(amp);     fit=0;    for ii = 1:size(amp_n,2)        env_e = -amp_n(1,ii)*log(amp_n(1,ii));  % 计算包络熵        fit=fit+env_e;      end    feature(i,:) = fit; % 包络熵特征endfitness = min(feature); % 适应度函数值,目的就是使该值最小

我们以一段长度为1024的信号数据作为待分解数据,利用灰狼优化算法GWO优化VMD参数。为了快速验证算法,这里GWO的迭代次数为10次,种群个数为20。

图片

优化后,VMD的分解结果:

图片

GWO算法的迭代曲线:

图片

Matlab代码下载

微信搜索并关注-优化算法侠,或扫描下方二维码关注,以算法名字搜索历史文章即可下载。

【优化算法应用教学】VMD的参数优化(附matlab代码)

320多种基础的群智能优化算法-matlab

速来下载!超320种基础优化算法!-Matlab版(截至2023.12.02)icon-default.png?t=N7T8https://mp.weixin.qq.com/s?__biz=MzkxMDQ5MDk4Ng==&mid=2247485602&idx=1&sn=806af7a9a7169b058e179ca2a089c287&chksm=c12be4a7f65c6db15c5969dd0223d2e42759a8e24a263fb71abac3b5015c0cabe2c5bdbbf285&token=649838004&lang=zh_CN#rd

175种群智能优化算法python库

超175+种群智能优化算法Python库!!!icon-default.png?t=N7T8http://mp.weixin.qq.com/s?__biz=MzkxMDQ5MDk4Ng==&mid=2247484577&idx=1&sn=ed0b2e27b73e738c094c7534a63a2cda&chksm=c12be8a4f65c61b2f3d90e2b4d1f480f8d0bb038b6598828ebf2434006e07925f8102af9795f&scene=21#wechat_redirect

求解cec测试函数-matlab

最新最火!cec2022测试函数来了(附Matlab代码)icon-default.png?t=N7T8https://mp.weixin.qq.com/s?__biz=MzkxMDQ5MDk4Ng==&mid=2247484693&idx=1&sn=ce311acb26bee2894db6fe90776288bd&chksm=c12be910f65c6006af080b1e97ad5514eee06b64d2caeeac2008b8c06fdc3ba379455e9ca709&scene=21#wechat_redirect

解决12工程设计优化问题-matlab

略微出手,工程设计问题(12)(附Matlab代码)icon-default.png?t=N7T8https://mp.weixin.qq.com/s?__biz=MzkxMDQ5MDk4Ng==&mid=2247485052&idx=1&sn=80e5573c1c005ee5640e44935044ee35&chksm=c12bea79f65c636fc73758b4f4893502bd89cbd1c5d15d7db15e8b5c94eeae40450439d44944&token=681266555&lang=zh_CN#rd

求解11种cec测试函数-python

一网打尽!170+种优化算法求解11种cec测试函数(附Python代码)icon-default.png?t=N7T8https://mp.weixin.qq.com/s?__biz=MzkxMDQ5MDk4Ng==&mid=2247484745&idx=1&sn=1957f7c9b44c47f171c1cd46054d1679&chksm=c12be94cf65c605a5e0f8404e6c90964ce0743b7c25ff5f98a03dedc77e5eec5b48bf0c0e782&token=681266555&lang=zh_CN#rd

解决12种工程设计优化问题-python

大放送!170+种优化算法解决12种工程设计问题(附python代码)icon-default.png?t=N7T8https://mp.weixin.qq.com/s?__biz=MzkxMDQ5MDk4Ng==&mid=2247485068&idx=1&sn=c913be0f2445f8b4d3e944569f5e599f&chksm=c12bea89f65c639f1df0f8e6cacffc1fdffa96683d10743094435ee6b0b55573a5bc8eec7eb3&token=681266555&lang=zh_CN#rd

  • 17
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值