时序分解 | Matlab实现GSWOA-VMD改进鲸鱼优化算法优化变分模态分解时间序列信号分解
时序分解 | Matlab实现GWO-CEEMDAN基于灰狼算法优化CEEMDAN时间序列信号分解
目录
- 时序分解 | Matlab实现GWO-CEEMDAN基于灰狼算法优化CEEMDAN时间序列信号分解
- 效果一览
- 基本介绍
- 程序设计
- 参考资料
效果一览
基本介绍
Matlab实现GSWOA-VMD改进鲸鱼优化算法优化变分模态分解时间序列信号分解直接替换Excel数据即可用,注释清晰,适合新手小白
附赠时间序列测试数据,可直接运行main一键出图
程序设计
- 完整源码和数据获取方式私信博主回复:Matlab实现GSWOA-VMD改进鲸鱼优化算法优化变分模态分解时间序列信号分解。
%% 以最小包络熵、最小样本熵、最小信息熵、最小排列熵为目标函数(任选其一),采 %% 选取数据 da = xlsread('测试数据.xlsx','B:B'); %这里选取测试数据,B代表Excel中的第B列,注意这里替换为自己的数据即可,数据形式为n行*1列,列数必须为1。 plot(da); title('原始信号') set(gcf,'color','w') %% 设置参数 lb = [0.15 50]; % 噪声幅值权重的优化范围设置为[0.15,0.6],噪声添加次数的优化范围为[50,600] ub = [0.6 600]; dim = 2; % 优化变量数目 Max_iter=20; % 最大迭代数目 SearchAgents_no=10; % 种群规模 %% 画适应度函数曲线图,并输出最佳参数 figure plot(Convergence_curve,'linewidth',1); title('迭代曲线图') xlabel('迭代次数'); ylabel('适应度值'); set(gcf,'color','w') %% CEEMDAN分解图 X = da; Nstd = bestX(1); NR = fix(bestX(2)); MaxIter = 10; [anmodes,its]=ceemdan(X,Nstd,NR,MaxIter); plotimf(anmodes,size(anmodes,1),'r',' CEEMDAN分解结果'); %画图 %% 频谱图 fs=1; N=400; u=anmodes; figure('Name','频谱图','Color',[1 1 1]) for i=1:size(u,1) subplot(size(u,1) ,1,i) [cc,y_f]=plot_fft(u(i,:),fs,1); plot(y_f,cc,'b','LineWIdth',1); ylabel(['IMF',num2str(i)]); end
参考资料
[1] https://blog.csdn.net/kjm13182345320/article/details/129215161
[2] https://blog.csdn.net/kjm13182345320/article/details/128105718## 标题
- 完整源码和数据获取方式私信博主回复:Matlab实现GSWOA-VMD改进鲸鱼优化算法优化变分模态分解时间序列信号分解。
文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。