Principios de entropía de permutación, entropía difusa, entropía aproximada, entropía de muestra e implementación de MATLAB

1. Entropía de permutación

1. Concepto

Un método para detectar mutaciones dinámicas y aleatoriedad de series de tiempo, que puede evaluar cuantitativamente el ruido aleatorio contenido en secuencias de señales.

2. Principios básicos

(1) Realice la reconstrucción del espacio de fase en un conjunto de series de tiempo X de longitud N, y obtenga la matriz Y
Inserte la descripción de la imagen aquí
donde m es la dimensión de incrustación, t es el tiempo de retardo y K = N- (m-1) t.
Cada fila de la matriz Y es un componente de reconstrucción y hay K componentes de reconstrucción en total.

(2) Reorganice cada componente reconstruido en orden ascendente para obtener el índice de columna de la posición de cada elemento en el vector para formar un conjunto de secuencias de símbolos.
Inserte la descripción de la imagen aquíHay un total de m! Clases de secuencias de símbolos diferentes para el mapeo de espacio de fase m-dimensional.

(3) Calcule el número de apariciones de cada secuencia de símbolos dividido por el número total de apariciones de m! Secuencias de símbolos diferentes como la probabilidad del componente de reconstrucción.
Inserte la descripción de la imagen aquí(4) La fórmula de cálculo para la entropía de permutación de la serie de tiempo X es:
Inserte la descripción de la imagen aquí
(5) La entropía de permutación máxima es ln (d!), Y el valor de entropía de permutación está normalizado, es decir: el
Inserte la descripción de la imagen aquívalor de entropía de permutación representa la serie de tiempo X El grado de aleatoriedad: cuanto menor es el valor de la entropía, más simple y regular es la serie temporal; por el contrario, cuanto mayor es el valor de la entropía, más compleja y aleatoria es la serie temporal.

Nota: Nunca antes había entendido la teoría de la entropía de permutación y no podía entender el proceso de cálculo de la entropía de permutación. No fue hasta que leí el código del algoritmo de entropía de permutación cuidadosamente y combiné la teoría que finalmente lo descubrí. Se recomienda que los lectores lean el código de entropía de permutación y piensen mientras depuran, lo cual es útil para comprender.

3. Código MATLAB

%% 主函数调用排列熵函数求时间序列的排列熵值

[m,n]=size(X);  % X为时间序,一行为一个时间序列。

% 相空间重构:eDim为嵌入维数,eLag为延迟时间
% 当X具有多列和多行时,每列将被视为独立的时间序列,该算法对X的每一列假设相同的时间延迟和嵌入维度,并以标量返回ESTDIM和ESTLAG。
[~,eLag,eDim] = phaseSpaceReconstruction(X);

% 求排列熵:pe为排列熵
pe=zeros(1,m);
for i=1:m
    [pe(i),~] = pec(X(i,:),eDim,eLag);
end

%% 排列熵算法
function [pe ,hist] = pec(y,m,t)

%  Calculate the permutation entropy

%  Input:   y: time series;
%           m: order of permuation entropy 嵌入维数
%           t: delay time of permuation entropy,延迟时间

% Output: 
%           pe:    permuation entropy
%           hist:  the histogram for the order distribution
ly = length(y);
permlist = perms(1:m);
c(1:length(permlist))=0;
    
 for j=1:ly-t*(m-1)
     [~,iv]=sort(y(j:t:j+t*(m-1)));
     for jj=1:length(permlist)
         if (abs(permlist(jj,:)-iv))==0
             c(jj) = c(jj) + 1 ;
         end
     end
 end
hist = c;
c=c(find(c~=0));
p = c/sum(c);
pe = -sum(p .* log(p));

referencias

[1] Zhao Xinhai, Zhang Shuchen, Li Zhishen, et al. Método de extracción de señales de características de fallas basado en VMD [J]. Vibration, Test and Diagnosis, 2018, 38 (1): 11-13.
[2] Implementación de matlab de entropía de permutación

Supongo que te gusta

Origin blog.csdn.net/weixin_45317919/article/details/109254213
Recomendado
Clasificación