Algoritmos de para calcular la dimensión fractal de señales 1D La

Anuncio
Algoritmos de para calcular la dimensión fractal de señales 1D
La dimensión fractal de una forma de onda representa una poderosa herramienta para la
detección de transitorios. En particular, en el análisis de electroencefalogramas y
electrocardiogramas, esta característica ha sido utilizada para identificar y distinguir estados
específicos de función fisiológica. Una variedad de algoritmos están disponibles para el cálculo
de dimensión fractal. En este estudio, son analizados los métodos más comunes de la
estimación de la dimensión fractal de señales biomédicas directamente en el dominio del tiempo
(teniendo en cuenta la serie de tiempo como un objeto geométrico).
I. INTRODUCCIÓN.
El término "dimensión fractal" se refiere a una dimensión no entera o fraccionaria de un objeto
geométrico. El análisis de dimensión fractal (FD) se utiliza con frecuencia en el procesamiento
de señales biomédicas, incluyendo el análisis de EEG.
Aplicaciones de la FD en esta configuración incluyen dos tipos de enfoques, los de dominio del
tiempo y los de dominio de espacio de fase. El primer enfoque de estimar la FD directamente en
el dominio del tiempo o el dominio de la forma de onda original, donde la forma de onda o
señal original es considerada una figura geométrica.
El enfoque de espacio de Fase estima la FD de un atractor en el dominio de espacio-estado. El
cálculo de la FD de formas de onda es útil para la detección de transitorios, con la adicional
ventaja de cálculo rápido. Consiste en estimar la dimensión de una señal variable en el tiempo
(forma de onda) directamente en el dominio del tiempo, lo que permite un ahorro significativo
en el tiempo de ejecución del programa. La representación del espacio de fase de un sistema
disipativo autónomo no lineal, puede contener uno o más atractores con dimensión
generalmente fraccionaria. Esta dimensión de atractor es invariante, incluso bajo diferentes
condiciones iniciales. Esto explica porqué la FD de atractores se ha utilizado ampliamente para
la caracterización del sistema.
Sin embargo, la estimación de la FD de estos atractores implica una gran carga computacional.
Un sistema embebido tiene que ser construido a partir de la la señal original en el dominio del
tiempo, sobre la base del método de delays, y el atractor de este sistema tiene que ser
desenredado antes de estimar su FD.
En la actualidad, los algoritmos desarrollados para evaluar la FD del atractor son muy lentos,
debido a un requisito considerable para el pre-procesamiento. El método más popular para hacer
esto es el algoritmo de Grassberger y Proccacia, que estima la dimensión de correlación (D2) o
FD del atractor. Muchos otros algoritmos para la estimación de la FD del atractor se han
propuesto, pero sus requisitos computacionales son caros.
Tres de los métodos más importantes para el cálculo de la FD de una forma de onda se han
aplicado al análisis de EEG, otras señales biomédicas, y una variedad de sistemas de ingeniería.
A. Algoritmo de Higuchi
Considérese la secuencia de tiempo x(1), x(2), …, x(n) a ser analizada.
Construyamos k nuevas series de tiempo xmk como
donde m indica el valor inicial, k indica el intervalo de tiempo discreto entre puntos (delay), y
[a] significa parte entera de a. Para cada una de las curvas o serie de tiempo xmk construida, la
longitud promedio Lm(k) se calcula como
Donde N es la longitud total de la secuencia de datos x y (N-1)/[N-m)/k]k es un factor de
normalización. Se calcula una longitud promedio para todas las series de tiempo teniendo el
mismo delay (o escala) k, como la media de las k longitudes Lm(k) para M=1,…,k.
Este procedimiento se repite para cada k que van desde 1 a kmax, produciendo una sumatoria de
longitudes L(k) para cada una como se indica en (2)
La longitud promedio total para la escala k, L(k), es proporcional a k-D, donde D es la dimensión
fractal por el método de Higuchi. En la curva de Ln(L(k)) vs. ln(1/k), la pendiente del mejor
ajuste por mínimos cuadrados es el estimado de la dimensión fractal.
function [FD]=higuchi(COP)
%This function calculates a fractal dimension of a COP trace using
%Higuchi's [Higuchi 1988] method.
N=length(COP);
kmax=100;
L_m=zeros(1,kmax);
L_m_length=zeros(kmax,kmax);
for k=1:kmax
for m=1:k;
L_m=zeros(1,kmax);
for i=1:fix((N-m)/k)
L_m(i)=abs(COP(m+i*k)-COP(m+(i-1)*k));
end
a=((N-1))/(fix((N-m)/k)*k);
L_m_length(m,k)=(sum(L_m)*a)/k;
end
% Extra zeros from the matrix
L_m_length_mean(k)=mean(nonzeros(L_m_length(:,k)));
L_m_length_std(k)=std(nonzeros(L_m_length(:,k)));
end
k=1:kmax;
p=polyfit(log(1./k), log(L_m_length_mean), 1);
FD=p(1);%FD is the slope
B. Algoritmo de Katz
En contraste con el método de Petrosian (que se describirá en la Sección II-C), el cálculo de la
FD (fractal dimension) por Katz [2] es ligeramente más lento, pero se deriva directamente de la
forma de onda, eliminando la etapa de pre-procesamiento de crear una secuencia binaria. La FD
de una curva se puede definir como
donde L es la longitud total de la curva o la suma de las distancias entre puntos sucesivos, y d es
el diámetro estimado como la distancia entre el primer punto de la secuencia y el punto de la
secuencia que proporciona la distancia más lejana. Matemáticamente, d se puede expresar como
Teniendo en cuenta la distancia entre cada punto de la secuencia y el primero, el punto i es el
que maximiza la distancia con respecto al primer punto.
La FD compara el número actual de unidades que componen una curva con el mínimo número
de unidades requerido para reproducir un patrón de la misma extensión espacial. Los FDs
computados de este modo dependen de las unidades de medida utilizadas. Si las unidades
son diferentes, también lo son las FDs. El enfoque de Katz resuelve este problema mediante la
creación de una unidad general o yardstick: el escalón promedio o la distancia media entre
puntos sucesivos, a. Normalizando distancias en (3) para este promedio resulta en
Definiendo n como el número de steps en la curva, entonces n=L/a. y (5) puede ser escrita como
La expresión (6) resume el enfoque de Katz para calcular la FD de una forma de onda.
function f=fd(x,fs)
x=(x-mean(x))/std(x);
n = length(x);
t=(0:1/fs:(n-1)/fs);
t=t';
x1=[t x'];
for i=1:n-1
d(i)=sqrt(abs(x1(i+1,1)-x1(i,1))^2+abs(x1(i+1,2)-x1(i,2))^2);
dmax(i)=sqrt((abs(x1(i+1,1)-x1(1,1))^2+abs(x1(i+1,2)-x1(1,2))^2));
end
totlen=sum(d);
avglen=mean(d);
maxdist=max(dmax);
numstep=double(totlen/avglen);
den=double(maxdist/totlen)
f=(log(numstep))/((log(den)+log(numstep)))
fs=1;x=[1 2 3 3 2 1];
x=(x-mean(x))/std(x);
-1.1180
0 1.1180 1.1180
0 -1.1180
n = length(x);
6
fs=1;
t=(0:1/fs:(n-1)/fs);
0 1 2 3 4 5
t=t';
x1=[t x'];
0 -1.1180
1.0000
0
2.0000 1.1180
3.0000 1.1180
4.0000
0
5.0000 -1.1180
d=
1.5000 1.5000 1.0000 1.5000 1.5000
dmax =
1.5000 3.0000 3.7417 4.1533 5.0000
totlen=sum(d); % longitud total
7
avglen=mean(d); % longitud promedio
1.4
maxdist=max(dmax); % distancia máxima
5
numstep=double(totlen/avglen); % número de pasos
5
den=double(maxdist/totlen); % normalización
0.7143
f=(log(numstep))/((log(den)+log(numstep)))
1.2643
Curva de Koch
x1=[6 78; 27 78; 43 56; 56 78; 77 78; 90 55; 76 31; 101 28; 114 4; 125 28; 149 32; 138 52;
150 78; 172 78; 188 55; 203 78; 222 78]
x1 := READPRN( "c:\datos\x1.txt" )
i := 1 .. rows ( x1) − 1
(x1i+ 1 , 1 − x1i , 1)2 + ( x1i+ 1 , 2 − x1i , 2)2
d :=
i
dmax :=
i
totlen :=
(x1i+ 1 , 1 − x11 , 1)2 + (x1i+ 1 , 2 − x11 , 2)2
∑ d = 400.105
avglen := mean ( d ) = 25.007
maxdist := max( dmax) = 216
den :=
f :=
maxdist
totlen
numstep :=
= 0.54
log ( numstep )
log ( den ) + log ( numstep )
= 1.286
totlen
avglen
= 16
C. Algoritmo de Petrosian
Petrosian utiliza una estimación rápida de la FD [5]. Sin embargo, esta estimación es realmente
la FD de una secuencia binaria como se definió originalmente por Katz [2]. Dado que las
formas de onda son señales analógicas, una señal binario se deriva siguiendo cuatro métodos
diferentes denotados con las letras a, b, c, y d en [5], respectivamente. Un quinto método se
incluye también en [5], pero es la misma que d con un parámetro ajustable.
El Método a genera la secuencia binaria asignando unos cuando el valor de la forma de onda es
mayor que la media de la ventana de datos en cuestión, y de cero cuando es inferior a la media.
En el método b, la secuencia binaria se forma mediante la asignación de un uno cada vez que el
valor es de la forma de onda está fuera de la banda de la media más y menos la desviación
estándar, y asignando cero en caso contrario. El Método c construye la secuencia binaria
restando muestras consecutivas en el registro de forma de onda. Desde esta secuencia de restas,
la secuencia binaria se crea mediante la asignación +1 ó -1 dependiendo de si el resultado de la
resta es positivo o negativo respectivamente. En el método d, a la diferencias entre los valores
de forma de onda consecutivos se les da el valor uno o cero, dependiendo de si su diferencia
excede o no en la magnitud de la desviación estándar.
Donde n es la longitud de la secuencia (número de puntos) y N∆ es el número de cambios de
signo (número de pares disimilares) en la secuencia binaria generada.
Descargar