How to design and implement a digital low-pass filter on an Arduino
Diseño e Implementación de un Filtro Pasa Bajo en Arduino
Introducción al Proyecto
- En este video se abordará el uso de sensores en proyectos de Arduino, destacando la presencia de ruido en las mediciones.
- Se mostrará cómo diseñar e implementar un filtro pasa bajo adecuado para eliminar el ruido.
Creación de Señales Artificiales
- Para probar el filtro, se comenzará creando una señal artificial que consiste en una onda sinusoidal de 2 Hz como componente fundamental.
- Se añadirá una onda sinusoidal de 50 Hz para representar el ruido no deseado.
Transformada Discreta de Fourier (DFT)
- La DFT permite visualizar las señales en el dominio de Fourier, donde cada curva sinusoidal aparece como un pico.
- Se aislarán las señales a 2 Hz y 50 Hz, mostrando cómo se comportan en este dominio.
Implementación del Filtro Pasa Bajo
- Un filtro pasa bajo de primer orden se representa mediante la función de transferencia: ω₀ / (s + ω₀).
- La frecuencia de corte se establece en 5 Hz para preservar la señal a 2 Hz y atenuar la señal a 50 Hz.
Análisis del Comportamiento del Filtro
- Al pasar una señal a 2 Hz por el filtro, esta permanece casi sin cambios; sin embargo, la señal a 50 Hz es significativamente reducida.
- El gráfico Bode muestra cómo varía la magnitud según la frecuencia. A 5 Hz, hay una atenuación del 50% y a frecuencias más altas, como 500 Hz, solo queda el 1% del signal original.
Retardo y Efectos del Filtro
- La segunda parte del gráfico Bode ilustra el retardo introducido por el filtro. A frecuencias bajas hay poco retardo; sin embargo, aumenta con frecuencias más altas.
Preparativos para Implementación en Arduino
- La forma continua de la función de transferencia no es adecuada para procesamiento en tiempo real con Arduino; se requiere realizar cálculos adicionales.
- Se utilizará un script en Python que ya contiene los cálculos necesarios para facilitar la creación del filtro.
Formas Discretas y Ecuaciones Diferenciales
- Es necesario obtener la forma discreta de la función transferente debido al procesamiento digital que ocurre en tiempo discreto.
Construcción y Prueba del Filtro
- La ecuación diferencial depende tanto de la señal filtrada (y_n), como también de las señales crudas (x_n).
Resultados Finales
- El resultado muestra que el filtro elimina mayormente los componentes altos mientras preserva los bajos; aunque hay cierta atenuación y un pequeño retardo presente.
Limitaciones y Ajustes Necesarios
¿Cómo funciona un filtro Butterworth de paso bajo?
Ajuste de la frecuencia de corte y señal de prueba
- Se cambia la frecuencia de corte en el script a 30 Hz para preservar señales entre 0 y 20 Hz.
- El espectro de potencia muestra la señal de prueba, y se genera la función de transferencia continua del filtro, junto con su diagrama Bode.
- Se explica que el filtro pasa bajo tiene una banda de transición amplia, donde las señales no son completamente eliminadas ni preservadas.
Comprendiendo las bandas del filtro
- La banda pasante es donde el filtro mantiene la señal; para este caso, es entre 0 y 2 Hz.
- En un mundo ideal, un filtro pasa bajo eliminaría perfectamente todas las señales por encima de los 5 Hz sin banda de transición.
- Un filtro Butterworth de segundo orden ofrece mayor atenuación y una banda de transición más pequeña en comparación con uno de primer orden.
Implementación del Filtro Butterworth
- Aumentar el orden del filtro a 50 hace que su respuesta sea muy cercana a un filtro pasa bajo perfecto.
- La función de transferencia del filtro Butterworth se basa en un polinomio cuyo denominador es del orden n.
- Se utiliza Python para calcular los coeficientes necesarios para definir la función continua del filtro.
Comparativa entre filtros
- Al implementar el segundo orden Butterworth, se observa que retiene mejor componentes bajas frecuencias mientras atenúa más las altas.
- Sin embargo, esto introduce más retraso en la señal filtrada comparado con el primer orden.
Análisis del retraso en filtros
- El gráfico Bode muestra que hay poco retraso en el primer orden pero aumenta significativamente al usar filtros de órdenes superiores.
- Un cuarto orden puede tener hasta 45 grados de retraso dentro de la banda pasante; esto significa que la señal filtrada puede estar desfasada considerablemente.
Consideraciones finales sobre diseño
- Es crucial equilibrar las características de atenuación y el retraso al diseñar filtros pasa bajos.
- Los filtros Butterworth no son los únicos disponibles; explorar otras opciones puede ser beneficioso dependiendo del proyecto específico.