|
Monado OpenXR Runtime
|
One Euro filter for a 2D float measurement. More...
#include <math/m_filter_one_euro.h>

Public Member Functions | |
| void | m_filter_euro_vec2_init (struct m_filter_euro_vec2 *f, double fc_min, double fc_min_d, double beta) |
| Initialize a 2D filter. More... | |
| void | m_filter_euro_vec2_run (struct m_filter_euro_vec2 *f, uint64_t ts, const struct xrt_vec2 *in_y, struct xrt_vec2 *out_y) |
| Filter a measurement and commit changes to filter state. More... | |
| void | m_filter_euro_vec2_run_no_commit (struct m_filter_euro_vec2 *f, uint64_t ts, const struct xrt_vec2 *in_y, struct xrt_vec2 *out_y) |
| Filter a measurement without committing changes to filter state. More... | |
Data Fields | |
| struct m_filter_one_euro_base | base |
| Base/common data. More... | |
| struct xrt_vec2 | prev_y |
| The most recent measurement, after filtering. More... | |
| struct xrt_vec2 | prev_dy |
| The most recent sample derivative, after filtering. More... | |
One Euro filter for a 2D float measurement.
| void m_filter_euro_vec2_init | ( | struct m_filter_euro_vec2 * | f, |
| double | fc_min, | ||
| double | fc_min_d, | ||
| double | beta | ||
| ) |
Initialize a 2D filter.
| f | self pointer |
| fc_min | Minimum frequency cutoff for filter |
| beta | Beta value for "responsiveness" of filter |
| fc_min_d | Minimum frequency cutoff for derivative filter |
| void m_filter_euro_vec2_run | ( | struct m_filter_euro_vec2 * | f, |
| uint64_t | ts, | ||
| const struct xrt_vec2 * | in_y, | ||
| struct xrt_vec2 * | out_y | ||
| ) |
Filter a measurement and commit changes to filter state.
| [in,out] | f | self pointer |
| ts | measurement timestamp | |
| in_y | raw measurement | |
| [out] | out_y | filtered measurement |
References base, filter_one_euro_compute_alpha_d(), filter_one_euro_handle_first_sample(), prev_dy, prev_y, and U_ZERO.
| void m_filter_euro_vec2_run_no_commit | ( | struct m_filter_euro_vec2 * | f, |
| uint64_t | ts, | ||
| const struct xrt_vec2 * | in_y, | ||
| struct xrt_vec2 * | out_y | ||
| ) |
Filter a measurement without committing changes to filter state.
Similar to m_filter_euro_vec2_run but f is not modified.
| [in] | f | self pointer |
| ts | measurement timestamp | |
| in_y | raw measurement | |
| [out] | out_y | filtered measurement |
References base, filter_one_euro_compute_alpha_d(), and filter_one_euro_handle_first_sample().
| struct m_filter_one_euro_base m_filter_euro_vec2::base |
Base/common data.
Referenced by m_filter_euro_vec2_run(), and m_filter_euro_vec2_run_no_commit().
| struct xrt_vec2 m_filter_euro_vec2::prev_dy |
The most recent sample derivative, after filtering.
Referenced by m_filter_euro_vec2_run().
| struct xrt_vec2 m_filter_euro_vec2::prev_y |
The most recent measurement, after filtering.
Referenced by m_filter_euro_vec2_run().