Moving Average Filter [이동 평균 필터]


(1) 일부 데이터에 더 많은 비중을 두고 계산을 행한 평균 값.
(2) 시계열의 각 항에 대하여 그것을 중심으로 하는 전후 일정 항 수의 평균값을 연결하여 경향선을 구하는 방법. 이 방법은 이해하기가 쉽고 계산이 쉬운 반면에 항수에 대한 일정한 규칙이 없어 항수에 따라 그 결과가 달라질 수 있으며, 첫 항과 끝 항의 추세값을 계산할 수 없으므로 최근의 추세선을 구하기 어려운 단점이 있다.


초음파센서와 같이 입력받는 데이터의 값이 가끔 일정치 않거나 틱과 같이 값이 튈때 주로 사용합니다.

구현자체가 어렵지 않아서 많은 분들이 사용합니다.



예제)


        float value[20]={0},Av_M=0,Good_value=0; 

unsigned char flag=0,gap=0;


if(flag==0) 

{

for(i=0;i<20;i++)

value[i]=distance_cal1(Read_Adc());

Av_M += value[i];

if(i==19)

Av_M=(Av_M/20); 


}

}


while(flag==1) //피크값 검출

{

Good_value=distance_cal1(Read_Adc());

gap = abs(Av_M - Good_value);

if(gap<369)

{

flag=0; 

}

else

{

flag=1;

}

}flag=1;



for(i=0;i<19;i++)

value[i]=value[i+1];

Av_M += value[i];


if(i==18)

{

value[i+1]=Good_value;

Av_M += Good_value;

Av_M=(Av_M/20);

}

}



+ Recent posts