符号熵
固定时间间隔下对系统进行采样取值的方法来追踪系统动态,熵是计算系统中包含可用信息大小的方法,可以用来度量系统的不确定性,从而描述符号的复杂性。
符号熵将数据转化为少量的符号模式,虽然失去了大量信息,但保留了动态系统的周期性,对称性等动力学性能,并且区分过程中采取下采样的方法,降低连续样本的独立性,使熵值增加。
符号熵的计算:
1.给定时间序列长度为N的X={x(1),x(2)…x(N)},将时间序列转换为X={x(1),x(2)…x(n)},且将其量化到0—q-1之间,q是量化等级,当q=2时,将时间量化为0或者1
r为量化阈值,为样本均值
2.将符号序列进行重构:
为词序列,L为词序列长度
编码后序列的模式共种,例如量化等级为2时,重构的词序列为时,序列模式共8种.分别为{000,001,010,011,100,101,110,111}.
3.自编码序列为
4.计算出每个模式在重构的符号序列中出现的概率,记为
其中i=1,2…m
代码部分
function [out]=sym_en_func(fn_1,q,m)
N=length(fn_1);
u=zeros(N-m+1,m);
fn=zeros(1,N);
fn_2=mapminmax(fn_1,-1,1);
for i=1:N
if abs(fn_2(i))>0.15
fn(i)=1;
else
fn(i)=0;
end
end
prob=zeros(1,q^m);
for i=1:N-m+1
u(i,:)=fn(i:i+m-1);
end
[~,~,nn]=unique(u,'rows');
cc=tabulate(nn);
num=cc(:,2);
sum=0;
for i=1:length(num)
prob(i)=num(i)/(N-m+1);
sum=sum+prob(i)*log(1/(prob(i)));
end
out=sum;
end
来源:CSDN
作者:qq_39052927
链接:https://blog.csdn.net/qq_39052927/article/details/104539135