A lightweight and flexible FIR (Finite Impulse Response) filter library for microcontrollers, with support for signal filtering and derivative calculation (instantaneous and average). Designed for real-time data acquisition applications such as sensor smoothing and signal analysis.
- Circular FIR filtering with customizable coefficients
- Automatic time unit conversion (seconds, milliseconds, microseconds)
- Instantaneous derivative calculation using timestamps
- Average derivative calculation
- Compatible with both
floatanddoubletypes - Ready-to-use on Arduino and PlatformIO
The example files are written to be visualized using the Teleplot extension in VSCode. If you don't use this extension, the data printed to the serial monitor will not make much sense as displayed.
See examples in the repository folder or run on microcontroller
See: examples/how_to_use.ino
Basic demonstration of filter configuration and usage.
See: examples/filter_data_from_sensor.ino
Use case where noisy temperature data is filtered using a low-pass FIR filter.
See: examples/calculate_vertical_speed.ino
Computes the derivative of aircraft altitude using filtered or raw data.
See: examples/signals_example_with_post_multiplication.ino
Demonstrates how the filter reacts to sine/triangle waves and how the output changes depending on the coefficients.




