Unscented Kalman Filter - Multiple Consecutive Measurement Updates In trying to implement an Unscented Kalman Filter (UKF), I have come across the issue of what to do when my measurement signals come in at a different rate than my control inputs, which I use in the prediction step of the UKF. In my implementation, I've tried working around this issue by forming a prediction each time I receive a new measurement, but I've been told that it's also possible and perhaps favorable to only form a prediction when I get a new control input and form a new measurement update when I get a new measurement.

The "standard" Kalman filter algorithm in most textbooks/papers that I've seen do not delve deeply into this issue of different data rates, and they usually just show a simple predict-update loop that occurs at each time step.

I see how it is possible to form multiple consecutive predictions. However, I don't fully understand how one could do an update without a prediction right before it at the same time step, since the computation of the Kalman gain relies on the sigma points passed through the state transition function. Any help would be greatly appreciated!

For reference, I am trying to implement my UKF using the FilterPy Python library: https://filterpy.readthedocs.io/en/latest/_modules/filterpy/kalman/UKF.html#UnscentedKalmanFilter
I will use Wikipedia notations - Kalman Filter.
In most models the state transition model matrix $ F $ depends on the interval parameter $ T $. The same goes for the Process Noise Covarinace Matrix $ Q $. For instance, for the constant velocity model:
$$ F = \begin{bmatrix}
1 &amp; T \\ 
0 &amp; 1
\end{bmatrix}, \; Q = \begin{bmatrix}
\frac{ {T}^4 }{4} &amp; \frac{ {T}^3 }{2} \\ 
\frac{ {T}^3 }{2} &amp; {T}^{2}
\end{bmatrix} $$
Now, one simple policy you act by, whihc works perfectly in real life and is highly flexible, is as following:

Always remember the time stamp of the last Kalman step, be it prediction or update.
Given new input which is not a measurement do as following:

Take the input time stamp.
Define $ T = {t}_{current} - {t}_{last} $.
Build $ F $, $ Q $ and all other model matrices based on the given $ T $.
Apply prediction step.
Update the time stamp of the last Kalman step to $ {t}_{current} $.


Given new input which is a measurement do as following:

Take the input time stamp.
Define $ T = {t}_{current} - {t}_{last} $.
Build $ F $, $ Q $ and all other model matrices based on the given $ T $.
Apply prediction step.
Apply update step.
Update the time stamp of the last Kalman step to $ {t}_{current} $.



This works and it is very robust. Yet it has the overhead that you need to generate the correct matrices each step.
Also, since the UKF (Unscented Kalman filter) is different only in its Update step, it holds for it as well (For EKF as well).