MEEMD--改进的EEMD算法及其应用研究

        总体平均经验模态分解(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}=randn(size(x));
end

while  nnz(diff(sign(diff(x-acum))))>2
    %%% 生成IMF,平均计算
    for i=1:Ne
          [temp1, ~, ~]=emd(x-acum+Nstd*white_noise{i},'MaxNumIMF',MAXmodes);
          [temp2, ~, ~]=emd(x-acum-Nstd*white_noise{i},'MaxNumIMF',MAXmodes);
          te=min(size(temp1,1),size(temp2,1));
          a = zeros(MAXmodes+1,size(temp1,2));
          temp1=[temp1(1:te,:);a(te+1:MAXmodes+1,:)];
          temp2=[temp2(1:te,:);a(te+1:MAXmodes+1,:)];
          if te<=MAXmodes+1  
              aux=aux+(temp1+temp2)./(2*Ne);
          end
    end
    %%%计算全部的IMF的排列熵
    for i = 1:size(aux,1)
        auxPE=pec(aux(i,:),m,tao);
        if auxPE>=theta0
            acum=acum+aux(i,:);
        end
    end
    %%% 剩余信号进行EMD分解
        modes=emd(x-acum,'MaxNumIMF',MAXmodes);
        break
end

%%% 恢复原来的运算量级
modes=modes*desvio_x;

end

程序的输入为自行编辑的合成信号,读者可读入自己的数据。

计算结果:

 在MEEMD中关于EMD分解,很多程序将MaxNumIMF写为后面的MAXMODE;导致程序运行不同。这点应引起注意。

 [temp1, ~, ~]=emd(x-acum+Nstd*white_noise{i},'MaxNumIMF',MAXmodes);
 [temp2, ~, ~]=emd(x-acum-Nstd*white_noise{i},'MaxNumIMF',MAXmodes);

参考文献:

[1]郑近德, 程军圣, 杨宇. 改进的EEMD算法及其应用研究[J]. 振动与冲击, 2013(21):21-26.

猜你喜欢

转载自blog.csdn.net/weixin_46062179/article/details/120099769