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
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:
- Do analysis with a series of decreasing R value and try to estimate in the limit as R->0
- 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.