# Signal reconstruction and interpolation using cubic B-splines

I am new to reconstruction and interpolation. From what I understand, interpolation using cubic B-splines can be viewed in two ways: 1) through construction of a linear system of equations whose solution uniquely determines the interpolating cubic spine, and 2) in a filter/convolution type framework. My question is of the latter.

When viewing the problem as filter/convolution, the reconstruction for a uniformly sampled data set is given by something like:

\begin{align} \sum_i s(i)*h(i) \beta_3 (x - i) \end{align}

Where $s(i)$ is the sampled signal, h(i) is an interpolation filter, and $\beta_3$ is a third order B-spline (or cubic spine obtained by 3 convolutions of the box function). The reason this filter is needed is to remove the high frequency "copies" of the signal in the frequency domain by: S($\omega)$H($\omega$). My question is the following:

Is this filter H($\omega$) uniquely determined based on the fact that I am using cubic B-splines? Or can I just take it to be the box function?

\begin{align} H(\omega) = \left\{ \begin{array}{c} 1, |\omega| < \omega_{max} \\ 0, |\omega| \geq \omega_{max}\\ \end{array} \right. \end{align}

I came across one possible explanation here:

but am unsure if it is exactly related to my problem since in their sum, they only have $c(l)$, where as I have $s(i)*h(i)$.
• Your notation is a bit off. You probably intended $(s \ast h)(i)$, the convolution of $s$ and $h$ at $i$? – WimC Oct 25 '16 at 11:22
A simpler explanation of the filter $h$ is that it is required to get an interpolation of the discrete signal $s$. (Note that the support of $\beta_3$ is the interval $[-2, 2]$ so the supports overlap when shifted over integers.) Another way to read this interpolation formula is $$\sum_{k\in \mathbb{Z}} s(k) \cdot (h \ast \beta_3)(x-k)$$ where $h \ast \beta_3$ is a piecewise cubic function with infinite support that vanishes at all integers except at $0$ where it has value $1$. In this form it resembles the Shannon interpolation formula $$\sum_{k\in \mathbb{Z}} s(k) \cdot \operatorname{sinc}(x-k)$$ where $$\operatorname{sinc}(x) = \frac{\sin(\pi x)}{\pi x}.$$ The box filter is the Fourier transform of $\operatorname{sinc}$. However, the Fourier transform of $h \ast \beta_3$ is not a box filter (since $h \ast \beta_3 \neq \operatorname{sinc}$) but it is in fact $$\frac{3 \operatorname{sinc}^4(x)}{\cos(2\pi x) + 2}.$$ Plotting this function reveals that it approximates a box function already pretty closely, which is why cubic splines are so popular for interpolation. See the excellent paper by Michael Unser for more background.
• How did you get the Fourier Transform of $h * \beta_3$ to be that $\frac{3sinc^4(x)}{cos(2\pi x) + 2}$ term without knowing what $h$ was? Or is it equal to the box function? You mentioned $h * \beta_3$ is a piece-wise cubic function, but again I am unsure how to get this without knowledge of what $h$. – BBaire Oct 26 '16 at 2:06
• I know what $h$ is. ;-) It is the sequence of Laurent coefficients in $$\frac{1}{\frac16 z + \frac23 + \frac16 z^{-1}} = \sqrt{3} \sum_{k\in\mathbb{Z}}(\sqrt{3}-2)^{\lvert k \rvert} z^k$$ on the unit circle $|z|=1$. In particular $h(k) = \sqrt{3}(\sqrt{3}-2)^{\lvert k \rvert}$. Note that $\beta_3(-1) = \frac16$, $\beta_3(0) = \frac23$ and $\beta_3(1) = \frac16$. This is all explained in Unser's paper. – WimC Oct 26 '16 at 7:51