my Extended kalman filter (EKF) program works well, my estimated state vector is same as real state vector when I give any positive definite number to measurement noise R. But I want to make covariance analysis and one part of covariance analysis I need to set zero measurement noise. When I do this, I get singularity warning from K= (HPH'+R)^-1 (kalman gain part of measurement correction part of EKF). I checked eigenvalues and rank. When I get R=0, some eigenvalues becomes negative a few seconds later and rank is decrease from 15 to 1. When I get R>0, all eigenvalues are positive definite and rank goes to 15 to 7. How can I solve problem, I can not detect cause of this problem. Could you help me please?


1 Answer 1


I think you need to step back a bit and think beyond the math. An (E)KF is used to estimate the true value of a signal in the presence of noise; it's only because of this noise that we even need the algorithm. When you set R to zero you are saying "I have a perfect measurement". In this case there is no need for an estimate.

In practice, I think you have two options:

  1. Do analysis with a series of decreasing R value and try to estimate in the limit as R->0
  2. Instead of doing all the measurement step math, simply assign the state estimate to match your measurement (which is what R=0 means). You'll also need to zero out your estimate covariance, P=0.

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.