Constrained interpolation/smoothing of multi-dimensional time series

Consider an $$N$$ dimensional time series $$x_i(t),~i\in\{0,1,\cdots, N-1\}$$ where $$x_i(t)$$ is smooth. It turns out that for all $$t$$: $$x_i(t)>x_{i-1}(t)$$.

The multi-dimensional series is sampled at some uniform sample interval $$T_s$$ yielding a set of $$N$$ sequences $$x_i[k]=x_i(t=kT_s)$$. Given these sequences, I would like to construct an interpolator to provide approximations to the sequences at arbitary times between the sampling instances. The approximations need to respect that same inequality constraint exhibited by the original $$N$$-dimensional series.

In the absence of the constraint, scipy.interpolate.UnivariateSpline does an acceptable job. What sort of approach might be appropriate for the constrained case?

1 Answer

Piecewise Cubic Hermite Interpolating Polynomial (PCHIP) may work well here. It guarantees that the interpolated points are within the boundaries of the supporting points, i.e. it doesn't swing over or under or

$$x[k] \le x[k+\delta] \le x[k+1], 0 \le\delta \le 1$$

That will increase the likelihood that the interpolation remains monotonic across dimension.

See for example https://www.mathworks.com/help/matlab/ref/pchip.html

• It could help. To be clear, the constraint that you've written for PCHIP does not guarantee that the constraint of the original problem will be satisfied, right?
– rhz
Commented Jul 26, 2021 at 16:05
• I don't think it guarantees it, but I think you have to work hard to find a example where it violates it. So for somewhat reasonable date, this should work fine. Commented Jul 27, 2021 at 12:11