You are on page 1of 7

Extended Kalman Filter Tutorial

Gabriel A. Terejanu Department of Computer Science and Engineering University at Bualo, Bualo, NY 14260

Dynamic process

Consider the following nonlinear system, described by the dierence equation and the observation model with additive noise: xk = f(xk1 ) + wk1 zk = h(xk ) + vk (1) (2)

The initial state x0 is a random vector with known mean 0 = E[x0 ] and covariance P0 = E[(x0 0 )(x0 0 )T ]. In the following we assume that the random vector wk captures uncertainties in the model and vk denotes the measurement noise. Both are temporally uncorrelated (white noise), zero-mean random sequences with known covariances and both of them are uncorrelated with the initial state x0 . E[wk ] = 0 E[vk ] = 0 E[wk wT ] = Qk k E[vk vT ] = Rk k E[wk wT ] = 0 for k = j j E[vk vT ] = 0 for k = j j E[wk xT ] = 0 for all k 0 E[vk xT ] = 0 for all k 0 (3) (4)

Also the two random vectors wk and vk are uncorrelated: E[wk vT ] = 0 for all k and j j (5)

Vectorial functions f() and h() are assumed to be C 1 functions (the function and its rst derivative are continuous on the given domain). Dimension and description of variables: xk wk zk vk f() h() Qk n1 n1 m1 m1 n1 m1 nn State vector Process noise vector Observation vector Measurement noise vector Process nonlinear vector function Observation nonlinear vector function Process noise covariance matrix

Rk m m Measurement noise covariance matrix

EKF derivation

Assuming the nonlinearities in the dynamic and the observation model are smooth, we can expand f(xk ) and h(xk ) in Taylor Series and approximate this way the forecast and the next estimate of xk . Model Forecast Step Initially, since the only available information is the mean, 0 , and the covariance, P0 , of the initial state then the initial optimal estimate xa and error covariance is: 0 xa = 0 = E[x0 ] 0 P0 = E[(x0 xa )(x0 0 xa )T ] 0 (6) (7)

Assume now that we have an optimal estimate xa E[xk1 |Zk1 ] with Pk1 covariance at time k1 k 1. The predictable part of xk is given by: xf k E[xk |Zk1 ] = E[f(xk1 ) + wk1 |Zk1 ] = E[f(xk1 )|Zk1 ] Expanding f() in Taylor Series about xa we get: k1 f(xk1 ) f(xa ) + Jf (xa )(xk1 xa ) + H.O.T. k1 k1 k1 (9) (8)

where Jf is the Jacobian of f() and the higher order terms (H.O.T.) are considered negligible. Hence, the Extended Kalman Filter is also called the First-Order Filter. The Jacobian is dened as: f1 f1 f1 x1 x2 xn . . .. . . Jf (10) . . .
fn x1 fn x2

fn xn

where f(x) = (f1 (x), f2 (x), . . . , fn (x))T and x = (x1 , x2 , . . . , xn )T . The eq.(9) becomes: f(xk1 ) f(xa ) + Jf (xa )ek1 k1 k1 where ek1 xk1 xa . The expectated value of f(xk1 ) conditioned by Zk1 : k1 E[f(xk1 )|Zk1 ] f(xa ) + Jf (xa )E[ek1 |Zk1 ] k1 k1 where E[ek1 |Zk1 ] = 0. Thus the forecast value of xk is: xf k f(xa ) k1 (13) (12) (11)

Substituting (11) in the forecast error equation results: ef k xk xf k = f(xk1 ) + wk1 f(xa ) k1 Jf (xa )ek1 + wk1 k1 2 (14)

The forecast error covariance is given by: Pf k E[ef (ef )T ] k k = = Jf (xa )E[ek1 eT ]JT (xa ) + k1 k1 f k1 a T a Jf (xk1 )Pk1 Jf (xk1 ) + Qk1 E[wk1 wT ] k1 (15)

Data Assimilation Step At time k we have two pieces of information: the forecast value xf with the covariance Pf and the k k measurement zk with the covariance Rk . Our goal is to approximate the best unbiased estimate, in the least squares sense, xa of xk . One way is to assume the estimate is a linear combination of both k xf and zk [4]. Let: k xa = a + Kk zk k From the unbiasedness condition: 0 = E[xk xa |Zk ] k = = a = Substitute (18) in (16): xa = xf + Kk (zk E[h(xk )|Zk ]) k k (19) E[(xf + ef ) (a + Kk h(xk ) + k k f xk a Kk E[h(xk )|Zk ] xf Kk E[h(xk )|Zk ] k Kk vk )|Zk ] (18) (17) (16)

Following the same steps as in model forecast step, expanding h() in Taylor Series about xf we have: k h(xk ) h(xf ) + Jh (xf )(xk xf ) + H.O.T. k k k (20)

where Jh is the Jacobian of h() and the higher order terms (H.O.T.) are considered negligible. The Jacobian of h() is dened as:
h1 x1


. . .

h1 x2 hm x2

hm x1

.. .

h1 xn

hm xn

. . .


where h(x) = (h1 (x), h2 (x), . . . , hm (x))T and x = (x1 , x2 , . . . , xn )T . Taken the expectation on both sides of (20) conditioned by Zk : E[h(xk )|Zk ] h(xf ) + Jh (xf )E[ef |Zk ] k k k where E[ef |Zk ] = 0. Substitute in (19), the state estimate is: k xa xf + Kk (zk h(xf )) k k k (23) (22)

The error in the estimate xa is: k ek xk xa k = f(xk1 ) + wk1 f(xk1 ) f(xa ) k1 xf k Kk (zk h(xf )) k + wk1 Kk (h(xk ) h(xf ) + vk ) k (24)

