Infuse-IoT SDK API 0.0.1
A Scalable Open Source RTOS
Loading...
Searching...
No Matches
filter APIs

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.
 

Detailed Description

filter API

Function Documentation

◆ iir_filter_alpha_init()

static uint32_t iir_filter_alpha_init ( float alpha)
inlinestatic

#include <infuse/math/filter.h>

Convert a filter alpha to a form compatible with IIR filters.

Parameters
alphaFilter alpha value, between 0.0f and 1.0f exclusive.
Returns
uint32_t alpha value suitable for IIR filters

◆ iir_filter_single_pole_f32_init()

static void iir_filter_single_pole_f32_init ( struct iir_filter_single_pole_f32 * filter,
float alpha,
float initial )
inlinestatic

#include <infuse/math/filter.h>

Initialise the float IIR single-pole filter.

Parameters
filterFilter state
alphaFilter time constant
initialInitial value for filter output

◆ iir_filter_single_pole_f32_step()

static float iir_filter_single_pole_f32_step ( struct iir_filter_single_pole_f32 * filter,
float x )
inlinestatic

#include <infuse/math/filter.h>

Run the filter for one step.

Parameters
filterFilter state
xFilter input value
Returns
float Output value of the filter

◆ iir_filter_single_pole_s16_init()

static void iir_filter_single_pole_s16_init ( struct iir_filter_single_pole_s16 * filter,
uint32_t alpha,
int16_t initial )
inlinestatic

#include <infuse/math/filter.h>

Initialise the integer IIR single-pole filter.

Note
Use iir_filter_alpha_init to initialise alpha from a float
Parameters
filterFilter state
alphaFilter time constant (α=1−e^(−Δt/RC)), 0-1 scaled by (1 << 32)
initialInitial value for filter output

◆ iir_filter_single_pole_s16_step()

static int16_t iir_filter_single_pole_s16_step ( struct iir_filter_single_pole_s16 * filter,
int16_t x )
inlinestatic

#include <infuse/math/filter.h>

Run the filter for one step.

Parameters
filterFilter state
xFilter input value
Returns
int32_t Output value of the filter

◆ iir_filter_single_pole_s32_init()

static void iir_filter_single_pole_s32_init ( struct iir_filter_single_pole_s32 * filter,
uint32_t alpha,
int32_t initial )
inlinestatic

#include <infuse/math/filter.h>

Initialise the integer IIR single-pole filter.

Note
Use iir_filter_alpha_init to initialise alpha from a float
Parameters
filterFilter state
alphaFilter time constant (α=1−e^(−Δt/RC)), 0-1 scaled by (1 << 32)
initialInitial value for filter output

◆ iir_filter_single_pole_s32_step()

static int32_t iir_filter_single_pole_s32_step ( struct iir_filter_single_pole_s32 * filter,
int32_t x )
inlinestatic

#include <infuse/math/filter.h>

Run the filter for one step.

Parameters
filterFilter state
xFilter input value
Returns
int32_t Output value of the filter