칼만 필터란 잡음이 포함된 측정치를 바탕으로 선형 역학계의 상태를 추정하는 재귀 필터이다. 칼만 필터는 예측과 업데이트의 두 단계로 이루어진다. 예측 단계에서는 현재 상태 변수의 값과 정확도를 예측한다. 현재 상태 변수의 값이 실제로 측정된 이후, 업데이트 단계에서는 이전에 추정한 상태 변수를 기반으로 예측한 측정치와 실제 측정치의 차이를 반영해 현재의 상태 변수를 업데이트한다. 이러한 칼만 필터는 선형 시스템에 대해서 동작하며 비선형 시스템을 위한 확장 칼만 필터도 존재한다. 칼만 필터는 물체의 측정값에 확률적인 오차가 포함되고, 또한 물체의 특정 시점에서의 상태가 이전 시점의 상태와 선형적인 관계를 가지고 있는 경우 적용이 가능하다.
예를 들기 위해 우선, 공간 상태 모델 를 다음과 같이 설정하자.
여기서 은 거리, 는 속도이다. 또한 우리가 선형 시스템을 관측함으로써 얻는 값들은 이산적이므로 샘플링 시간을 , k 번째 관측값을 아래 첨자 로 표기한다.
에 노이즈가 없다면, 위와 같이 단순한 모델을 통해 상태를 예측할 수도 있다. 하지만 실제로는 측정값에 노이즈가 포함되어 있어 측정값의 진치를 알 수 없기 때문에 이러한 불확실한 측정을 통해 진짜 값을 추정할 수 밖에 없다. 칼만 필터에서는 예측 단계에서 발생하는 노이즈가 가우시안 분포를 따른다고 가정하고 노이즈 를 다음과 같이 도입하였다.
여기서 는 의 분산이다.
1. 상태 공분산 행렬
칼만 필터는 추정치의 분산을 최소화하는 방향으로 동작한다. 상태 모델 는 선형 시스템이므로 예측 오차를 아래 식과 같이 나타내며 (-)는 관측 이전의 값, (+)는 관측 이후의 값이다.
행렬 의 분산은 아래와 같이 오차 e의 공분산 행렬의 기댓값(E)을 통해 나타낼 수 있다.
위 두 식을 통해 추정치의 사전 상태 공분산 행렬 를 다음과 같이 나타낼 수 있다. 추정치에 대한 값이기 때문에 (-)를 사용하여 나타내었다.
여기서 는 측정 과정에서 발생하는 무작위적인 오차이므로 계측값과 상관이 없는, 독립적인 값이므로 기댓값의 계산에는 영향을 주지 않는다. 따라서 위 식을 다음과 같이 정리할 수 있다.
따라서 는 이전 시점에서의 공분산 행렬 에 모델 을 적용한 뒤, 를 더해준 형태로 나타낼 수 있다.
2. 칼만 이득 계산
관측 모델은 센서를 통해 측정된 신호의 실측값을 설명하기 위한 모델로 측정값 를 다음과 같이 진치 에 선형 변환 와 노이즈 가 적용된 형태로 표현할 수 있다. 여기서 는 측정 신호의 왜곡을 나타낸다.
칼만 이득은 관측치를 통해 예측치와 실측치를 각각 얼마나 반영할 것 인지를 나타내기 위한 값으로 다음과 같은 식을 통해 얻을 수 있다.
이때 측정기의 왜곡이 없다고 가정하면 는 단위 행렬이므로 다음과 같이 알파 베타 함수의 형태로 나타낼 수 있다,
관측 이후의 상태 공분산 행렬 는 다음과 같이 나타낼 수 있다.
위에서 와 를 구했으므로 이를 대입해보면
오차 공분산 행렬 의 크기를 최소화하는 칼만 이득 를 추정하기 위해서는 를 에 대해 미분하여 0이 되는 지점을 찾으면 된다.
따라서 는 다음과 같이 쓸 수 있다.
일반적으로 예측 모델의 성능이 더 높기 때문에 인 경우가 많다. 가 크다는 것은 관측 모델의 오차가 예측 모델에 비해 크다는 것을 의미하기 때문에 칼만 이득이 작아지고 사후 추정치 를 구할 때 추정치 의 영향이 커지게 된다.