I have built (several) discrete Extended Kalman Filters (EKF). The system model I am building has 9 states, and 10 observations. I see that most of the states converge except one. All except 1-2 of the EKF state estimate appears to drift. Since the EKF is dependent on all the states being convergent, the rest of the states are very erroneous after the divergence.

How do I check the observability of the EKF? Do I simply check the rank of the measurement Jacobian and see if it's less than the maximum rank of the measurement Jacobian?

After adding more measurements in my simulation, I was able to get things to converge. However, my question about observability still remains!


Ground truth and EKF estimate graphs can be found here or see below.


  • The model is quite non-linear between time steps 400-600 hence some divergence of some of the states
  • Figure/State 6 is the one that seems to be diverging
  • Please ignore the "sensor readings" plots for Figures 8/9

Things I have tried:

  • I know for linear state space systems you can use the Cayley Hamilton Theorem to check observability.
  • I have tried to check the Innovation/measurement residual e and all innovations converge to 0
  • I've also tested different inputs and they don't seem to affect the convergence of the diverging state(s)
  • I've tuned the EKF without any sign of convergence for the diverging state(s)
  • Graphs for another input signal: or see below
  • After talking to a colleague, he suggested that I investigate another issue that could be that there is an observation that is linearly dependent on 2 states, e.g. y = x1 + x2. There is an infinite number of values that could satisfy the same y, but shouldn't observability capture this issue as well?

Please let me know if there's anything else I can provide.

Ground truth & EKF estimate graphs:
Click on image for larger view

image a image b image c image d image e image f image g image h image i

Additional input signal:
Click on image for larger view

image m image n image o image p image q image r image s image t image u

  • $\begingroup$ I see that this site references rank(O) = [H; HA...] = n. The only issue is that I have something like sin( x(3) ) or sine of state 3. Do I linearize it to x(3) and treat it as part of the A matrix? I'll take a shot at this in the morning and report back. cwrucutter.wordpress.com/2012/11/12/… $\endgroup$ Commented Apr 21, 2015 at 8:01
  • $\begingroup$ @ChrisMuller yeah I thought of embedding the images to the question, but I don't think it works with multiple images (albums). Thanks for the tag update. I checked the link above and I don't know if I should be linearizing it. $\endgroup$ Commented Apr 21, 2015 at 17:59
  • 1
    $\begingroup$ I'm pretty sure it doesn't. You could do it by making a gif, but it might be a big headache depending on how you originally generated the plots. $\endgroup$ Commented Apr 21, 2015 at 18:02
  • $\begingroup$ @ChrisMueller All from Matlab, I simply took screenshots of the graphs in OS X. $\endgroup$ Commented Apr 21, 2015 at 18:02
  • 1
    $\begingroup$ It's possible to bring the images inline, but it takes a little bit of work. I have edited to separate the images out of the imgur link and I have set the images so you can click through and see the larger image. $\endgroup$
    – user16
    Commented Apr 23, 2015 at 13:41

1 Answer 1


Using this reference on linear discrete Kalman Filters, it looks like you can apply a standard observability model. Namely, for a linear Kalman Filter system defined as

$$ \begin{align*} x_{k+1} &= A x_k + B u_k \\ y_k &= C x_k + D u_k, \end{align*} $$

the system is observable if $M_{obs}$ is full rank, where $M_{obs}$ is defined as:

$$ M_{obs} = \begin{bmatrix} C \\ C A \\ \vdots \\ C A^{n-1} \end{bmatrix} $$


$$ \begin{bmatrix} C \\ C A \\ \vdots \\ C A^{n-1} \end{bmatrix} x_0 = \begin{bmatrix} y_0 \\ y_1 \\ \vdots \\ y_{n-1} \end{bmatrix}. $$

An EKF is just a linear Kalman Filter with Jacobians substituded in for $A$, $B$, $C$, $D$. By using an EKF, I assume that your state kinematics are adequately linearizeable, so observability for EKF should follow the same formulation as above.

  • $\begingroup$ @grfrazee didn't realize I could use inline latex -- thanks for the edit! $\endgroup$
    – deeroh
    Commented Mar 17, 2016 at 15:38
  • $\begingroup$ No problem. It's a nifty feature of Engineering.SE. $\endgroup$
    – grfrazee
    Commented Mar 17, 2016 at 15:39
  • $\begingroup$ Just updated the formatting to remove the latex images. Thanks again! $\endgroup$
    – deeroh
    Commented Mar 17, 2016 at 16:03

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.