时序分解 | Matlab实现SMA-CEEMDAN利用黏菌优化算法优化CEEMDAN时间序列信号分解

时序分解 | Matlab实现SMA-CEEMDAN利用黏菌优化算法优化CEEMDAN时间序列信号分解

目录

    • [时序分解 | Matlab实现SMA-CEEMDAN利用黏菌优化算法优化CEEMDAN时间序列信号分解](#时序分解 | Matlab实现SMA-CEEMDAN利用黏菌优化算法优化CEEMDAN时间序列信号分解)

效果一览

基本介绍

SMA-CEEMDAN利用黏菌优化算法优化CEEMDAN Matlab语言

1.CEEMDAN方法的分解效果取决于白噪声幅值权重(Nstd)和噪声添加次数(NE),因此,采用智能优化算法对这2个参数进行优化,适应度函数包括包络熵、样本熵、信息熵、排列熵,可随时切换.

2.直接替换Excel数据即可用,注释清晰,适合新手小白[火]

3.附赠时间序列测试数据,可直接运行main一键出图[闪亮]

程序设计

  • 完整源码和数据获取方式私信博主回复:Matlab实现SMA-CEEMDAN利用黏菌优化算法优化CEEMDAN时间序列信号分解
clike 复制代码
[x, y] = size(signal);
if x > y
	C = y;% number of channels
    T = x;% length of the Signal
	signal = signal';
else
	C = x;% number of channels
    T = y;% length of the Signal
end
%---------- Preparations
% Sampling Frequency
fs = 1/T;

% Mirroring
f(:,1:T/2) = signal(:,T/2:-1:1);
f(:,T/2+1:3*T/2) = signal;
f(:,3*T/2+1:2*T) = signal(:,T:-1:T/2+1);
% Time Domain 0 to T (of mirrored signal)
T = size(f,2);
t = (1:T)/T;
% frequencies
freqs = t-0.5-1/T;
% Construct and center f_hat
f_hat = fftshift(fft(f,[],2),2);
f_hat_plus = f_hat;
f_hat_plus(:,1:T/2) = 0;

%------------ Initialization
% Maximum number of iterations 
N = 500;
% For future generalizations: individual alpha for each mode
Alpha = alpha*ones(1,K);
% matrix keeping track of every iterant 
u_hat_plus_00 = zeros(length(freqs), C, K);
u_hat_plus = zeros(length(freqs), C, K);

参考资料

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

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

相关推荐
机器学习之心3 个月前
时序分解 | Matlab实现GSWOA-VMD改进鲸鱼优化算法优化变分模态分解时间序列信号分解
时间序列信号分解·变分模态分解·gswoa-vmd·改进鲸鱼优化算法优化
机器学习之心5 个月前
时序分解 | MATLAB实现CEEMDAN+SE自适应经验模态分解+样本熵计算
se·ceemdan·自适应经验模态分解·样本熵计算
机器学习之心6 个月前
时序分解 | Matlab实现CEEMDAN+PE自适应噪声完备集合经验模态分解+排列熵计算
pe·ceemdan·ceemdan+pe·自适应噪声完备集合经验模态分解·排列熵计算
机器学习之心9 个月前
时序分解 | Matlab实现CEEMDAN完全自适应噪声集合经验模态分解时间序列信号分解
ceemdan·完全自适应噪声集合经验模态分解·时间序列信号分解