Crates.io | moving_median |
lib.rs | moving_median |
version | 0.2.0 |
source | src |
created_at | 2024-09-12 20:54:22.791867 |
updated_at | 2024-10-14 21:39:01.903484 |
description | A no-std moving median filter |
homepage | |
repository | https://github.com/1-rafael-1/moving_median |
max_upload_size | |
id | 1373139 |
size | 10,752 |
A simple no-std moving median filter implementation with a fixed-size buffer. The buffer is used to store the last N measurements, where N is the size of the buffer. The median is calculated by sorting the values in the buffer and taking the middle value. If the number of values is even, the median is the average of the two middle values. If the number of values is odd, the median is the middle value.
This implementation supports both f32 and f64 types.
use moving_median::MovingMedian;
let mut filter_f32 = MovingMedian::<f32, 3>::new();
filter_f32.add_value(42.0);
filter_f32.add_value(43.0);
filter_f32.add_value(41.0);
assert_eq!(filter_f32.median(), 42.0);
let mut filter_f64 = MovingMedian::<f64, 3>::new();
filter_f64.add_value(42.0);
filter_f64.add_value(43.0);
filter_f64.add_value(41.0);
assert_eq!(filter_f64.median(), 42.0);