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)$.

  • $\begingroup$ Your notation is a bit off. You probably intended $(s \ast h)(i)$, the convolution of $s$ and $h$ at $i$? $\endgroup$ – 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.

  • $\begingroup$ 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$. $\endgroup$ – BBaire Oct 26 '16 at 2:06
  • $\begingroup$ 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. $\endgroup$ – WimC Oct 26 '16 at 7:51

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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