Estoy haciendo algunos cálculos matemáticos en los datos del giroscopio y el acelerómetro combinados y me gustaría pasar el filtro de bajo nivel de los datos resultantes. Entonces, ¿podría alguien publicar un código genérico para un filtro de paso bajo?¿Cómo implementar un filtro LowPass?
Respuesta
Un filtro de paso bajo de 1er orden IIR puede ser de la forma:
output_value = rate * input_value + (1.0 - rate) * previous_output_value;
que es más o menos lo que hay dentro Ejemplo de AccelerometerGraph de Apple. Seleccione el parámetro de velocidad en función de la frecuencia (muy, muy bruscamente, por segundo) que desea atenuar o de atenuar para obtener un resultado más uniforme y la frecuencia de muestreo de los datos de entrada.
Un filtro de paso bajo simplemente suaviza los resultados para eliminar las frecuencias altas. El filtro de paso bajo más simple es un filtro de caja que se hace promediando n muestras juntas.
Para un promedio de 2 muestras juntas esto es tan simple como hacer:
sample[n] (sample[n] + sample[n + 1])/2;
Si el ejemplo de AccelerometerGraph de Apple es demasiado complejo para que lo entienda, creé un ejemplo de acelerómetro más simple para mi clase que puede descargar here. Esto implementa un filtro simple de paso bajo y paso alto para valores de acelerómetro sin formato, luego registra los resultados en la pantalla.
Como hotpaw2 y Goz describir, este utiliza un muy simple media móvil ponderada para el cálculo del filtro:
UIAccelerationValue lowPassFilteredXAcceleration = (currentXAcceleration * kLowPassFilteringFactor) + (previousLowPassFilteredXAcceleration * (1.0 - kLowPassFilteringFactor));
- 1. Cómo implementar un formulario de filtro de búsqueda con Symfony2
- 2. Cómo implementar filtro de paso bajo usando java
- 3. ¿Cómo implementar el sistema de filtro en SQL?
- 4. Cómo borrar un filtro - AngularJS
- 5. No se puede implementar el filtro de contraseña
- 6. ¿Cómo implementar un conjunto?
- 7. Grails: cómo usar createLink en un filtro?
- 8. Cómo aplicar un filtro global en playframework
- 9. Cómo devolver JSON desde un filtro HandleError?
- 10. En IE, ¿cómo elimino un filtro?
- 11. cómo filtrar filas en un filtro complejo
- 12. ¿Cómo redirigir en un filtro de servlet?
- 13. Implementar una colección Scala de manera que un mapa, filtro, etc. producir el tipo correcto
- 14. ¿Cómo implementar un semáforo distribuido?
- 15. ¿Cómo implementar un RepositoryFactory genérico?
- 16. Cómo implementar un modelo singleton
- 17. ¿Cómo implementar un árbol binario?
- 18. ¿Qué es un filtro Jersey?
- 19. Reenviar solicitud de un filtro
- 20. ¿Cómo filtro en un nivel personalizado en log4net?
- 21. ¿Cómo puedo enviar un parámetro a un filtro anterior?
- 22. Creando un filtro de evento
- 23. Sintaxis del filtro de Grails, o, Cómo llamar a un filtro de Grails fuera de Grails
- 24. Cómo omitir un filtro en la cadena de filtro en java
- 25. Creando un NSPredicate para un filtro
- 26. Cómo implementar un WCF NetPeerTcpBinding PeerResolver
- 27. ¿Cómo implementar un sistema macro Lisp?
- 28. ¿Cómo implementar un cambiador de voz?
- 29. Cómo implementar un pliegue lista en Java
- 30. ¿Cómo implementar un algoritmo tipo Digg?
¿Quieres que el código para generar coeficientes o simplemente realizar el filtrado? debería ser un IIR o un filtro FIR? – Guy
Bueno, me gustaría un filtro similar al que Apple usa para filtrar los datos del acelerómetro. Solo su código no funciona para mí. – cgossain
¿de qué manera no funciona? – Guy