칼만 필터: 로우패스 필터와 뭐가 다른가
센서 값에서 노이즈를 빼고 싶다. 로우패스 필터를 걸면 된다. 그런데 칼만 필터도 결국 노이즈를 줄이는 필터다. 뭐가 다른가?
로우패스 필터
고주파 노이즈를 제거한다. 구현이 간단하고 연산이 가볍다.
// 1차 로우패스 (EWMA)
filtered = alpha * measured + (1 - alpha) * filtered;
alpha가 작으면 스무딩이 강해지고, 크면 반응이 빨라진다. 문제는 이 값이 고정이라는 것이다. 노이즈가 심할 때와 약할 때 같은 가중치를 쓴다. 그리고 스무딩을 강하게 걸면 반응이 느려진다(위상 지연).
충분한 경우: 센서 하나, 노이즈 수준이 일정, 반응 지연이 허용되는 상황. 온도 센서 스무딩 같은 경우.
칼만 필터
로우패스 필터와 같은 일을 하지만, 가중치를 자동으로 조절한다.
핵심 아이디어: “시스템 모델의 예측값”과 “센서 측정값” 두 개를 가중 평균한다. 어느 쪽이 더 불확실한지에 따라 가중치가 바뀐다.
추정값 = 예측값 × (1 - K) + 측정값 × K
K가 칼만 게인이다. 로우패스 필터의 alpha와 같은 역할이지만, 고정값이 아니라 매 스텝마다 불확실성을 계산해서 결정한다.
- 측정 노이즈가 크면 → K가 작아짐 → 예측값을 더 믿음
- 예측 불확실성이 크면 → K가 커짐 → 측정값을 더 믿음
정상 상태에 수렴하면 K가 고정되고, 이때 수학적으로 특정 차단 주파수의 로우패스 필터와 동일해진다.
두 단계
1. Predict (예측)
x_pred = A * x_prev ← 시스템 모델로 다음 상태 예측
P_pred = A * P * A' + Q ← 예측 불확실성 증가
2. Update (보정)
K = P_pred / (P_pred + R) ← 칼만 게인 계산
x = x_pred + K * (z - x_pred) ← 측정값으로 보정
P = (1 - K) * P_pred ← 불확실성 감소
A: 시스템 모델 (다음 상태 = 현재 상태 × A)Q: 프로세스 노이즈 (모델이 얼마나 부정확한가)R: 측정 노이즈 (센서가 얼마나 부정확한가)P: 추정 불확실성 (공분산)
로우패스 필터로 안 되는 경우
1. 센서 퓨전
IMU + GPS처럼 서로 다른 센서를 합쳐야 할 때. 로우패스 필터는 센서 하나에 대한 필터다. 칼만 필터는 측정 모델을 확장해서 여러 센서를 하나의 상태 추정에 통합할 수 있다.
2. 시스템 모델이 있을 때
“현재 속도가 10m/s이면 1초 후 위치는 10m 이동”이라는 모델이 있다면, 측정이 잠깐 튀어도 모델 예측이 보정해준다. 로우패스 필터에는 이런 물리적 지식을 넣을 수 없다.
3. 노이즈 수준이 변할 때
GPS 신호가 건물 사이에서 갑자기 나빠지는 경우. 칼만 필터는 불확실성이 커지면 자동으로 측정값을 덜 믿는다. 로우패스 필터는 alpha가 고정이라 대응하지 못한다.
비선형 시스템
기본 칼만 필터는 선형 시스템(x_next = A * x)만 다룬다. 실제 시스템은 비선형인 경우가 많다.
| 필터 | 적용 대상 | 방식 |
|---|---|---|
| KF | 선형 시스템 | 정확한 해 |
| EKF | 약한 비선형 | 야코비안으로 선형 근사 |
| UKF | 강한 비선형 | 시그마 포인트 샘플링 |
임베디드에서는 EKF를 가장 많이 쓴다. UKF는 정확도가 높지만 연산량이 크다.
실무 선택 기준
센서 하나, 노이즈 일정, 지연 허용
→ 로우패스 필터 (EWMA)
센서 여러 개 합쳐야 함
→ 칼만 필터
시스템 모델이 있고, 예측이 가능함
→ 칼만 필터
노이즈 수준이 동적으로 변함
→ 칼만 필터
비선형 시스템
→ EKF 또는 UKF
메모
- 칼만 필터의 성능은 Q와 R 튜닝에 달려있다. Q를 크게 잡으면 측정값을 더 따라가고, R을 크게 잡으면 예측값을 더 따라간다. 정답은 없고 실험으로 맞춘다
- 정상 상태에 수렴한 칼만 필터는 로우패스 필터와 수학적으로 동일하다. 차이는 수렴 전 과도 구간에서 적응적으로 동작한다는 점
- 임베디드에서 float 연산이 부담이면 고정소수점 칼만 필터를 쓰거나, 수렴 후의 K값을 상수로 박아서 쓰기도 한다. 이러면 사실상 로우패스 필터가 된다
- UWB 측위에서 칼만 필터를 쓰면 ToF 노이즈를 줄이면서 이동 모델로 위치를 부드럽게 추적할 수 있다