时序分解 | Matlab实现WOA-VMD鲸鱼算法WOA优化VMD变分模态分解

目录

时序分解 | Matlab实现WOA-VMD鲸鱼算法WOA优化VMD变分模态分解效果一览基本介绍程序设计参考资料

效果一览

基本介绍

Matlab实现WOA-VMD鲸鱼算法WOA优化VMD变分模态分解(完整源码和数据) 1.利用鲸鱼优化算法优化vmd中的参数k、a,分解效果好,包含边际谱、频率图、收敛曲线等图,满足您的需求,使用者较少,适合作为创新点。 2.包含VMD超参数优化迭代过程图,凸显每次迭代过程的变化。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。 5.数据为excel数据,方便替换,运行主程序main即可,可直接运行matlab程序。

程序设计

完整源码和数据获取方式:Matlab实现WOA-VMD鲸鱼算法WOA优化VMD变分模态分解。

% Input and Parameters:

% ---------------------

% signal - 待分解的时域信号

% alpha - 惩罚因子

% tau - time-step of the dual ascent ( pick 0 for noise-slack )

% K - the number of modes to be recovered

% DC - true if the first mode is put and kept at DC (0-freq)

% init - 0 = all omegas start at 0

% 1 = all omegas start uniformly distributed

% 2 = all omegas initialized randomly

% tol - tolerance of convergence criterion; typically around 1e-6

%

% Output:

% -------

% u - 分解变量的集合

% u_hat - 变量的频谱

% omega - 变量中心频率

%% 麻雀算法参数设置

pop = 5;%种群数量

Max_iteration = 20;%最大迭代次数

lb =[800,4]; %下边界

ub = [2000,10];%上边界

dim = 2; %维度为2,即alpha,K

fobj = @(x) fun(x,f,tau, DC, init, tol);

[~,Target_pos,SSA_cg_curve,process] = SSA(pop,Max_iteration,lb,ub,dim,fobj);%优化函数 求K Alpha 熵值

%% 画适应度曲线与2个参数的变化曲线

huatu(process,'VMD')

Target_pos = round(Target_pos);

SSA_cg_curve=abs(SSA_cg_curve);

参考资料

[1] https://blog.csdn.net/kjm13182345320/article/details/129215161 [2] https://blog.csdn.net/kjm13182345320/article/details/128105718

参考文章

评论可见,请评论后查看内容,谢谢!!!评论后请刷新页面。