¿Cómo debo normalizar los datos del sensor de mi acelerómetro?

9

Estoy trabajando con un gran conjunto de datos de acelerómetro recopilados con múltiples sensores usados ​​por muchos sujetos. Desafortunadamente, nadie aquí parece conocer las especificaciones técnicas de los dispositivos y no creo que hayan sido recalibrados. No tengo mucha información sobre los dispositivos. Estoy trabajando en mi tesis de maestría, los acelerómetros fueron prestados de otra universidad y, en general, la situación era un poco intransparente. Entonces, ¿preprocesamiento a bordo del dispositivo? Ninguna pista.

Lo que sí sé es que son acelerómetros triaxiales con una frecuencia de muestreo de 20Hz; digital y presumiblemente MEMS. Estoy interesado en el comportamiento no verbal y los gestos, que según mis fuentes deberían producir principalmente actividad en el rango de 0.3-3.5Hz.

La normalización de los datos parece bastante necesaria, pero no estoy seguro de qué usar. Una gran parte de los datos está cerca de los valores de reposo (valores brutos de ~ 1000, por gravedad), pero hay algunos extremos como hasta 8000 en algunos registros, o incluso 29000 en otros. Ver la imagen de abajo . Creo que esto hace que sea una mala idea dividir por max o stdev para normalizar.

¿Cuál es el enfoque habitual en un caso como este? Dividir por la mediana? ¿Un valor percentil? ¿Algo más?

Como cuestión secundaria, tampoco estoy seguro de si debería recortar los valores extremos.

Gracias por cualquier consejo!

Editar : Aquí hay una gráfica de aproximadamente 16 minutos de datos (20000 muestras), para darle una idea de cómo se distribuyen típicamente los datos.

ingrese la descripción de la imagen aquí

Junuxx
fuente
1
¿Puede proporcionar un poco más de información sobre su configuración de medición? Preguntas que vienen a la mente: ( 1 ) ¿Son estos acelerómetros de eje único o multieje? ( 2 ) ¿Están filtrados de paso alto o no y, de ser así, cómo? (Parece que no lo son, según su descripción.) ( 3 ) ¿Qué está midiendo exactamente y cuál es el rango de frecuencia de la señal de interés? ( 4 ) ¿Cuál es el mecanismo de detección (es decir, MEMS, piezoeléctrico, capacitivo, etc.) o, incluso, el número de parte (!) De los acelerómetros que está utilizando? ...
cardenal
... (continuación) ( 5 ) ¿Son totalmente digitales o tiene su propio ADC (16 bits, tal vez, según la descripción que da)?
cardenal
@cardinal: edité las respuestas a sus preguntas, gracias por preguntar. No estoy seguro de qué es un ADC. Estuve involucrado en el experimento, pero no en la extracción de los datos de la memoria del dispositivo, hay una brecha entre la recopilación de datos y donde recibí un montón de registros binarios.
Junuxx
Hola junuxx Perdón por el acrónimo inexplicable (ADC = "convertidor analógico a digital"); Supuse implícitamente que lo reconocerías en función de tu pregunta.
cardenal
1
¿Qué estás tratando de averiguar con estos datos? ¿Está intentando detectar ciertos tipos de eventos, estimar frecuencias de eventos, estimar aceleraciones medias, encontrar correlaciones entre diferentes acelerómetros, ...? El punto es que si desea buenos consejos relevantes, no pregunte sobre procedimientos técnicos con los datos (que pueden ser irrelevantes o incluso inútiles, dependiendo de la aplicación): primero díganos qué problema está tratando de resolver.
whuber

Respuestas:

14

Las señales sin procesar que muestra arriba parecen no estar filtradas ni calibradas. El filtrado y la calibración apropiados , con cierto rechazo de artefactos , normalizarán los datos. El enfoque estándar con datos de acelerómetro es el siguiente:

  1. Filtro: por ejemplo, filtro de paso bajo IIR de paso bajo o paso de banda de 4º orden
  2. Rechazo de artefactos: basado en el umbral
  3. El método Calibrar - Ferraris et al ( Procedimiento para la calibración sin esfuerzo en campo de giroscopios y acelerómetros de velocidad de tres ejes, F Ferraris, U Grimaldi, M Parvis - Sensores y actuadores, 1995 ) funciona bien para esto.

