近似熵、样本熵、排列熵、模糊熵,小鱼🐟也有相关可运行的matlab代码以及其原理和算法提供哦,大家点击即可找到哦。
气泡熵原理:
是排列熵的改进,2017年提出。与排列熵不同的是,对交换次数进行的概率计算,并引入了条件Rényi熵。
BuE算法:
以下内容如有不对之处,望大家在评论区里告诉小鱼🐟哦,谢谢大家啦!!
step1:x={x(1),x(2),…,x(N)},确定嵌入维数m
step2:相空间重构,X(n)={x(n),x(n+u),…,x(n+(m-1)u},n=(N-m)/u+1<=m!;
step3:将每一个X(n)中的元素进行升序排列,并用j(n)作为交换次数的记录标记
step4:每个X(n)的序列长度为q,则概率Pn=j(n)/q;
step5:计算Pj.^2的和为sP,并做负运算(-ln(sP))记作Hs
step6:m=m+1,重复step1~step5
step:归一化,得到BuE=(Hs2-Hs1)/log((m+1)/(m-1))
MATLAB代码-BuE
fs=500;T=1/fs;time=1; t=0:T:time-T; len=length(t); x=rand(1,fs); m=4; [H21]=Be(m,x,len); [H22]=Be(m+1,x,len); bEn=(H22-H21)/log((m+1)/(m-1)); function [H2]=Be(m,x,len) delay=1; k=1:len-(m-1)*delay; j=0:(m-1)*delay; count=zeros(length(k),1); p=zeros(length(k),1); for ii=k X(ii,:)=x(ii+j); a(ii,:)=X(ii,:); for i=1:length(j)-1 for jj=1:length(j)-i b=a(ii,jj); c=a(ii,jj+1); if b>c a(ii,jj)=c; a(ii,jj+1)=b; count(ii)=count(ii)+1; else continue; end end end p(ii)=count(ii)/length(k); end H2=-log(sum(p.^2));%%条件Rényi熵 end