色散熵(Dispersion Entropy)
基本原理
给定长度为 \(N\) 的时间序列 \(\left\{ {{x_1},{x_2}, \cdots ,{x_N}} \right\}\) ,色散熵的计算步骤如下:
将 \({x_j}\left( {j = 1,2, \cdots ,N} \right)\) 映射到 \(c\) 类,并且将类标记为:math:1 到 \(c\) 。为此,首先使用正态累积分布函数(NCDF)将 \(x\) 映射到 \(y = \left\{ {{y_1},{y_2}, \cdots ,{y_N}} \right\}\) ,\({y_j}\) 为0-1的值。接下来,我们使用线性算法将每个 \({y_j}\) 赋值为从1到 \(c\) 的整数。对于映射后的信号的每个元素,使用 \(z_j^c = {\rm{round}}\left( {c \cdot {y_j} + 0.5} \right)\) 得到分类后的时间序列。\(z_j^c\) 表示分类后时间序列的第 \(j\) 个元素,通过四舍五入将 \({y_j}\) 增加或减少到一个整数类。
以嵌入维度 \(m\) 和时间延迟 \(d\) 对 \(z_j^c\) 进行相空间重构,得到 \(N - \left( {m - 1} \right)d\) 个嵌入向量 :
重要
时间序列的每个嵌入向量 \(z_i^{m,c}\) 被映射到一个色散模式 \({\pi _{{v_0}{v_1} \cdots {v_{m - 1}}}}\) ,其中 \(z_i^c = {v_0},z_{i + d}^c = {v_1}, \cdots ,z_{i + \left( {m - 1} \right)d}^c = {v_{m - 1}}\) 。因为每个嵌入向量 \(z_i^{m,c}\) 有 \(m\) 个元素,每个元素可能是1到 \(c\) 的整数,因此共有 :math:`{c^m}`种可能的色散模式。
对于 \({c^m}\) 种可能的色散模式,统计每种色散模式的概率:
重要
\(p\left( {{\pi _{{v_0}{v_1} \cdots {v_{m - 1}}}}} \right)\) 表示: \(N - \left( {m - 1} \right)d\) 个嵌入向量 \(z_i^{m,c}\) 中属于 \({\pi _{{v_0}{v_1} \cdots {v_{m - 1}}}}\) 色散模式的数量除以嵌入向量的总数 \(N - \left( {m - 1} \right)d\) 。
最后,色散熵可以被计算为:
代码实现
这里假设您已经获得本项目的的所有代码,若您此时还未获得有关程序,请移步到 安装说明
色散熵(Dispersion entropy)的核心程序为 MultiDispEn
function [MDE]=MultiDispEn(data,m,nc,tau,scale)
MDE=[];
data=data';
for j=1:scale
Xs = Multi(data,j,1);
[de]=DisEn_NCDF(Xs',m,nc,tau);
MDE=[MDE,de];
end
end
重要
各输入参数的信息如下:
data:输入的时间序列,为列向量m:嵌入维度Sym:符号序列scale:尺度比
仿真验证
色散熵的脉冲检测结果
多尺度色散熵的故障分类可视化结果
抗噪性分析
计算效率结果
- 1
Rostaghi and H. Azami, “Dispersion Entropy: A Measure for Time-Series Analysis,” IEEE Signal Process. Lett., vol. 23, no. 5, pp. 610–614, May 2016, doi: 10.1109/LSP.2016.2542881.