Es recomendable realizar el rechazo de artefactos en los datos del sensor inercial. Me preocuparía que no conozca la procedencia de los datos, por lo que no puede garantizar que los sensores se hayan colocado correctamente y de manera consistente (en términos de orientación y ubicación física) a todos los sujetos. Si los sensores no se colocaron correctamente, puede obtener una gran cantidad de artefactos en las señales, ya que el sensor puede moverse en relación con el segmento del cuerpo. Del mismo modo, si los sensores estuvieran orientados de manera diferente (en la forma en que fueron colocados) en diferentes sujetos, los datos serán difíciles de comparar entre sujetos.

Dado el tamaño de los valores atípicos que informa, parece probable que sean artefactos. Dichos artefactos sesgarían casi con certeza cualquier cálculo de calibración (aunque su efecto se reducirá mediante un filtrado apropiado) y, por lo tanto, la calibración debe realizarse después del rechazo de artefactos.

Un umbral simple puede funcionar bien para una rutina inicial de rechazo de artefactos, es decir, eliminar (o reemplazar con NaN) todas las muestras por encima de cierto umbral empírico. Técnicas más sofisticadas calcularán adaptativamente este umbral utilizando una media móvil o una ventana móvil.

Dependiendo de la ubicación del sensor, es posible que también desee corregir la influencia de la gravedad en las señales de aceleración, aunque la comprensión detallada de los ejes y la posición del sensor es crucial aquí. El método Moe-Nillson ( R. Moe-Nilssen, Un nuevo método para evaluar el control motor en marcha en condiciones ambientales de la vida real. Parte 1: El instrumento, Clinical Biomechanics, Volumen 13, Temas 4–5, junio – julio de 1998, Páginas 320-327 ) es la más utilizada y funciona bien para sensores inerciales montados en la parte inferior de la espalda.

Un buen lugar para comenzar a examinar los datos para el reconocimiento de gestos sería dividir los datos filtrados y calibrados en épocas (por ejemplo, 10s) y calcular una serie de características por época y relacionarlas con las etiquetas que tiene para los datos, puedo ' Ofrecer consejos más específicos sin saber más sobre el conjunto de datos y las etiquetas asociadas.

Espero que esto ayude.

BGreene
fuente
Esa es una respuesta increíble @BGreene, ¡muchas gracias! Las referencias también son muy útiles. Desearía haber hecho esta pregunta hace unos meses. Los sensores se usaron en un cordón alrededor del cuello (no es mi idea), por lo que definitivamente hay mucho movimiento en relación con el cuerpo. Creo que algunas de sus sugerencias pueden ser más adecuadas para futuras investigaciones, pero al menos serán útiles para mi sección de Trabajo Futuro. Y afortunadamente, la parte de reconocimiento no es el problema, tengo una formación bastante sólida en aprendizaje automático, pero gracias por las sugerencias al respecto también.
Junuxx
No hay problema. En ese caso, pensaré que se limitará a examinar los movimientos brutos como un cordón, lo que significa que no puede decir de manera confiable cómo se movía el cuerpo, solo el sensor. Posiblemente podría inferir que los valores de salida del sensor grandes equivalen a grandes movimientos brutos, pero pierde mucho la nitidez de un sensor correctamente colocado.
BGreene
(+1 ayer) Un par de cosas podrían tenerse en cuenta en (1.) arriba. Dado que el límite inferior del rango de frecuencia de interés es bastante pequeño, una alternativa a considerar es simplemente aplicar un filtro de paso bajo y restar la media. En segundo lugar, en lugar de un filtro IIR, se podría considerar un filtro de respuesta de impulso finito de fase lineal en este caso. Digo esto porque sospecho que para predecir gestos usando la señal del acelerómetro multieje, uno querrá mantener el movimiento sincronizado independientemente de la frecuencia. (cont.)
cardenal
(...) La respuesta de fase no lineal de un filtro IIR desplazará diferentes componentes en diferentes cantidades y este efecto tiende a ser peor cerca de las frecuencias de corte. Como todo es digital, tiene sentido utilizar un filtro FIR de fase lineal. A menudo, uno también tiene un mejor control de la respuesta transitoria. :-)
cardenal
@cardinal eso es todo cierto: he editado mi respuesta anterior. acabo de comprobar mi código: mi algoritmo de acelerómetro más reciente utiliza un filtro Butterworth IIR de fase cero. Aunque prefiero evitar restar la media para segmentos de datos cortos
BGreene