加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

求近似熵函数的MATLAB程序

(2018-04-21 22:50:45)

求近似熵函数的MATLAB程序


%求近似熵函数
function  resultapen=APEN(input_signal,input_m,input_r);%input_signal为要求近似熵的序列,input_m为给定的模式的维数,input_r为相似容限
x=input_signal;
m=input_m;
r=input_r;
[input_row,input_col]=size(x);%输入的信号序列一般为1行n列
n=input_col;%信号的点数

rownum=n-m+1;%构造的m维矢量的行数
signalmatrix=zeros(rownum,m);%构造信号矩阵
for i=1:1:rownum
    for j=1:1:m
        signalmatrix(i,j)=x(i+j-1);
    end
end
sumC=0;

for ii=1:1:rownum
    nnum=0;
    for jj=1:1:rownum
        U=zeros(m,1);%存放
        d=0;
        for kk=1:1:m
           U(kk,1)=abs(signalmatrix(ii,kk)-signalmatrix(jj,kk));
        end
        d=max(U);%X(i)与X(j)的距离的最大值
        if d         nnum=nnum+1;%如果距离小于阈值,则个数+1;  
        end
    end
    C=(nnum-1)/(rownum-1);
    if C>0
    sumC=sumC+log(C);
    end
end
resultapen=sumC/rownum;
return;

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有