7#ifndef ACCEL_TO_ANGLE_FILTER_EMA_H_
8#define ACCEL_TO_ANGLE_FILTER_EMA_H_
34#define ACCEL_TO_ANGLE_FILTER_EMA_DEFINE(_instance_name, _odr_hz, _tau_s) \
35 BUILD_ASSERT(_odr_hz > 0.0f, \
36 "The output data rate has to be greater than 0"); \
37 BUILD_ASSERT(_tau_s > 0.0f, \
38 "The time constant has to be greater than 0"); \
39 static struct accel_to_angle_ema_ctx _instance_name##_ctx = { \
45 static ACCEL_TO_ANGLE_FILTER_DEFINE( \
47 &_instance_name##_ctx, \
48 filter_ema_data_process_request, \
49 filter_ema_data_clean_request \
void filter_ema_data_process_request(void *ctx, struct accel_to_angle_accel_data *data)
Filter EMA.
void filter_ema_data_clean_request(void *ctx)
Clean up the EMA filter.
Accelerometer data from 3 axes from the sensor.
Definition accel_to_angle.h:70
float alpha
Filter coefficient.
Definition ema.h:77
float odr_hz
Output data rate in Hz.
Definition ema.h:68
struct accel_to_angle_accel_data filtered_data
Filtered accelerometer data.
Definition ema.h:62
float tau_s
Time constant in seconds.
Definition ema.h:74
Context for the EMA filter.
Definition ema.h:60