Infuse-IoT SDK API 0.0.1
A Scalable Open Source RTOS
|
filter API More...
Data Structures | |
struct | iir_filter_single_pole_s16 |
Signed 16-bit IIR single-pole filter with fraction saving. More... | |
struct | iir_filter_single_pole_s32 |
Signed 32-bit IIR single-pole filter with fraction saving. More... | |
struct | iir_filter_single_pole_f32 |
Floating point IIR single-pole filter. More... | |
Functions | |
static uint32_t | iir_filter_alpha_init (float alpha) |
Convert a filter alpha to a form compatible with IIR filters. | |
static void | iir_filter_single_pole_s16_init (struct iir_filter_single_pole_s16 *filter, uint32_t alpha, int16_t initial) |
Initialise the integer IIR single-pole filter. | |
static int16_t | iir_filter_single_pole_s16_step (struct iir_filter_single_pole_s16 *filter, int16_t x) |
Run the filter for one step. | |
static void | iir_filter_single_pole_s32_init (struct iir_filter_single_pole_s32 *filter, uint32_t alpha, int32_t initial) |
Initialise the integer IIR single-pole filter. | |
static int32_t | iir_filter_single_pole_s32_step (struct iir_filter_single_pole_s32 *filter, int32_t x) |
Run the filter for one step. | |
static void | iir_filter_single_pole_f32_init (struct iir_filter_single_pole_f32 *filter, float alpha, float initial) |
Initialise the float IIR single-pole filter. | |
static float | iir_filter_single_pole_f32_step (struct iir_filter_single_pole_f32 *filter, float x) |
Run the filter for one step. | |
filter API
|
inlinestatic |
#include <infuse/math/filter.h>
Convert a filter alpha to a form compatible with IIR filters.
alpha | Filter alpha value, between 0.0f and 1.0f exclusive. |
|
inlinestatic |
#include <infuse/math/filter.h>
Initialise the float IIR single-pole filter.
filter | Filter state |
alpha | Filter time constant |
initial | Initial value for filter output |
|
inlinestatic |
#include <infuse/math/filter.h>
Run the filter for one step.
filter | Filter state |
x | Filter input value |
|
inlinestatic |
#include <infuse/math/filter.h>
Initialise the integer IIR single-pole filter.
filter | Filter state |
alpha | Filter time constant (α=1−e^(−Δt/RC)), 0-1 scaled by (1 << 32) |
initial | Initial value for filter output |
|
inlinestatic |
#include <infuse/math/filter.h>
Run the filter for one step.
filter | Filter state |
x | Filter input value |
|
inlinestatic |
#include <infuse/math/filter.h>
Initialise the integer IIR single-pole filter.
filter | Filter state |
alpha | Filter time constant (α=1−e^(−Δt/RC)), 0-1 scaled by (1 << 32) |
initial | Initial value for filter output |
|
inlinestatic |
#include <infuse/math/filter.h>
Run the filter for one step.
filter | Filter state |
x | Filter input value |