저주파 통과 필터 (Low-Pass Filter)
✔ 저주파 신호는 통과시키고 고주파 신호는 걸러내는 필터
✔ 대게 노이즈가 고주파 성분일 때 노이즈 제거용으로 사용
✔ 특정 수식의 필터를 지칭하는 고유 명사가 아니라 저주파만 통과시키는 특성을 가진 모든 필터를 총칭
✔ Low-Pass Filter 중 비교적 간단한 1차 Low-Pass Filter를 다루어보자
이동 평균 필터의 한계
- 2. 이동 평균 필터(Moving Average Filter) 또한 LPF의 일종
- 이동 평균 필터의 수식을 보면,
위 식을 보면, 모든 데이터에 동일한 가중치()를 부여함
- 일반적으로 시간에 따른 변화가 있는 데이터는 가장 최근에 있는 데이터가 가장 중요하다고 볼 수 있음
- 따라서 이동 평균 필터는 변화가 심한 신호에 적용하기 어렵다
1차 저주파 통과 필터 (1st order Low-Pass Filter)
1차 저주파 통과 필터식 전개
- 최근 측정값에는 높은 가중치를 주고, 오래된 값일수록 가중치를 낮게 주어보자
- 1차 저주파 통과 필터 식 ( 는 추정 값, estimated value)
- 위의 식이 이동 평균 필터의 단점을 보완하는지 보면,
범위를 가질 때, 가 성립
- 따라서, 최근 측정값()이 이전 측정값() 보다 더 큰 가중치를 가지고 있음
- 에 대해서도 전개해보면,
다음을 만족함
⇒최근 값과 멀어질수록 값이 기하급수적으로 작아진다
⇒ 지수 가중 이동 평균 필터 라고도 함
알파값
- 값에 따라 성능이 좋아질수도 나빠질수도 있음
- 이동 평균 필터의 데이터 개수 과 유사함
- 값이 작으면 노이즈는 많지만 변화에 민감하다 (현재 데이터의 가중치가 높아짐 → 변화하는 데이터를 적극 반영)
- 값이 크면 노이즈에는 강하지만 변화에 둔감하다 (현재 데이터의 가중치가 낮음 → 변화하는 데이터를 덜 반영)
1차 저주파 통과 필터 코드
class LPF:
# 이전 스텝의 예측값
prevX = 0
# 측정값 x와 상수 알파를 입력 받아 low pass filter를 수행합니다.
def lpf(self, x, alpha):
# low pass filter
x_lpf = alpha * self.prevX + (1 - alpha)*x
# 이전 스텝 값 갱신
self.prevX = x_lpf
return x_lpf
정리
- 1차 저주파 통과 필터는 매우 단순하며 시간에 따라 변화하는 데이터에서 이동 평균 필터에 비해 좋은 성능
- 변화 추이를 이동 평균 필터보다 더 잘 감지함
참고
Prev: 2. 이동 평균 필터(Moving Average Filter)
Next: 4. Localization과 Tracking