The algorithm of entropy realization

近似熵的一种快速实用算法

Pincus提出的近似熵算法中有很多冗余的计算,效率低,速度慢,不利于实际应用,洪波等人在定义的基础上引入二值距离矩阵的概率,提出了一种实用快速的算法。

  1. function ApEn=EntropyCompute(sig,m,r0)
  2. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  3. % 计算一维信号的近似熵,采用快速算法
  4. % sig: 待求近似熵的源信号
  5. % m: 一般取 2
  6. % r0: 一般取0.1 ~ 0.25
  7. % Ref: 近似熵:一种应用于短数据的的复杂性度量,杨福生
  8. % 近似熵及其在机械设备故障诊断中的应用,胥永刚
  9. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  10. N = size(sig,1);
  11. r=r0*std(sig);
  12. d=zeros(N,N);
  13. %%% 计算距离矩阵 %%%
  14. for i=1:N
  15. d(i,:)=abs(sig(i)-sig) < r;
  16. end
  17. %%% 计算C2 %%%
  18. c2=zeros(1,N-m+1);
  19. for i=1:N-m+1
  20. for j=1:N-1;
  21. buf = d(i,j) & d(i+1,j+1);
  22. c2(i)=c2(i)+buf;
  23. end
  24. end
  25. Fi(1)=sum(log(c2))/(N-m+1);
  26. m=m+1;
  27. %%% 计算C3 %%%
  28. c3=zeros(1,N-m+1);
  29. for i=1:N-m+1
  30. for j=1:N-2;
  31. c3(i)=c3(i)+(d(i,j) & d(i+1,j+1) & d(i+2,j+2));
  32. end
  33. end
  34. Fi(2)=sum(log(c3))/(N-m+1);
  35. ApEn=Fi(1)-Fi(2);
  36. return;




posted @ 2015-08-23 16:44  AndyBlog  阅读(227)  评论(0编辑  收藏  举报