Filtre médian

A statistically robust alternative to the moving-average filter is the median filter. Where a moving average filter takes the arithmetic mean of the input over a moving sample window, a median filter (per the name) takes a median instead.
Le filtre médian est très utile pour supprimer les valeurs aberrantes quelquefois occasionnelles d’un flux d’entrée. Cela le rend particulièrement bien adapté au filtrage des entrées des capteurs de distance, qui sont sujets à des interférences de temps à autre. Contrairement à une moyenne mobile, le filtre médian ne sera pas affecté par un petit nombre de valeurs aberrantes, aussi extrêmes soient-elles.
The median filter is supported in WPILib through the MedianFilter
class (Java, C++, , Python
).
La création de MedianFilter
Note
La classe C++ MedianFilter
est basée sur le type de données utilisé comme entrée.
Note
Étant donné que les filtres ont une «mémoire», chaque flux d’entrée nécessite son propre objet filtre. N’essayez pas d’utiliser le même objet filtre pour plusieurs flux d’entrée.
La création de MedianFilter
est simple:
// Creates a MedianFilter with a window size of 5 samples
MedianFilter filter = new MedianFilter(5);
// Creates a MedianFilter with a window size of 5 samples
frc::MedianFilter<double> filter(5);
from wpimath.filter import MedianFilter
# Creates a MedianFilter with a window size of 5 samples
filter = MedianFilter(5)
L’utilisation de MedianFilter
Une fois votre filtre créé, son utilisation est simple - il suffit d’appeler la méthode calculate()
avec l’entrée la plus récente pour obtenir la sortie filtrée:
// Calculates the next value of the output
filter.calculate(input);
// Calculates the next value of the output
filter.Calculate(input);
# Calculates the next value of the output
filter.calculate(input)