时序分解 | Matlab实现SCSSA-VMD融合正余弦和柯西变异的麻雀搜索算法优化变分模态分解时间序列信号分解
目录
效果一览
基本介绍
Matlab实现SCSSA-VMD融合正余弦和柯西变异的麻雀搜索算法优化变分模态分解时间序列信号分解,可直接运行 分解效果好 适合作为创新点(Matlab完整源码和数据),适应度函数为样本熵
1.优化vmd中的参数k、a,分解效果好,包含边际谱、频率图、收敛曲线等图,满足您的需求,使用者较少,适合作为创新点。运行环境2020及以上。
2.包含VMD超参数优化迭代过程图,凸显每次迭代过程的变化。
3.SCSSA是一种群智能优化算法,具有收敛速度快、寻优能力强等优点。
4.数据为excel数据,方便替换,运行主程序main即可,可直接运行matlab程序。
最优K值为:10
最优alpha值为:1760
最优适应度值为:0.0096711
程序设计
- 完整源码和数据获取方式私信博主回复:Matlab实现SCSSA-VMD融合正余弦和柯西变异的麻雀搜索算法优化变分模态分解时间序列信号分解。
clike
%% 融合正余弦和柯西变异的麻雀搜索算法SCSSA结合VMD优化其k和惩罚系数两个参数,样本熵分解
clc
close all
ff = xlsread('数据.xlsx','B:B');
ff=ff';
data=ff;
len=length(data);
f=data(1:len);
%% 基础参数设定
%% 优化VMD分解
[u1, u_hat1, omega1,SCSSA_cg_curve,Target_pos] =SCSSAVMD(f, tau, DC, init, tol);%基于SCSSA优化参数的VMD算法,SCSSA_cg_curve熵值
figure
plot(SCSSA_cg_curve,'r-','linewidth',1);
title('SCSSA-VMD收敛曲线')
xlabel('迭代次数')
ylabel('适应度值')
legend('SCSSA-VMD')
set(gcf,'color','w')
%% 算法优化VMD分解
figure
subplot(size(u1,1)+1,1,1);
plot(f,'k');grid on;
ylabel('原始数据');
for i = 1:size(u1,1)
subplot(size(u1,1)+1,1,i+1);
plot(u1(i,:),'k');
ylabel(['IMF',num2str(i)]);
end
sgtitle('SCSSAVMD分解结果','FontSize', 10)
set(gcf,'color','w')
csvwrite('SCSSA-VMD分解结果.csv',u1)
参考资料
[1] https://blog.csdn.net/kjm13182345320/article/details/129215161
[2] https://blog.csdn.net/kjm13182345320/article/details/128105718