Hi, I am trying to model an EKF where the noise is not simply additive and I am not sure how to begin. Perhaps someone could give some pointers... To explain my model I start with a simple linear (and very common) discrete model: x(k) = x(k-1) + dt * xd(k-1) + dt^2/2 * v(k) xd(k) = xd(k-1) + dt * v(k) where, x =>position xd => speed v => noise dt=> time step On my non-linear model, the discrete speed equation is modified to be: xd(k) = xd(k-1) * sqrt(v(k)) How would I go about redefining the effect of this multiplicative noise on the position equation?
EKF process/noise modeling with non-additive noise
Started by ●July 31, 2008
Reply by ●July 31, 20082008-07-31
Sorry, there was a mistake. The non-linear equation is: xd(k) = xd(k-1) + xd(k-1) * sqrt(v(k)) and not xd(k) = xd(k-1) * sqrt(v(k))
Reply by ●July 31, 20082008-07-31
So we need to determine the additive covariance matrix of the noise. I believe you should be able to do it like this: cov(f(v(k)) = (1st order Taylor expansion) cov(f(p)+J_f(p)*(v(k)-p)) = cov(f(p)+J_f(p)*v(k)-J_f(p)*p) =f(p) and J_f(p)*p are constant so... cov(J_f(p)*v(k)) = J_f(p)*cov(v(k))*J_f(p) So to conclude: 1. Compute the Jacobian (only with respect to noise v) of your non linear model called J_f 2. Compute J_f(p) where p is the last estimation for the system state 3. Choose cov(v(k)) As a diagonal matrix with sigma^2 on the diagonal. 4. Compute J_f(p)*cov(v(k))*J_f(p)^T and use it as additive noise I hope this works Frank
Reply by ●July 31, 20082008-07-31