Kalman filter achieves convergence of state vector by using sensor observations.

Assuming a sensor such like velocity sensor, giving two axis velocity information in X-axis as well as Y-axis(see edit for one more example to capture essence of my question)

I can always design kalman filter in such a way that X-axis and Y-axis velocity are taken as two different scalar sensor readings and also a kalman filter where I take them as a vector sensor reading.

From both theoretical and practical aspects Is there any thing I am losing by taking X-axis and Y-axis as independent readings?

Or taking them together helps in converging faster? What is a better approach? And Why?

Edit: Assume one is in a airplane and a camera captures an image and tells latitude and longitude of nadir. With this data I would like to correct my State vector. Now if I use latitude as a different reading and longitude as a different reading than using both of the data. Will I lose anything? As pointed by an answer below if the signal model has an interaction among the components of reading I lose that interaction. Now do latitude and longitude have an interaction? How do I capture this interaction mathematically with H matrix?


As with any question like this, the answer is: It depends.

What does it depend on? Your signal model.

If your signal model generates $X$ and $Y$ axis velocities independently from each other so that there is no transfer function between the two channels, then two 1D Kalman filters will work the same as one 2D Kalman filter.

If your signal model allows interaction between $X$ and $Y$ axis values, then you lose that captured interaction between the axes, which can degrade the performance of the two 1D Kalman filters over a single more accurate 2D Kalman filter.

To give any more detailed answer will require you to state your signal model.

The edit really doesn't give me enough information, but let me try to update my answer.

I'm assuming, from what you say, that the latitude and longitude are estimated from a nadir image. If that's true, then unless the image pixels are precisely aligned with the lines of latitude and longitude, you will get cross-coupling between your latitude and longitude estimates.

That cross-coupling means you'll be better off using a 2D Kalman filter.

  • $\begingroup$ I have put an edit in my question. If my understanding is correct you are telling interaction among the components of sensor readings? Or correlation of different component of sensor reading? Or are you talking about correlation among the components of state vector? $\endgroup$ – Prakhar Apr 18 '18 at 15:55

Ok, Expanding a bit on Peter K.'s correct assessment, in simple terms.

The itsy bitsy spider goes up the wall, and then takes a horizontal lunge towards Jack and Jill who are figuring out how to put porridge in their pail.

The Kalman Filter in the UP/Down direction will track well as long as the spider is moving up the wall. The horizontal Kalman Filter will predict a noisey stationary position because the UP/DOWN state will have an UP/DOWN velocity component, so the Horizontal Filter will also have velocity state but the Horizontal Filter's velocity state is not a parsimonious kinematic model.

The Spider Lunges Horizontally. The UP/DOWN Filter has been predicting the spider keeping in the same direction. The Horizontal Kalman Filter's horizontal state needs to wake up.

In either case, one of the Filters will be overdetermined and subject to under and overshoot, a good chance of loosing track on the lunge, and extra noise induced by the unneeded state.


If you have two sets of completely independent variables such as xy coordinates, you can make the filter simpler by separating each set from the others and doing your predictions with each set in isolation. There is no point in lumping together independent sets into the same filter because you end up with a lot of wasteful operations because of the large matrices that you create.

Remember that the purpose of kalman filter is to predict the ultimate estimate of the hidden state. You can only do this if your hidden state depends on or is depended upon by other states that you can measure. Only lump together the variables that are necessary to triangulate your hidden state. If you have independent sets then create two filters instead. It will make your implementation simpler.

  • $\begingroup$ So imagine I have state vector of position and velocity. Then I need not club position measurement with velocity ? $\endgroup$ – Prakhar Apr 29 '18 at 1:13
  • $\begingroup$ Not sure what you mean by "club". Position and velocity are tightly related and if you need to estimate one from another you must have them in the same system. However I would separate x and y into separate filters if there is no coupling between them. So far as measurements go, you do not need to correct all quantities in the same cycle. $\endgroup$ – Martin Apr 29 '18 at 16:13
  • $\begingroup$ A kalman filter without measurements will simply continue predicting step after step and eventually diverge from reality. But you can definitely correct each state variable at different intervals and in any order you want. I typically calculate predicted state first, then project the covariance and then correct the state variables that can be corrected. If you do not have sensor reading then just set that state variable to zero in the K * (m - Cx) correction vector. $\endgroup$ – Martin Apr 29 '18 at 16:13

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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