# Kalman Filter - Optimal Way to Handle “Derived” Measurements?

Ie, if you have as state variables position (p) and velocity (v), and I make low-frequency measurements of p, this also indirectly gives me information about v (since it's the derivative of p). What is the best way to to handle such a relationship?

A) At the update step, should I only say I've measured p, and rely on the filtering process, and my accumulated state-covariance matrix (P), to correct v?

B) Should I create an "extra" prediction step, either after or before my update step for the measurement of p, that uses my measured p and (relatively large) delta-time to make a high-variance prediction of v?

C) In my update/measurement step, should I say I've made a measurement of both p and v, and then somehow encode information about their interdependence into the measurement co-variance matrix (R)?

For a little more background, here's the specific situation in which I've run into the problem:

I'm working with a system where I want to estimate the position (p) of an object, and I make frequent measurements of acceleration (a) and infrequent, high-noise measurements of p.

I'm currently working with a codebase that does this with an Extended Kalman Filter, where it keeps as state variables p and v. It runs a "prediction" step after every acceleration measurement, in which it uses the measured a and delta-time to integrate and predict new p and v. It then runs an "update"/"measurement" step for every (infrequent) p measurement.

The problem is this - I get occasional high-error measurements of a, which result in highly-erroneous v. Obviously, further measurements of a will never correct this, but measurements of p should get rid of this. And, in fact, this does seem to happen... but VERY slowly.

I was thinking that this may be partially because the only way p affects v in this system is through the covariance matrix P - ie, method A) from above - which seems fairly indirect. I was wondering if there would be a better way to incorporate our knowledge of this relationship between p and v into the model, so that measurements of p would correct v faster.

Thanks!

• I'll try to come back with a longer answer later, but my immediate reactions to your questions would be A) Yes, B and C) Probably not. Are you able to detect the high-error measurements of $\mathbf{a}$ in some way? If you could detect the outliers you could throw them out to mitigate their effects. You might be hard-pressed to get great performance if your sample rate of the system's position is too low compared to its dynamics. – Jason R Sep 14 '12 at 12:52
• One other thing; there should be an implicit relationship between $\mathbf{p}$ and $\mathbf{v}$ expressed in your state transition matrix. Specifically, it should express that $\mathbf{p_{k+1}} = \mathbf{p_k} + \mathbf{v_k} \Delta t$ or similar. – Jason R Sep 14 '12 at 14:57

2. "Extra" prediction step will yield nothing, since ${F}_{ik} = {F}_{ij} {F}_{jk}$ and if you reduce the time frame you should alter $Q$ and $R$ accordingly which should get you at the end of the chain of small steps the same P_k_k-1.