Suppose I have a set of estimators, $$\{S^1, S^2, S^3, S^4,\ldots,S^n\}$$ that output at each timestep $t$ a measurement representing an estimate of the true signal $y$, however the output of each sensor is delayed by $n$, so $S^n_t$ is an estimate for $y_{t-n}$. Moreover, the accuracy of that estimate increases as $n$ does:

$$S^n_t=y_{t-n}\pm\mathcal{N}(0,v(n))$$ where $v(n)$ is some monotonically decreasing function of $n$

For example at time $t=10$ the output $S^1_{10}$ is an estimate of $y_{9}$ and $S^2_{10}$ is an estimate of $y_8$, one timestep later at $t=11$, $S^2_{11}$ gives a (likely) more accurate estimate of $y_8$.

To put it another way that doesn't rely on my terrible use of notation; imagine multiple sliding windows of different sizes with the same stride, each of which operate on a signal to produce an estimate for the center of the window. The bigger the window, the more information it contains so the less noisy the value recovered from it is, but also the further back in time the value represents. Essentially every second we get an innacurate prediction for the last second, but a more accurate prediction for two seconds ago, and an even more accurate prediction for three seconds ago, etc.

The question is, at each timestep how can these retroactively acquired but more accurate values be used in a Kalmanesque manner to provide a better prediction of the current/next timestep

Does such a Kalman filter exist that can update previous timesteps and have multiple values for the same timestep with different certainties. Although my mind immediately thought of Kalman filters there is likely some other sort of estimation process/model that might be more relevant. I think my concern is that I don't want to have to construct a model from scratch each timestep, rather have something that can be efficiently iteratively updated.

I want to apologise if I've worded this incorrectly. This might be closely related to another question but I'm just using the wrong terminology.

Edit: Though I've described them as sensors, the windowing analogy is more acurate to the true context. All the outputs of $S$ are the result of procesing the DFT of windows of size $2n$ of a signal with new values continously being fed. Because the data is live the windowing function can't be centered on $t$ and instead has to be centered on $t-n$. Larger $n$ provides a 'better' DFT for that window of time but the output after processing it represents a less immediate value

  • 1
    $\begingroup$ If your $S_t^n$ are all using the same sensor and just applying some signal processing to its output, then the optimal filtering method is to rip them all out and replace them with a Kalman filter. If your $S_t^n$ are different sensors (e.g. a fast but noisy MEMS gyro and a slow but super-accurate spinning wheel gyro) then -- to the extent that their dynamic behavior is known -- you could use a Kalman filter combine their output. Could you please edit your question to clarify whether or not your $S_t^n$ are making independent measurements or are just processing the same sensor input? $\endgroup$
    – TimWescott
    Jul 6, 2022 at 22:01

1 Answer 1


For two independent estimates, $S_1$ and $S_2$ with variances $\sigma_1^2$ and $\sigma_2^2$, respectively, this page calculates the optimal combination as:

$$ \hat{S} = \frac{a S_1 + b S_2}{a+b} $$

with \begin{align} a &= \sigma_2^2\\ b &= \sigma_1^2 \end{align} and it shows the resulting measurement has variance $$ \hat{\sigma}^2 = \frac{1}{\frac{1}{\sigma_1^2} + \frac{1}{\sigma_2^2}} = \frac{\sigma_1^2 \sigma_2^2}{\sigma_1^2 + \sigma_2^2} $$ So for two independent measurements with the same variance $\sigma^2$, the resulting combination will have variance $\sigma^2/2$.

That page goes on to give a recursive relationship used to combine many different measurements of the same thing with different variances.

The trick will be how valid the assumption of different measurements being independent is in the case you propose.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

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