Envorimental Monitoring
Loading...
Searching...
No Matches
filter.h
Go to the documentation of this file.
1
18
19#ifndef INC_FILTER_H_
20#define INC_FILTER_H_
21
22#include "stdint.h"
23
25#define MAX_WINDOW_SIZE 20
26
30typedef struct {
32 uint8_t count;
34
48float filter_sensor_value(Filter_Handle_t *p_filt, float raw_sensor_value,
49 uint8_t window_size);
50
61float calculate_median(float *array, uint8_t array_size);
62
72void bubble_sort(float *array, uint8_t array_size);
73
74#endif /* INC_FILTER_H_ */
#define MAX_WINDOW_SIZE
Maximum number of samples the filter window can hold.
Definition filter.h:25
void bubble_sort(float *array, uint8_t array_size)
Sorts a float array in ascending order using bubble sort.
Definition filter.c:37
float calculate_median(float *array, uint8_t array_size)
Computes the median of a pre-sorted float array.
Definition filter.c:54
float filter_sensor_value(Filter_Handle_t *p_filt, float raw_sensor_value, uint8_t window_size)
Applies a sliding-window median filter to a single raw sample.
Definition filter.c:11
Internal state of one sliding-window median filter instance.
Definition filter.h:30
uint8_t count
Definition filter.h:32
float window[MAX_WINDOW_SIZE]
Definition filter.h:31