คุณสามารถกรองสิ่งนี้ด้วยระบบดิจิตอลโดยใช้ตัวกรองผ่านความถี่ต่ำ:
int valueFilt = (1-0.99)*value + 0.99*valueFilt;
เปลี่ยน 0.99 เพื่อเปลี่ยนความถี่ตัด (ใกล้ถึง 1.0 คือความถี่ต่ำกว่า) การแสดงออกที่แท้จริงสำหรับค่านั้นคือ exp (-2 * pi * f / fs) โดยที่ f คือความถี่ cutoff ที่คุณต้องการและ fs คือความถี่ที่ข้อมูลถูกสุ่มตัวอย่างที่
"ตัวกรองดิจิทัล" ประเภทอื่นคือตัวกรองเหตุการณ์ มันทำงานได้ดีกับข้อมูลที่มีค่าผิดปกติ เช่น 9,9,8,10,9,25,9 ตัวกรองเหตุการณ์คืนค่าบ่อยที่สุด สถิตินี้เป็นโหมด
ค่าเฉลี่ยทางสถิติเช่นค่าเฉลี่ยโหมด ฯลฯ .. สามารถคำนวณได้โดยใช้ห้องสมุดเฉลี่ย Arduino
ตัวอย่างที่นำมาจากหน้า Arduino Library ที่อ้างถึง:
#include <Average.h>
#define CNT 600
int d[CNT];
void setup()
{
Serial.begin(9600);
}
void loop()
{
int i;
for(i=0; i<CNT; i++)
{
d[i] = random(500);
}
Serial.print("Mean: ");
Serial.print(mean(d,CNT),DEC);
Serial.print(" Mode: ");
Serial.print(mode(d,CNT),DEC);
Serial.print(" Max: ");
Serial.print(maximum(d,CNT),DEC);
Serial.print(" Min: ");
Serial.print(minimum(d,CNT),DEC);
Serial.print(" Standard deviation: ");
Serial.print(stddev(d,CNT),4);
Serial.println("");
Serial.println("");
delay(5000);
}