저주파 통과 필터 (Low-Pass Filter)

✔ 저주파 신호는 통과시키고 고주파 신호는 걸러내는 필터

✔ 대게 노이즈가 고주파 성분일 때 노이즈 제거용으로 사용

✔ 특정 수식의 필터를 지칭하는 고유 명사가 아니라 저주파만 통과시키는 특성을 가진 모든 필터를 총칭

✔ Low-Pass Filter 중 비교적 간단한 1차 Low-Pass Filter를 다루어보자

이동 평균 필터의 한계

위 식을 보면, 모든 데이터에 동일한 가중치()를 부여함

  • 일반적으로 시간에 따른 변화가 있는 데이터는 가장 최근에 있는 데이터가 가장 중요하다고 볼 수 있음
  • 따라서 이동 평균 필터는 변화가 심한 신호에 적용하기 어렵다

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


저주파통과필터lpf상태추정