¿Técnicas de procesamiento de señal para una señal de acelerómetro?

7

Estoy ejecutando algunas pruebas donde estoy registrando mediciones del acelerómetro. Estoy buscando utilizar elementos de procesamiento de señal en esta señal, pero no estoy seguro de dónde comenzar o cuál debería ser mi enfoque.

Mi objetivo final es poder monitorear las lecturas de aceleración en tiempo real y luego mostrar una notificación cuando eventocurra. Como puede ver alrededor del tiempo de muestra de 150,000, eventocurre un .

  • Si estoy monitoreando estos datos en tiempo real, ¿qué tipo de técnicas de procesamiento de señales podrían implementarse para reaccionar ante este evento?
  • ¿Sería una opción la Transformada de Fourier a corto plazo (STFT)?

Estoy monitoreando mis datos en Python, y tienen una función STFT decente .

Los argumentos de esta función son los siguientes:

scipy.signal.stft (x, fs = 1.0, window = 'hann', nperseg = 256, noverlap = None, nfft = None, 
detrend = False, return_onesided = True, límite = 'ceros', acolchado = True, eje = -1)
  • ¿Cómo determino los parámetros óptimos para procesar esta señal?

  • ¿Hay algún otro método que la gente piense que puede ayudarme a identificar cuándo eventocurre en tiempo real (en lugar de simplemente usar la magnitud de la aceleración)?

https://dsp.stackexchange.com/users ingrese la descripción de la imagen aquí

EDITAR 1:

Mi STFT se ha agregado anteriormente.

Gary
fuente

Respuestas:

5

Me pregunto por qué aparece el STFT. Para mí, ¿un simple umbral en la señal misma o en su envolvente no funcionaría mejor / igual de bien, después de eliminar el gdesplazamiento?

Una vez que decida qué "medida" es la mejor para detectar su event, puede aplicar el trabajo de Basseville y Nikiforov, que respondí aquí.

La referencia clásica para ese problema es la detección de cambios abruptos: teoría y aplicación por Basseville y Nikiforov. Todo el libro está disponible como descarga en PDF .

Mi recomendación es que lea el Capítulo 2.2 sobre el algoritmo CUSUM (suma acumulativa).

Peter K.
fuente
¡Gracias por tu comentario! Agregué una foto de la salida STFT arriba. Ahora, simplemente ejecuté la función STFT sin pensar mucho en los parámetros de la función. Mi aceleración se está recolectando a una frecuencia de muestreo de 500 Hz. ¿Puedo usar eso para ayudar en mis métodos?
Gary
2
@ Gary Gracias por agregar la trama. Estoy mirando las adiciones de alta frecuencia que aparecen, pero sigo pensando que el aumento de amplitud parece más fácil de detectar, siempre que capture todas las versiones de usted eventque desea detectar. Vea la respuesta de Fat32 para un ejemplo de lo que estoy hablando.
Peter K.
Hola Peter, ¿cómo interpretas la trama STFT y la expresas en términos simples? Mi frecuencia está en el eje y y el tiempo está en el eje x. Entonces, ¿qué puedo decir sobre la frecuencia que está ocurriendo en la marca de tiempo 2.0?
Gary
@ Gary: Hay dos cosas para mí: a) la aparición de contenido armónico (subarmónicos al pico principal antes de ese momento) yb) un poco de ruido de alta frecuencia no armónico generalizado. Me gustaría tratar de filtrar ese contenido de alta frecuencia y usarlo para ver si ayudó a identificarlo event.
Peter K.
El STFT se te ocurre porque te permite desarrollar un receptor CFAR cuando el fondo tiene tonos de estado estable
5

Si este gráfico representa el escenario de aplicación más típico, entonces buscaría una estimación simple de la varianza de la ventana corta y luego realizaría el umbral;

σx2=1Nn=0N1xac[n]2

Donde es la señal de entrada de CC eliminada; es decir, donde es el valor DC (medio) de la entrada que puede ser localmente estimado por También puede usar un filtro de muesca de bloqueo de CC para eliminar cualquier acumulación de CC arriba en lugar de estimarlo.xac[n]xac[n]=x[n]x¯[n]x¯[n]x[n]

X¯[norte]=1nortenorte=0 0norte-1X[norte]

Seleccione un tamaño de ventana suficientemente pequeño y apropiado para su aplicación. Puede realizar la decisión del evento basándose en una comparación de la desviación estándar (raíz cuadrada de esta estimación de varianza calculada) con un umbral seleccionado correctamente.norte

Esto se calculará fácilmente en tiempo real con mucha menos carga computacional en comparación con un análisis de dominio de frecuencia. Tenga en cuenta que en la aplicación en tiempo real, sus índices de suma deben ir hacia atrás desde la muestra actual (en lugar de las fórmulas anteriores que usan una suma no causal)

Como segunda alternativa eficiente, también podría implementar una detección de envolvente de dominio de tiempo (seguida de un umbral) para activar el evento.

Grasa32
fuente
" Variación de ventana corta " es correcta, es decir, en su fórmula debería significar realmente . O, más o menos de manera equivalente, la señal podría filtrarse de paso alto antes de seguir procesándose. X[norte]X[norte]-X¯
Leftaroundabout
@leftaroundabout ¿Cuál es el mejor método para determinar la frecuencia de corte para construir mi HPF?
Gary
@leftaroundabout el párrafo debajo de la fórmula en realidad dice eso, pero creo que está perdido en el verbose. Entonces parece que tengo que dejarlo claro.
Fat32
@ Gary, ¿qué HPF es eso? donde lo usarás
Fat32
@ Fat32 Lo siento, acabo de leer tu comentario editado. Me gusta su sugerencia para la detección de envolvente de dominio de tiempo. Investigaré esta opción.
Gary