La librería Double EMA Filter implementa un filtro exponencial con doble frecuencia de corte. La librería permite realizar filtrados de paso banda y stop banda. La clase Double EMA Filter emplea templates para permitir funcionar con distintos tipos (int, long, float,…).
Para más información consultar la entrada Filtro de paso banda y stop banda exponencial en Arduino
Manual de uso
Constructor
El filtro Double EMA se instancia a través de su constructor que recibe los parámetros AlphaLow y AlphaHigh, correspondientes a la frecuencia de corte inferior y superior. El orden de los parámetros en el constructor es indiferente, la función asignará correctamente los valores de Alpha en función de su valor.
DoubleEMAFilter<int> doubleEMAFilter(const size_t alpha1, const size_t alpha2);
Usar filtro
// Añadir un nuevo valor al filtro y devolver el valor filtrado Band Pass
doubleEMAFilter.AddValue(value);
//Obtiene el ultimo valor filtrado Band Pass (el mismo que el devuelto al añadir el valor al filtro)
doubleEMAFilter.GetBandPass();
//Obtiene el ultimo valor filtrado Band Stop
doubleEMAFilter.GetBandStop();
Ejemplos
La librería Double EMA Filter incluye los siguientes ejemplos para ilustrar su uso.
- DoubleEMAFilterInt: Ejemplo de filtrado para variables integer.
- DoubleEMAFilterFloat: Ejemplo de filtrado para variables float.
Instalación
- Descargar la última versión desde GitHub
- Descomprimir el archivo
- Copiar en tu carpeta de librerías (normalmente Mis Documentos\Arduino\libraries)
- Relanzar el IDE de Arduino