Toto můžete digitálně filtrovat pomocí dolní propusti:
int valueFilt = (1-0,99) * value + 0,99 * valueFilt;
Změňte 0,99 pro změnu mezní frekvence (blíže k 1,0 je nižší frekvence). Skutečný výraz pro tuto hodnotu je exp (-2 * pi * f / fs), kde f je požadovaná mezní frekvence a fs je frekvence, na které jsou data vzorkována.
Další typ „digitálního filtru“ "je filtr událostí. Funguje dobře na datech, která mají odlehlé hodnoty; např. 9,9,8,10,9,25,9. Filtr událostí vrací nejčastější hodnotu. Statisticky se jedná o režim.
Statistické průměry, jako je průměr, režim atd., Lze vypočítat pomocí průměrné knihovny Arduino.
Příklad převzatý z stránka Arduino Library uvedená:
#include <Average.h> # define CNT 600int d [CNT]; void setup () {Serial.begin (9600);} void loop () {int i; for (i = 0; i<CNT; i ++) {d [i] = random (500); } Serial.print ("Průměr:"); Sériový tisk (průměr (d, CNT), DEC); Serial.print ("Režim:"); Serial.print (režim (d, CNT), DEC); Serial.print ("Max:"); Serial.print (maximum (d, CNT), DEC); Serial.print ("Min:"); Serial.print (minimum (d, CNT), DEC); Serial.print ("Standardní odchylka:"); Serial.print (stddev (d, CNT), 4); Serial.println (""); Serial.println (""); delay (5000);}