# Variable sample rate interpolation

I have a set of data over which I would like to interpolate, with a sampling rate say about $f_0$ Hz with a significant uniform random sampling jitter, such that it's more or less:

$$f_0 - \frac{1}{4}f_0 \le f_s \le f_0 + \frac{1}{4}f_0.$$

Normally, with uniform sampling, I can perform sinc interpolation:

$$x(t) = \sum\limits_{n=-\infty}^\infty x[n] \cdot \mathrm{sinc}\left(\frac{t-nT}{T}\right), \quad \text{with}\quad T = \frac{1}{f_s}$$

Can I do something similar if my sampling rate is non-uniform?

• What jitters, the sampling rate (Namely non uniform sampling) or the bandwidth of the signal? – Royi Jul 9 '14 at 7:22
• @Drazick Sorry if I wasn't clear, it's the sampling rate. The bandwidth of the signal remains the same. – Steven Goldade Jul 9 '14 at 13:27

Apart from the fact that $\rm{sinc}(x)=\sin(\pi x)/(\pi x)$ is smooth and bandlimited, the important property for interpolation is that $\rm{sinc}(k)=\delta(k)$ for $k\in\mathbb{Z}$ and the Kronecker symbol $\delta$.

For an irregular sampling grid you want a function with similar properties, i.e. smooth, (approximately) bandlimited and vanishing on the grid points other than some $k_0$, where it should evaluate to 1.

Fortunately, the sinc function is an analytic function, and for functions of that kind knowing all the zeros already defines the function up to a global factor. Let's look how that works for the sinc function. We know the zeros are at $\mathbb{Z}\setminus\{0\}$ (and fortunately there are no non-real zeros) and the scale factor is determined by $\rm{sinc}(0)=1$.

With this we can rewrite the function as a collection of infinitely many linear factors:

$$\rm{sinc}(x)=\frac{\prod_{k\in\mathbb{Z}\setminus\{0\}}(x-k)}{\prod_{k\in\mathbb{Z}\setminus\{0\}}(0-k)}=\prod_{k\in\mathbb{Z}\setminus\{0\}}\frac{(k-x)}{k}$$

This function keeps behaving well if you replace the zeros that are at the integers $k$ with slightly individually shifted zeros at $x_k$, which are in general non-integer. Since the grid is non-regular, it makes sense to define a distorted sinc-like function with a center index $k_0$ in mind, which corresponds to a position $x_{k_0}$, at which the function evaluates to 1.

So the new generalized interpolation function is

$$\rm{sinc}_{\{x_k\}}(x,k_0):=\prod_{k\in\mathbb{Z}\setminus\{k_0\}}\frac{x_k-x}{x_k-x_{k_0}}$$

for a given set $\{x_k\}$ of sample points and the center sample $x_{k_0}$. The resulting interpolation function is the sinc function for a regular grid and a slightly deformed smooth function for a non-regular grid. The bandwidth of the function is a continuous function of the grid points, that means small deviations from the regular grid will preserve band-limitedness quite well.

To evaluate this function you have to multiply infinitely many fractions, so this is not suitable for numerical evaluation. The function does also not converge very quickly, so that in practice the number of terms is still rather large. This changes if you apply a window function first so, that the interpolation is practically restricted to a small neighbourhood of the center sample. Then it suffices to evaluate a rather small number of terms to get a very good approximation.

• I think I got something whipped up using windowing that works quite well using this generalization. Would this theoretically be the ideal band-limited interpolation for a non-uniform sampling, or is that non-existent because bandwidth is a function of the points? – Steven Goldade Jul 11 '14 at 14:55
• I believe there is no unique way to define the ideal interpolator under these conditions, as this would require further assumptions about the nature of the sequence. What I gave you is a suitable and easily comprehensible construction that is well enough behaved to be useful. Other constructions exist, but they're harder to handle. – Jazzmaniac Jul 11 '14 at 16:22