emd4.m

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

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

⌨️ 快捷键说明

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