Jf (xa )ek1 + wk1 Kk (Jh (xf )ef + vk ) k1 k k Jf (xa )ek1 + wk1 Kk Jh (xf )(Jf (xa )ek1 + wk1 ) Kk vk k1 k1 k (I Kk Jh (xf ))Jf (xa )ek1 + (I Kk Jh (xf ))wk1 Kk vk k1 k k Then, the posterior covariance of the new estimate is: Pk E[ek eT ] k = = = (I Kk Jh (xf ))Jf (xa )Pk1 JT (xa )(I Kk Jh (xf ))T k1 f k1 k k f f T T +(I Kk Jh (xk ))Qk1 (I Kk Jh (xk )) + Kk Rk Kk (I Kk Jh (xf ))Pf (I Kk Jh (xf ))T + Kk Rk KT k k k k f f f f f f T T Pk Kk Jh (xk )Pk Pk Jh (xk )Kk + Kk Jh (xk )Pf JT (xf )KT k k h k (25)

+ Kk Rk KT k

The posterior covariance formula holds for any Kk . Like in the standard Kalman Filter we nd out Kk by minimizing tr(Pk ) w.r.t. Kk . 0 = tr(Pk ) Kk (26)

= (Jh (xf )Pf )T Pf JT (xf ) + 2Kk Jh (xf )Pf JT (xf ) + 2Kk Rk k k k h k k k h k Hence the Kalman gain is: Kk = Pf JT (xf ) Jh (xf )Pf JT (xf ) + Rk k h k k k h k Substituting this back in (25) results: Pk = (I Kk Jh (xf ))Pf (I Kk Jh (xf ))Pf JT (xf )KT + Kk Rk KT k k k k k k k h = (I Kk Jh (xf ))Pf k k Pf JT (xf ) k h k Kk Jh (xf )Pf JT (xf ) k k h k Kk Rk KT k KT k = (I Kk Jh (xf ))Pf Pf JT (xf ) Kk Jh (xf )Pf JT (xf ) + Rk k k k k h k k k h = (I Kk Jh (xf ))Pf Pf JT (xf ) Pf JT (xf ) KT k k k k h k k k h = (I Kk Jh (xf ))Pf k k (28)


Summary of Extended Kalman Filter

Model and Observation: xk = f(xk1 ) + wk1 zk = h(xk ) + vk 4

Initialization: xa = 0 with error covariance P0 0 Model Forecast Step/Predictor: xf k Pf k Data Assimilation Step/Corrector: xa xf + Kk (zk h(xf )) k k k Kk = Pf JT (xf ) Jh (xf )Pf JT (xf ) + Rk k k k k h k h Pk = I Kk Jh (xf ) Pf k k

f(xa ) k1 = Jf (xa )Pk1 JT (xa ) + Qk1 k1 f k1

Iterated Extended Kalman Filter

In the EKF, h() is linearized about the predicted state estimate xf . The IEKF tries to linearize it k about the most recent estimate, improving this way the accuracy [3, 1]. This is achieved by calculating xa , Kk , Pk at each iteration. k Denote xa the estimate at time k and ith iteration. The iteration process is initialized with xa = xf . k,i k,0 k Then the measurement update step becomes for each i: xa xf + Kk (zk h(xa )) k,i k,i k Kk,i = Pf JT ( k,i ) Jh (xa )Pf JT (xa ) + Rk k,i k,i k h k h x Pk,i = I Kk,i Jh (xa ) Pf k,i k

If there is little improvement between two consecutive iterations then the iterative process is stopped. The accuracy reached this way is achieved with higher computational time.

Qk = Gk GT k Rk = Dk DT k

Since Qk and Rk are symmetric positive denite matrices then we can write: (29) (30)

Denote by and the high order terms resulted in the following subtractions: f(xk ) f(xa ) = Jf (xa )ek + (xk , xa ) k k k h(xk ) h(xa ) k = Jh (xa )ek k + (xk , xa ) k Konrad Reif showed in [2] that the estimation error remains bounded if the followings hold: 5 (31) (32)

1. , , 1 , 2 > 0 are positive real numbers and for every k: Jf (xa ) k Jh (xa ) k (33) (34) (35)

1 I Pk 2 2. Jf is nonsingular for every k

3. There are positive real numbers , , , > 0 such that the nonlinear functions , are bounded via: (xk , xa ) k (xk , xa ) k xk xa k xk

with with

xk xa k xk xa k

(36) (37)

xa 2 k

Then the estimation error ek is exponentially bounded in mean square and bounded with probability one, provided that the initial estimation error satises: ek and the covariance matrices of the noise terms are bounded via: Gk GT I k Dk DT k for some , > 0. I (39) (40) (38)


In EKF the state distribution is propagated analytically through the rst-order linearization of the nonlinear system. It does not take into account that xk is a random variable with inherent uncertainty and it requires that the rst two terms of the Taylor series to dominate the remaining terms. Second-Order version exists [4, 5], but the computational complexity required makes it unfeasible for practical usage in cases of real time applications or high dimensional systems.

[1] Arthur Gelb. Applied Optimal Estimation. M.I.T. Press, 1974. [2] K.Reif, S.Gunther, E.Yaz, and R.Unbehauen. Stochastic Stability of the Discrete-Time Extended Kalman Filter. IEEE Trans.Automatic Control, 1999. [3] Tine Lefebvre and Herman Bruyninckx. Kalman Filters for Nonlinear Systems: A Comparison of Performance. [4] John M. Lewis and S.Lakshmivarahan. Dynamic Data Assimilation, a Least Squares Approach. 2006. [5] R. van der Merwe. Sigma-Point Kalman Filters for Probabilistic Inference in Dynamic State-Space Models. Technical report, 2003.

Figure 1: The block diagram for Extended Kalman Filter