计算理解

Schematic illustration of the coarse-graining procedure
图片来源:Multiscale entropy analysis of biological signals (Fig.2)

概念

样本熵 (Sample Entropy, SampEn) 是由Richman提出的一种时间序列复杂性测度方法,可以用 S a m p E n ( m , r , N ) SampEn(m,r,N) SampEn(m,r,N)来表示,其中维数为 m m m m + 1 m+1 m+1 r r r为相似容限, N N N为长度。
样本熵具有两个优势:样本熵的计算不依赖数据长度;样本熵具有更好的一致性,即参数 m m m r r r的变化对样本熵的影响程度是相同的。

计算方法

参考:
信号处理算法(2): 样本熵(SampEn) | CSDN-雨寒sgg
时间序列分析
近似熵

一般地,对于由N个数据组成的时间序列 { x ( n ) } = x ( 1 ) , x ( 2 ) , x ( N ) \{x(n)\}=x(1), x(2), x(N) {x(n)}=x(1),x(2),x(N),样本熵的计算方法如下:

  1. 按序号组成一组维数为 m m m的向量序列, X m ( 1 ) , . . . , X m ( N − m + 1 ) X_m(1), ..., X_m(N-m+1) Xm(1),...,Xm(Nm+1),其中 X m ( i ) = x ( i ) , x ( i + 1 ) , . . . , x ( i + m − 1 ) X_m(i)={x(i),x(i+1), ..., x(i+m-1)} Xm(i)=x(i),x(i+1),...,x(i+m1)。从第 i i i点开始的 m m m个连续的 x x x值。
  2. 定义向量 X m ( i ) X_m(i) Xm(i) X m ( j ) X_m(j) Xm(j)之间的距离 d [ X m ( i ) , X m ( j ) ] d[X_m(i),X_m(j)] d[Xm(i),Xm(j)]为两者对应的元素中最大差值的绝对值。即:
    d [ X m ( i ) , X m ( j ) ] = max ⁡ k = 0 , . . . , m − 1 ( ∣ x ( i + k ) − x ( j + k ) ∣ ) d[X_m(i),X_m(j)] = \max_{k=0,...,m-1}(|x(i+k)-x(j+k)|) d[Xm(i),Xm(j)]=k=0,...,m1max(x(i+k)x(j+k))
  3. 对于给定的 X m ( i ) X_m(i) Xm(i),统计 X m ( i ) X_m(i) Xm(i) X m ( j ) X_m(j) Xm(j)之间距离小于等于 r r r的j( 1 ≤ j ≤ N − m 1\leq j\leq N-m 1jNm)的数目,并记作 B i B_i Bi。对于 1 ≤ i ≤ N − m 1\leq i\leq N-m 1iNm,定义:
    B i m ( r ) = 1 N − m − 1 B i B_i^m(r)=\frac{1}{N-m-1}B_i Bim(r)=Nm11Bi
  4. 定义 B i m ( r ) B_i^m(r) Bim(r)为:
    B i m ( r ) = 1 N − m − 1 B i B_i^m(r)=\frac{1}{N-m-1}B_i Bim(r)=Nm11Bi
  5. 增加维数到
  6. 定义

这样,是两个序列在相似容县r下匹配m个点的概率,而是两个序列匹配m+1个点的概率。样本熵定义为:

当N为有限值时,可以用下式估计:
S a m p E n ( m , r , N ) = lim ⁡ N → { − l n A m ( r ) B m ( r ) } SampEn(m,r,N)=\lim_{N\rightarrow} \{-ln\frac{A^m(r)}{B^m(r)}\} SampEn(m,r,N)=Nlim{lnBm(r)Am(r)}

代码实现

C语言版

C语言版代码
There are two major steps in the calculations performed by mse:

  1. Time series are coarse-grained.
  2. Sample entropy (SampEn) is calculated for each coarse-grained time series.

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