时序分解 | 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变分模态分解。
clike
% 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