注册 登录
编程论坛 Matlab

癫痫脑电信号近似熵分析

天大那一边 发布于 2013-05-20 21:40, 850 次点击
各位大侠,我现在正在做癫痫脑电分析,采用的是近似熵方法,理论上,癫痫发作期间,近似熵应该减小,但是我现在出现的情况是正常时期近似熵反而小于癫痫发作时期,前期只做了简单的带通滤波,大侠们,求助啊,需要你们的帮助

function ApEn=fastAPEN(signal,r)

   %近似熵快速求解程序
   %r       相似容限
   %signal  待分析数据

    signal=signal(:);
    N=length(signal);
    Cr_ij=[];Cr_i=[];Cr=[];
    Cr_ij_1=[];Cr_i_1=[];Cr_1=[];
    D=abs(signal*ones(1,N)-ones(N,1)*signal');%距离矩阵
    S=zeros(N,N);
    S(find(D<=r*std(signal)))=1;%计算N*N二值距离矩阵   
    m=2;S(N+1,(m+1):N)=0;%m+1时满足循环所有数目
    for k=1:N-m+1
        % m维
        Cr_ij=S(k,1:N-1).*S(k+1,2:N);%“与”运算
        sumC=sum(Cr_ij);%矢量距离小于相似容限r的矢量个数统计
        Cr_i=sumC/(N-m+1);
        Cr=[Cr; Cr_i];
        % m+1维
        Cr_ij(end)=[];%去除最后一个0值,与以下矩阵维度保持一致
        Cr_ij_1=Cr_ij.*S(k+2,3:N);
        sumC_1=sum(Cr_ij_1);
        Cr_i_1=sumC_1/(N-m);
        Cr_1=[Cr_1;Cr_i_1];
    end
    Cr_1(end)=[];%去除最后一个0值,以防ApEn出现无穷大
    phi_m=mean(log(Cr));
    phi_m_1=mean(log(Cr_1));
    ApEn=phi_m-phi_m_1;
return
0 回复
1