Core
Loading...
Searching...
No Matches
filter.h
Go to the documentation of this file.
1
14#pragma once
15#include <stdint.h>
16#include <stdbool.h>
17
18typedef struct core_filter_s {
19 float *coeffX; // Pointer to coefficient array for inputs. Stored most recent last
20 float *coeffY; // Pointer to coefficient array for outputs. Stored most recent last
21 float *prevX; // Pointer to circular buffer holding previous inputs
22 float *prevY; // Pointer to circular buffer holding previous outputs
23 float val; // Previous saved output
24 uint8_t posX; // Current position in input circular buffer
25 uint8_t posY; // Current position in output circular buffer
26 uint8_t orderX; // How many previous X values to store
27 uint8_t orderY; // How many previous Y values to store
29
36float core_filter_update(float x, core_filter_t *filt);
37
46bool core_filter_rolling_avg_init(uint8_t order, core_filter_t *filt);
47
float core_filter_update(float x, core_filter_t *filt)
Get an output value from the filter. This is the primary function being called.
Definition filter.c:9
bool core_filter_rolling_avg_init(uint8_t order, core_filter_t *filt)
Initialize a rolling average. This will apply an even coefficient across the last (order) inputs to t...
Definition filter.c:35
bool core_filter_exp_lowpass_init(float a, core_filter_t *filt)
Initialize an exponential lowpass filter.
Definition filter.c:55
Definition filter.h:18