Pregunta

Quiero filtrar los valores del acelerómetro utilizando una media móvil, ¿cómo se hace esto? Gracias

¿Fue útil?

Solución

A simple, de un solo polo, de paso bajo, filtro IIR recursivo es rápido y fácil de implementar, por ejemplo.

xf = k * xf + (1.0 - k) * x;
yf = k * yf + (1.0 - k) * y;

donde x, y son la materia prima (sin filtrar) X / señales de acelerómetro Y, xf, yf son las señales de salida filtradas, y k determina la constante de tiempo de los filtros (típicamente un valor entre 0,9 y 0,9999 ..., donde un k más grande significa una constante de tiempo más largo).

Se puede determinar empíricamente k, o si conoce su requerido frecuencia de corte, Fc, a continuación, puede utilizar la fórmula:

k = 1 - exp(-2.0 * PI * Fc / Fs)

donde Fs es la frecuencia de muestreo.

Tenga en cuenta que xf, yf son los valores anteriores de la señal de salida en el RHS, y los nuevos valores de salida en la LHS de la expresión anterior.

Tenga en cuenta también que estamos suponiendo aquí que va a muestrear las señales del acelerómetro a intervalos de tiempo regulares, por ejemplo, cada 10 ms. La constante de tiempo será una función tanto de k y de este intervalo de muestreo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top