emd6.m

来自「经验模态分解的扩展运用」· M 代码 · 共 57 行

M
57
字号
function [signal1,p1,signal2,p2]=emd4(x);%对imf顺次叠加的和进行t-test。按照统计检验的方法来确定noise order的问题。
%涉及到要用t-test.返回值是去除noise order后的重构信号。
tic;%计时函数。
if size(x,2)==1
    x=x';
end
n=x;%把x的值赋给n.
emd(n);%调用emd函数分解来得到各个imf.
a=ans;
imfnum=size(a,1)%将imf的个数保存在变量imfnum中。
%下面将选出高频信号的order。
i=1;
g=[];%将顺次叠加的和保存在变量g中。
h=[];
while i<=imfnum
    m=(1/i).*add(a,1,i);
    n=add(a,1,i);
%   n=abs(mean(m));
    g=[g;m];
    h=[h;n];
    i=i+1;
end
i=1;
p1=[];
while i<=imfnum
    r=g(i,:);
    [H,P,CI]=ttest(r,0,0.05);%从g中取出顺次叠加的和做t-test
    p1=[p1,P];
 %  P=signtest(r);
    if P<0.05
        break;
    else
        i=i+1;
        continue;
    end
end
i=min(i,5)
j=1;
p2=[];
while j<=imfnum
    r=h(j,:);
    [H,P,CI]=ttest(r,0,0.05);%从g中取出顺次叠加的和做t-test
    p2=[p2,P];
 %  P=signtest(r);
    if P<0.05
        break;
    else
        j=j+1;
        continue;
    end
end
j=min(j,5)
signal1=add(a,i+1,imfnum);
signal2=add(a,j,imfnum);
toc;
return;

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?