반응형
대표적인 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 |
댓글