总体平均经验模态分解(EEMD)虽然在一定程度上抑制了模态混淆现象,但是其计算量较大,添加的白噪声不能被完全中和。湖南大学的程军圣等人提出了改进的EEMD(MEEMD)。实验结果证明,MEEMD不仅能够抑制EMD分解过程中的模态混淆问题,而且缩小了工作量、减少了重构误差。
相关文献:[1]郑近德, 程军圣, 杨宇. 改进的EEMD算法及其应用研究[J]. 振动与冲击, 2013(21):21-26.
MATLAB
function modes=meemd(x,Nstd,Ne,MAXmodes,m,tao,theta0)
%----------------------------------------------------------------------
% INPUTs
% x: signal to decompose
% Nstd: noise standard deviation
% Ne: number of realizations
% MaxIter: maximum number of sifting iterations allowed.
% OUTPUTs
% modes: contain the obtained modes in a matrix with the rows being the modes
% -------------------------------------------------------------------------
%% 数量运算标准化
desvio_x=std(x);
x=x/desvio_x;
modes=zeros(size(x));
aux=zeros(MAXmodes+1,size(x,2)); %+1表示最后1行是余项
acum=zeros(size(x));
%%% 生成噪声信号
for i=1:Ne
white_noise{i}