approximateentropy.m

来自「计算脑电信号非线性参数」· M 代码 · 共 66 行

M
66
字号
%本程序实现脑电信号非线性特征参数--近似熵的计算%
%林宛华  中南大学生物医学工程医学图像与信号处理实验室   %
%E-mail: wanhualin01@163.com%
%2008年3月10日%
function ApEn=ApproximateEntropy(data,m,r)
EEG=EEG_data1;
N=length(EEG);
SD=sqrt((sum(EEG.^2)-((sum(EEG))^2)/N)/(N-1));%标准差
m=2;r=r*SD;
for k=1:2
        for i =1:N-m+1
            for j=1:m
            X(i,j)=[EEG(i+j-1)];
            end
        end
       smallerthanr=zeros(1,N-m+1);
        for i=1:N-m
            j=0;
            while(j<N-m+1)
              if(j==i-1)
                 j=j+2;
              else
                 j=j+1;
              end
             distance=max(abs(X(i,:)-X(j,:)));
             if(distance<r)
                 smallerthanr(i)=smallerthanr(i)+1;
             end
            end
        end
        %i取N-m+1
        for j=1:N-m
        distance=max(abs(X(N-m+1,:)-X(j,:)));
             if(distance<r)%对每个i,统计距离小于r的数目
                 smallerthanr(N-m+1)=smallerthanr(N-m+1)+1;
             %else
                 %smallerthanr(N-m+1)=smallerthanr(N-m+1);        
             end
        end

        for i=1:N-m+1
            Cmr(i)=smallerthanr(i)/(N-m);%对每个i,统计距离小于r的数目与距离总数N-m的比值
             if (Cmr(i)==0)
                Cmr(i)=1;
             end
            lncmr(i)=logm(Cmr(i));%取自然对数
        end
        Qmr(k)=(sum(lncmr))/(N-m+1);%平均
        m=m+1;%扩展成m+1维,再计算一遍
end
ApEn=Qmr(1)-Qmr(2);
return













    

⌨️ 快捷键说明

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