Main Content

Esta página es para la versión anterior. La página correspondiente en inglés ha sido eliminada en la versión actual.

Extracción de características de clasificación de señales fisiológicas

Este ejemplo muestra cómo utilizar las funciones y extraer entidades de los datos de la señal de marcha.midcrossdtw Las señales de Gait se utilizan para estudiar los patrones de caminar de pacientes con enfermedad neurodegenerativa. Se ha informado que el tiempo entre zancadas difiere entre individuos sanos y enfermos. ofrece una manera conveniente de calcular estos tiempos.midcross Las personas también cambian su velocidad de marcha con el tiempo. proporciona una manera conveniente de comparar cuantitativamente la forma de las señales de marcha deformando para alinearlas en el tiempo.dtw Este ejemplo se utiliza para localizar cada paso en una señal de marcha y para calcular distancias entre segmentos de señal de marcha.midcrossdtw Estos resultados se examinan como características potenciales para la clasificación de señales. Mientras que este ejemplo es específico para las señales de marcha, otras señales fisiológicas, tales como electrocardiograma (ECG) o foplonismograma (PPG), también se pueden analizar utilizando estas funciones.

Medir intervalos de tiempo entre zancadas

El conjunto de datos que se está analizando contiene datos de fuerza recopilados durante la caminata para pacientes con Esclerosis Lateral Amiotrófica (ELA) y un grupo de control. La ELA es una enfermedad famosa por Lou Gehrig, Stephen Hawking y el 'Ice Bucket Challenge' de 2014.

Cargue y trace los primeros 30 segundos de datos de señal de marcha para un paciente.

helperGaitPlot('als1m'); xlim([0 30])

Este conjunto de datos representa la fuerza ejercida por un pie sobre una resistencia sensible a la fuerza. La fuerza se mide en milivoltios. Cada registro tiene un minuto de longitud y contiene canales separados para el pie izquierdo y derecho de un sujeto. Cada paso del conjunto de datos se caracteriza por un fuerte cambio de vigor a medida que el pie impacta y sale del suelo. Utilícelo para encontrar estos cambios bruscos para un paciente con ELA.midcross

Se utiliza para encontrar y trazar la ubicación de cada cruce para el pie izquierdo de un paciente con ELA.midcross Elija una tolerancia del 25% para asegurarse de que se detecta cada cruce.

Fs = 300; gaitSignal = helperGaitImport('als1m'); midcross(gaitSignal(1,:),Fs,'tolerance',25); xlim([0 30]) xlabel('Sample Number') ylabel('mV')

identifica correctamente los cruces.midcross Ahora úselo para calcular los tiempos entre zancadas para un grupo de diez pacientes. Cinco pacientes son sujetos de control, y cinco pacientes tienen ELA. Utilice el registro del pie izquierdo para cada paciente y excluya los primeros ocho cruces para eliminar los transitorios.

pnames = helperGaitImport(); for i = 1:10   gaitSignal = helperGaitImport(pnames{i});   IND2 = midcross(gaitSignal(1,:),Fs,'Tolerance',25);   IST{i} = diff(IND2(9:2:end));      varIST(i) = var(IST{i}); end

Trazar los tiempos entre zancadas.

figure hold on for i = 1:5   plot(1:length(IST{i}),IST{i},'.-r')   plot(1:length(IST{i+5}),IST{i+5},'.-b') end xlabel('Stride Number') ylabel('Time Between Strides (sec)') legend('ALS','Control')

La varianza de los tiempos entre zancadas es mayor en general para los pacientes con ELA.

Medir la similitud de los patrones de caminar

Una vez cuantificada la distancia entre los pasos, proceda a analizar la forma de los datos de la señal de marcha independientemente de estas variaciones entre pasos. Compare dos segmentos de la señal utilizando .dtw Idealmente, uno compararía la forma de la señal de marcha con el tiempo a medida que el tratamiento o la enfermedad progresa. Aquí, comparamos dos segmentos del mismo registro, un segmento tomado al principio de la grabación ( ), y el segundo hacia el final ( ).sigsInitialLeftsigsFinalLeft Cada segmento contiene seis pasos.

Cargue los segmentos de datos de la señal de marcha.

load PNGaitSegments.mat

El paciente no camina al mismo ritmo en todo el registro. proporciona una medida de la distancia entre los segmentos deformándolos para alinearlos en el tiempo.dtw Compare los dos segmentos utilizando .dtw

figure dtw(sigsInitialLeft{1},sigsFinalLeft{1}); legend('Early segment','Later segment','location','southeast')

Los dos segmentos están alineados en el tiempo. Aunque la velocidad de paso del paciente parece cambiar con el tiempo, como se puede ver en el desplazamiento de las señales originales, coincide con los dos segmentos permitiendo que las muestras de cualquiera de los segmentos se repitan.dtw La distancia a través de , junto con la varianza de los tiempos entre zancadas, se explorará como características para un clasificador de señal de marcha.dtw

Construir un vector de características para clasificar señales

Supongamos que está construyendo un clasificador para decidir si un paciente está sano en base a una señal de marcha. Investigue la varianza de los tiempos entre zancadas, y la distancia entre los segmentos de señal inicial y final, como entidades de clasificación.feature1dtwfeature2

La característica 1 se calculó anteriormente utilizando .midcross

feature1 = varIST;

Extraiga la característica 2 para los pacientes con ELA y el grupo de control.

feature2 = zeros(10,1); for i = 1:length(sigsInitialLeft)   feature2(i) = dtw(sigsInitialLeft{i},sigsFinalLeft{i}); end

Trazar las características para sujetos de ELA y sujetos de control.

figure plot(feature1(1:5),feature2(1:5),'r*',...     feature1(6:10),feature2(6:10),'b+',...     'MarkerSize',10,'LineWidth',1) xlabel('Variance of Inter-Stride Times') ylabel('Distance Between Segments') legend('ALS','Control')

Los pacientes con ELA parecen tener una mayor varianza en sus tiempos entre zancadas, pero una distancia más pequeña a través de entre segmentos.dtw Estas características se complementan entre sí y se pueden explorar para su uso en un clasificador como una red neuronal o una máquina vectorial de soporte.

Conclusiones

y proporcionar una manera conveniente de comparar las señales de marcha y otros datos fisiológicos que se repiten irregularmente con el tiempo debido a diferentes tasas de movimiento o actividad.midcrossdtw En este ejemplo, los tiempos de paso se encontraban utilizando y las distancias de segmento se calcularon mediante .midcrossdtw Se trataba de medidas de cortesía, como se eliminó cualquier variación de tiempo que las distancias medirían.dtwmidcross Como características, estas dos métricas mostraron separación entre los pacientes de control y ELA para este conjunto de datos. y también podría utilizarse para examinar otras señales fisiológicas cuya forma varía en función de la actividad.midcrossdtw

Referencias

[1] Goldberger, A. L., L. A. N. Amaral, L. Glass, J. M. Hausdorff, P. Ch. Ivanov, R. G. Mark, R. G. Mietus, G. B. Moody, C.-K. Peng, y H. E. Stanley. "PhysioBank, PhysioToolkit y PhysioNet: Componentes de un nuevo recurso de investigación para señales fisiológicas complejas." Circulación. Vol. 101, Número 23, 2000, pp. e215-e200.