¿Cómo se utiliza una media móvil para filtrar los valores del acelerómetro en el iPhone OS
-
20-09-2019 - |
Pregunta
Quiero filtrar los valores del acelerómetro utilizando una media móvil, ¿cómo se hace esto? Gracias
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.