본문 바로가기
전자/신호 및 시스템

이동평균필터 프로그램 코드

by Begi 2020. 5. 10.
반응형

대표적인 FIR 필터인 이동 평균 (Moving Average, MA) 필터는 다음과 같다.

 

정수형 변수를 사용하여 위 식을 그대로 코딩하면 N으로 나눌 때 오차가 발생하고 그 오차가 누적된다. 이동 평균을 실제로 코딩할 때는 다음과 같이 s를 사용하여 나누기 연산을 제거한다.

 

여기서 s는 다음과 같다.

 

C로 나타낸 MA 필터는 다음과 같다.

 

 s = s + input;
 s = s - buf[buf_idx];
 buf[buf_idx] = input;
 buf_idx++;
 if(buf_idx>=500) buf_idx = 0;
 output = s / 500;

 

MA 필터는 메모리를 많이 사용하는 단점이 있지만 IIR 필터에 비해 동작이 확실하고 디버깅을 아주 쉽게 할 수 있다. 메모리의 여유가 있다면 MA 필터를 사용하는 것이 IIR 필터에 비해 훨씬 좋다.

 

반응형

'전자 > 신호 및 시스템' 카테고리의 다른 글

디지털 필터 응답특성 구하기  (0) 2020.11.18
3dB 의미  (0) 2020.11.17
정수형 변수를 사용하여 IIR 필터 구현하기  (0) 2020.05.10
디지털 신호 처리  (0) 2019.06.20
FIR 필터와 IIR 필터의 차이  (0) 2019.04.16

댓글