저역 통과 필터를 사용하여이를 디지털 방식으로 필터링 할 수 있습니다.
int valueFilt = (1-0.99)*value + 0.99*valueFilt;
차단 주파수를 변경하려면 0.99를 변경하십시오 (1.0에 가까울수록 낮은 주파수). 해당 값의 실제 표현은 exp (-2 * pi * f / fs)입니다. 여기서 f는 원하는 컷오프 주파수이고 fs는 데이터가 샘플링되는 주파수입니다.
"디지털 필터"의 다른 유형은 이벤트 필터입니다. 특이 치가있는 데이터에서 잘 작동합니다. 예를 들어 9,9,8,10,9,25,9. 이벤트 필터는 가장 빈번한 값을 반환합니다. 통계적으로 이것은 모드입니다.
평균, 모드 등과 같은 통계 평균은 Arduino Average Library를 사용하여 계산할 수 있습니다 .
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);
}