气泡熵BuE,MATLAB可运行代码

近似熵样本熵排列熵模糊熵,小鱼🐟也有相关可运行的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

 

  • 20
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值