Hummingbird Flight Software
Flight software for the Hummingbird FCU quadcopter flight controller. Designed to run on the Teensy 4.1. Developed with VSCode+PlatformIO.
median_filter.h
Go to the documentation of this file.
1 // ----------------------------------------------------------------------------
2 // MEDAIN FILTER
3 //
4 // Author: Michael Wrona
5 // Created: 08 July 2020
6 // ----------------------------------------------------------------------------
11 #pragma once
12 
13 #include <Arduino.h>
14 #include "hummingbird_config.h"
15 
16 constexpr size_t MEDAINFILT_MAX_POINTS = 20; // Max. number of points to store for filter
17 
19 {
20 public:
21  MedianFilter(size_t windowWidth = 3);
22  MedianFilter(size_t windowWidth, float initVal);
23  ~MedianFilter();
24  void Fill(float val);
25  size_t GetWindowWidth();
26  float Filter(float newPoint);
27  // float* GetWindow();
28 
29 private:
30  size_t N;
31  size_t insertIndex;
32  float *dataPoints; // Pointer to the array, created with 'new'
33 };
Definition: median_filter.h:19
float Filter(float newPoint)
Add point to median filter and return filtered value.
Definition: median_filter.cpp:94
~MedianFilter()
Return pointer to median filter past values/window.
Definition: median_filter.cpp:143
size_t insertIndex
Definition: median_filter.h:31
size_t N
Definition: median_filter.h:30
size_t GetWindowWidth()
Return median filter window width.
Definition: median_filter.cpp:123
void Fill(float val)
Fill median filter array with a certain value.
Definition: median_filter.cpp:76
MedianFilter(size_t windowWidth=3)
A simple median filter implementation.
Definition: median_filter.cpp:28
float * dataPoints
Definition: median_filter.h:32
constexpr size_t MEDAINFILT_MAX_POINTS
A simple median filter implementation.
Definition: median_filter.h:16