求近似熵函数的MATLAB程序
(2018-04-21 22:50:45)
%求近似熵函数
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
赠金笔
加载中,请稍候......