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);
}
}
'Engineering > C Language' 카테고리의 다른 글
[C언어] 구조체사용하기 (0) | 2014.01.16 |
---|---|
[C언어] 포인터 사용하기-2 (0) | 2014.01.15 |
[C언어] 포인터 사용하기-1 (0) | 2013.11.30 |
[C언어] 기본적인 개념들 (0) | 2013.11.28 |
[본문스크랩] 인텔 헥사 파일(Intel HEXA File)의 구조 (0) | 2012.11.22 |