# Kalman filter with missing measurement inputs

I am a newby to Kalmar filters, but after some study, I think I understand how it works now. For my application, I need a Kalmar filter that combines the measurement input from two sources. In the standard Kalmar filter, that is no problem at all, but it assumes that the measurement inputs from the two sensors are available at the same times. In my application, there is one new measurement from sensor 'b' for every 13 measurements of sensor 'a'.That is, 12 out of 13 times, the measurement of sensor 'b' is missing.

How would you handle that normally? Do you simply use the predicted measurements values as substitute for the missing ones? Does that not lead to overconfidence in the missing measurements? How else can it be handled?

• Do not use predicted measurement values. You can have two measurement matrices $H_1$ and $H_2$ that you only apply whenever you get either measurement, and in both cases apply the standard prediction. – mikkola Jan 2 '17 at 18:24

Here might be a better approach (from link)

For a missing measurement, just use the last state estimate as a measurement but set the covariance matrix of the measurement to essentially infinity. (If the system uses inverse covariance just set the values to zero.) This would cause a Kalman filter to essentially ignore the new measurement since the ratio of the variance of the prediction to the measurement is zero. The result will be a new prediction that maintains velocity/acceleration but whose variance will grow according to the process noise.

• What should the covariance matrix look like for 4 sensors, one of which has a missing measurement? – Petrus Theron Sep 18 '18 at 15:21

You are absolutely right. If at a time t the measurement is missing, only the time-update is computed and the measurement update must be skipped. This is the way you shold handle the problem.

• Since I posted this question, I have tested with the Kalman filter as described, and noticed that my suspicions had been correct: it is overconfident on the missing data. To compensate, I have now implemented a double Kalman filter, one for the situation where the sample is missing, and a different one when the sample is there. That seems to be working well, but is that a normal approach? – fishinear Jan 26 '15 at 14:20
• Please explain to me what you exactly mean by "overconfident on the missing data". – Dominik Jan 27 '15 at 12:17
• Because 12 out of 13 times, the predicted value is used as measured value, all those times, the error between predicted value and measured value is zero. Therefor the Kalman filter "thinks" its predictions are really good and starts relying on them. If then the real measured value comes it, it over-reacts because it assumes there to be zero error in that one as well. Sorry if I cannot explain it very well. – fishinear Jan 27 '15 at 18:31
• From a statistical point of view it would be the right choice to use the predicted values. Because the Kalman Filter gives you E[y_t|z_1,...,z_t], the expected value of the state at time t, given all measurements up to time t. If you have a time partition t=1,...,t=10, and you want to derive a approximation for every timestep, there is no other way than taking the predicted value. If you only have the measurement at time t_1, you must be satisfied with E[y_10|z_1], the prediction. What does you solution exactly look like? – Dominik Jan 28 '15 at 9:28
• Right now, I use one Kalman filter when the 'b' input is absent. That one is only based on the sensor 'a' input. Then, in the steps when a 'b' sample is present, I use another Kalman filter which takes both 'a' and 'b' into account. As I said, it seems to work OK, but I'm not sure whether I am missing something. – fishinear Jan 28 '15 at 14:44

Don't use predicted values. Just Bayes-fuse the likelihoods from each available observation into your posterior as they arrive, it doesn't matter how many there are at each step.

• You may want to expand on what you are saying. I think you mean a Bayesian Data Fusion? How would that combine with a Kalman filter? And using the predicted values is essential to getting accurate values in a Kalman filter, so how would Bayesian Data Fusion help with that? – fishinear Aug 19 '17 at 11:29

This is not a problem at all with a Kalman filter (KF). In a KF, you have a prediction step and an update step. At each time step $$k$$, you must predict your states at the prediction step. This is performed using a process model. If you do not have a measurement, you skip the update step. If you have a measurement, you perform the update step after the prediction step.

Edit: Keep in mind in many cases, the updates run at a lower frequency than the predictions (e.g. GPS/INS sensor fusion). Your problem sounds suitable for this framework.

• In my experience, this approach seems to lead to overconfidence in the predicted values for sensor 'b' - which is not surprising, because the predicted value is used 12 out of 13 times. In my current approach, I use one Kalman filter when the 'b' input is absent. That one is only based on the sensor 'a' input. Then, in the steps when a 'b' sample is present, I use another Kalman filter which takes both 'a' and 'b' into account. This seems to work OK. – fishinear Oct 6 '18 at 15:30
• This shouldn’t lead to overconfidence in the predicted values if your process and observation models are correct. If they are not, I suggest finding a better model. Additionally, the fact that you have 12 measurements of one type for 1 measurement if the other means nothing without knowing your models/error characteristics. – Ralff Oct 6 '18 at 16:45