近似熵、样本熵、排列熵,小鱼🐟也有相关可运行的matlab代码以及其原理和算法提供哦,大家点击即可找到哦。
模糊熵原理:
为解决样本熵估算值不准确问题,于 2007 年提被出。借用模糊函数的理论来度量两个向量的相似程度。
FE算法:
以下内容如有不对之处,望大家在评论区里告诉小鱼🐟哦,谢谢大家啦!!
step1:x={x(1),x(2),…,x(N)},确定维数m
step2:X1(n)={x(n),x(n+1),…,x(n+m-1)},n=1,2,…,N-m+1
step3:x0(n)=X1(n)的均值
step4:X(n)=X1(n)-x0(n)
step5:d[X(n),X(j)]=max(|X(n+k)-X(j+k)|),n不等于j,k=0.1,…,m-1
step6:dm(n,j)=exp(-(d(n,j)/r).^s),s是边界梯度,r是边界宽度
step7:Θ1=dm的均值
step8:m=m+1,重复步骤step2~step7,得到Θ2
step9:FE=lnΘ1-lnΘ2
MATLAB代码:
%% %%%%清除历史记录%%%% clc,clear,close all; %% %%%%仿真信号设置%%%% fs=200;T=1/fs;time=1; t=0:T:time-T; len=length(t); x=2*sin(60*pi*t).*(1+0.5*sin(2*pi*t)); [fai5]=Fe(20,x,len); [fai6]=Fe(21,x,len); FE=log(fai5)-log(fai6); function [fai]=Fe(m,x,len) s=4;r=0.11;%%模糊函数边界的梯度和宽度(该值,小鱼也不大清楚,需要加强相关理论) i=0:m-1; for ii=1:len-m+1 x1(ii,:)=x(ii+i); x0(ii)=mean(x); X(ii,:)=x1(ii,:)-x0(ii); end n=1:len-m; j=1:len-m; k=0:m-1; for nn=n for jj=j if nn==jj continue; end d(nn,jj)=max((X(nn,:)-X(jj,:))); dm(nn,jj)=exp(-(d(nn,jj)/r).^s); end end fai=mean(mean(dm)); end