Ezt digitálisan szűrheti aluláteresztő szűrővel:
int valueFilt = (1-0,99) * érték + 0,99 * valueFilt;
A vágási frekvencia megváltoztatásához változtassa meg a 0,99 értéket (az 1.0-hoz közelebb van az alacsonyabb frekvencia). Ennek az értéknek a tényleges kifejezése az exp (-2 * pi * f / fs), ahol f a kívánt cutoff frekvencia, és fs az a frekvencia, amelyről az adatokat mintavételezik. "egy eseményszűrő. Jól működik azokon az adatokon, amelyeknek kiugró értékei vannak; például. 9,9,8,10,9,25,9. Egy eseményszűrő adja vissza a leggyakoribb értéket. Statisztikailag ez az üzemmód.
Az olyan statisztikai átlagok, mint a Mean, Mode stb., Kiszámolhatók az Arduino Average Library segítségével.
Egy példa az Arduino Library oldal a következőkre hivatkozott:
#include <Average.h> # define CNT 600int d [CNT]; void setup () {Serial.begin (9600);} void loop () {int én; for (i = 0; i<CNT; i ++) {d [i] = véletlenszerű (500); } Soros nyomtatás ("Mean:"); Soros nyomtatás (átlag (d, CNT), DEC); Serial.print ("Mód:"); Soros nyomtatás (mód (d, CNT), DEC); Serial.print ("Max:"); Soros nyomtatás (maximum (d, CNT), DEC); Serial.print ("Min:"); Soros nyomtatás (minimum (d, CNT), DEC); Serial.print ("Szórás:"); Soros nyomtatás (stddev (d, CNT), 4); Soros.println (""); Soros.println (""); késleltetés (5000);}