pub fn moving_average_filter( samples: &[f64], window_size: usize, ) -> Result<Vec<f64>, FilterError>