1차원 칼만 필터 계산기
잡음 섞인 측정값을 하나씩 넣어 칼만 필터의 추정값과 오차분산이 어떻게 수렴하는지 걸음마다 보여줍니다. 칼만 이득이 「측정을 얼마나 믿을지」의 저울이라는 것을 과정잡음·측정잡음을 바꿔 가며 직접 확인할 수 있습니다.
공백이나 쉼표로 나눠 적습니다. 2000개까지.
참값이 걸음마다 얼마나 흔들리는가
재는 기계가 얼마나 엉성한가
측정 10번 뒤의 추정값
9.381818
오차분산은 0.363636입니다. 측정이 쌓일수록 추정이 확실해져 이 값이 줄어듭니다.
걸음마다
| k | 측정 z | 예측 x⁻ | 이득 K | 추정 x | 분산 P |
|---|---|---|---|---|---|
| 1 | 10 | 0 | 0.5000 | 5 | 2 |
| 2 | 12 | 5 | 0.3333 | 7.3333 | 1.3333 |
| 3 | 9 | 7.3333 | 0.2500 | 7.75 | 1 |
| 4 | 11 | 7.75 | 0.2000 | 8.4 | 0.8 |
| 5 | 10.5 | 8.4 | 0.1667 | 8.75 | 0.6667 |
| 6 | 9.5 | 8.75 | 0.1429 | 8.8571 | 0.5714 |
| 7 | 10.2 | 8.8571 | 0.1250 | 9.025 | 0.5 |
| 8 | 8 | 9.025 | 0.1111 | 8.9111 | 0.4444 |
| 9 | 13 | 8.9111 | 0.1000 | 9.32 | 0.4 |
| 10 | 10 | 9.32 | 0.0909 | 9.3818 | 0.3636 |
한 걸음이 두 부분입니다. 예측에서 x⁻ = x, P⁻ = P + Q로 두고, 보정에서 K = P⁻/(P⁻+R)을 구해 x = x⁻ + K(z − x⁻), P = (1−K)·P⁻로 고칩니다. 보정식은 「예측과 측정을 K : (1−K)로 섞는다」와 같은 말입니다.
계산 방법
- 1측정값을 공백이나 쉼표로 나눠 적습니다.
- 2처음 추정값과 그 오차분산을 정합니다.
- 3과정잡음 Q와 측정잡음 R을 정합니다.
- 4걸음마다 칼만 이득과 추정값이 어떻게 변하는지 표에서 봅니다.
- 5Q를 0으로 두고 P₀를 R과 같게 하면 누적 평균과 같아지는 것을 확인합니다.
자주 묻는 질문
잡음 섞인 측정값에서 참값을 어림하는 방법입니다. 한 걸음이 예측과 보정 두 부분으로 되어 있어, 「지금까지의 추정으로 예측한 값」과 「방금 들어온 측정값」을 적당한 비율로 섞습니다. 1960년 루돌프 칼만이 내놓았고 아폴로 계획의 항법에 쓰인 것으로 유명합니다.
예측과 측정을 섞는 비율입니다. 0과 1 사이의 값으로, 1이면 측정을 그대로 믿고 0이면 측정을 아예 무시합니다. 측정잡음 R이 크면 이득이 작아져 예측을 붙들고, 과정잡음 Q가 크면 이득이 커져 측정을 따라갑니다 — 이 저울 하나가 칼만 필터의 전부라고 해도 됩니다.
Q는 과정잡음으로 참값 자체가 걸음마다 얼마나 흔들리는지이고, R은 측정잡음으로 재는 기계가 얼마나 엉성한지입니다. 참값이 고정돼 있다고 보면 Q = 0이고, 참값이 움직이는 것을 좇으려면 Q를 키웁니다.
Q = 0이고 처음 오차분산을 R과 같게 두면 칼만 필터는 누적 평균과 정확히 같은 값을 냅니다. 다른 점은 Q를 키울 수 있다는 것입니다. Q가 크면 오래된 측정의 무게가 저절로 줄어 움직이는 값을 좇을 수 있습니다 — 평균으로는 할 수 없는 일입니다.
측정이 쌓일수록 추정이 확실해지기 때문입니다. 다만 Q > 0이면 매 걸음 예측 단계에서 Q만큼 다시 커지므로, 어떤 값 아래로는 내려가지 않고 정상상태에 머뭅니다. 그 값은 Q와 R로부터 닫힌 식으로 구할 수 있습니다.
예측 분산 p가 p² − Qp − QR = 0을 만족하는 값으로 수렴하고, 이득은 p/(p+R)입니다. 걸음을 충분히 돌리면 실제 이득이 이 값에 붙는 것을 이 도구에서 확인할 수 있습니다. 이득이 상수로 수렴하므로 실무에서는 아예 이 값을 고정해 쓰기도 합니다(정상상태 칼만 필터).
전송되지 않습니다. 계산은 모두 브라우저 안에서 이뤄지고, 입력한 측정값은 이 기기에만 남습니다.
알아두면 좋은 점
- 정답지는 누적 평균입니다. Q = 0이고 처음 오차분산을 R과 같게 두면 걸음마다의 추정값이 (처음 추정 + 측정들)/(개수+1)과 정확히 같아야 합니다. 원리가 겹치지 않는 두 계산이라 서로를 검산합니다.
- P₀가 R과 다르거나 Q > 0이면 평균과 갈라지는 것도 함께 검사합니다. 「언제나 평균과 같다」가 아니라 「이 조건에서만 같다」라는 것이 요점입니다.
- 두 번째 정답지는 정상상태 이득의 닫힌 식입니다. 500걸음을 돌린 실제 이득이 p² − Qp − QR = 0의 양의 근으로 계산한 값과 소수점 여덟 자리까지 같은 것을 네 가지 (Q, R)에서 확인했습니다.
- 칼만 이득이 언제나 0과 1 사이인 것, R이 크면 작아지고 Q가 크면 커지는 것, Q = 0이면 1/(n+1)로 내려가는 것을 검사값으로 고정했습니다.
- 오차분산이 Q = 0일 때 단조롭게 줄고, Q > 0일 때는 정상상태 값 아래로 내려가지 않는 것도 확인합니다.
- 잡음 만들기는 씨앗을 고정한 xorshift와 박스–뮐러 변환을 씁니다. 같은 씨앗이면 같은 측정열이 나오므로 결과를 다시 만들 수 있습니다.
- 이 도구는 상태가 하나뿐인 가장 단순한 꼴(F = 1, H = 1)입니다. 위치와 속도를 함께 추정하는 것 같은 여러 상태 모형은 행렬로 다뤄야 하며 여기서는 다루지 않습니다.
- 측정값은 2,000개까지 다룹니다.
함께 보면 좋은 도구
마지막 검증: 2026년 9월 1일 · 결과는 참고용 추정치입니다.