Extrapolating values from a set of values in time

233 Views Asked by At

This is a question at the crossroads of mathematics and programming.

I have a sequence of values that are generated every $300$ms. (Not exactly, but I know the exact time point of each value). I am sending a sequence of values at the same rate, which each being the result of the application of a known function to each of these values. This poses no problem.

Now, I'd like to send values at a more frequent rate. (like every $50$ms) I would like to extrapolate the values to send according to the last (e.g. $4$) real values to send. (i.e. the results of the application of the function to the received values).

For this, I am imagining a solution where I generate a polynomial/exponential/something-al function that goes through the $4$ last points, and then I generate extra values to send, thanks to this function, until I get another real value to send, at which point I will regenerate the function with the last $4$ points, and so on.

Given $4$ points, how may I generate this function? I am looking for a function on time, not a parametric function.

1

There are 1 best solutions below

3
On BEST ANSWER

You could use Lagrange interpolation.

Apply the given formulae with $k=3$; you will be fitting the previous 4 points with a cubic polynomial.

I think there is a problem with your basic idea, though. When you get a new point, you will recompute the interpolant. And the new interpolant won't join smoothly with the previous one unless you do something to force this.