아두이노에서 구현한 이동평균 필터
전역변수로 boolean firstRun = true;
n 개의 갯수 #define movAvgFillter_data 50 을 선언해주고 실행
float movAvgFillter(float k) { //이동평균필터
float data_stack[movAvgFillter_data]; // 데이터스텍 10개 많으면 오차는 줄어드나 지연이 생김
float preAvg; // 이전에 계산산 평균값
if(firstRun) { // 처음 1회만 실행됨
for(int f = 0; f <movAvgFillter_data ;f++) data_stack[f] = k; // 초기화 첫 입력값으로 전부 입력, 평균이 입력값이 되게함
preAvg = k;
//total = 0;
firstRun = false;
} // 처음 1회만 실행됨
for(int j = 0; j < movAvgFillter_data; j++) data_stack[j] = data_stack[j+1]; // 새로운 값을 박기 위해 한칸식 앞으로
data_stack[movAvgFillter_data-1] = k; // 새로운값을 마지막에 넣음
float total = 0;
for(int f = 0; f <movAvgFillter_data ;f++) total = total + data_stack[f]; // 합계를 구함
return (total/movAvgFillter_data);
}