Kalman filter

Written on April 17, 2017

low-pass filter, high-pass filter 등의 보통 필터의 가정은 노이즈의 주파수 영역을 알고 있다는 것이다. 하지만, 노이즈는 모든 주파수 영역을 가지기 때문에 보통의 필터는 노이즈만을 완전히 분리하는데 한계가 있다. 또한 노이즈를 분리하는 과정에서 필연적으로 신호의 손실을 가져오게 된다.

보통의 필터와 달리 칼만 필터는 신호를 생산하는 대상의 동역학 모델을 알고 있다고 가정한다. 대상의 동역학 모델을 안다는 것은 대상의 미래상태를 추정할 수 있다는 것을 의미한다. 이러한 특성에 의해서 칼만필터는 보통의 필터에 비해서 뛰어난 성능을 가지게 된다.

노이즈가 포함된 Linear System Model(LSM)로부터 얻은 참값, $x_k$:

노이즈가 포함되지 않은 LSM으로부터 얻은 사전추정치 $x_{k}^{-}$ :

참값을 측정한 측정치 $y_{k}$ :

우리는 매 시간 대상을 측정함으로써 측정치, $y_k$를 알고 있으며, 동역학적 모델로부터 현재 시스템의 사전추정치, $x_k^-$를 알고 있습니다. 여기서 우리는 $k-1$시간에서 대상의 상태를 알고 있다고 가정한다. 칼만필터가 하는 일은 측정치와 사전추정치로부터 참값에 대한 사후추정치를 정하는 것이다.

우리는 사후추정치는 사전추정치와 참값의 중간의 어떤 지점에 위치한다고 예상할 수 있습니다. 센서값이 매우 정확한 경우, 즉 노이즈의 크기가 작은 경우에는 참값이 센서값에 가까울 것이다. 반면, 노이즈의 크기가 큰 경우에는 센서 값보다는 모델을 이용하여 계산한 사전 추정치가 더 센서 값에 가까울 것이다.

다음의 칼만필터 공식을 보면, 노이즈에 따라 다른 가중치를 가지는 선형보간으로 사후추정치, $x_k^+$를 결정한다.

여기서, $H$가 1인 경우, $K_{gk}$를 가중치로 하는 선형보간식(linear interpolation)이 된다는 것을 알 수 있다. 최적의 $K_{gk}$는 고정되어 있지 않습니다. 노이즈의 크기가 작거나 큰 경우, 대상의 변화속도가 느리거나 빠른 경우에 대해서 $K_{gk}$는 달라질 것이다.

다음으로 해야 하는 것은 칼만필터의 gain, $K_{gk}$ 를 구하는 것이다. 우리가 원하는 것은 시스템의 참값 $x_k$와 사후추정치 $x_k^+$의 차이를 최소로 하는 $K_{gk}$를 정하는 것이다. 여기서, 참값과 센서값에는 노이즈의 영향으로 확률적인 값을 가지게 된다. 그러므로 에러공분산, $E[(x_k-x_k^+)^2]$를 최소로 만드는 $K_{gk}$를 정하고자 한다. 흥미로운 점은, 에러공분산을 최소화시키는 것은 입력, 출력 신호간의 위상의 차이를 최소화시키는 것을 의미한다.

(계속)

Reference

blog article