Tabla de contenido
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
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.
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.
(4) La fórmula de cálculo para la entropía de permutación de la serie de tiempo X es:
(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
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