0
$\begingroup$

Background: I'm new to signal processing and I'm reading some papers on B-spline interpolation of digital signals and trying to understand how a computation is derived. If I'm given samples from some function $f_k = f(k)$ as input and I would like to reconstruct it as

$$f(x) = \sum_k f_k \beta^3(x-k)$$

then we need to prefilter the sequence $(f_k)$, since $\beta^3$ is not an interpolating filter. In other words, I need to convolve $\beta^3$ with some other sequence $c_k$ which to satisfies

$$f_k = c_k * \beta^3(k),$$

where $\beta^3(k)$ is the sequence we get by sampling $\beta^3$ at integer points in order to get a reconstruction that passes through my given samples at integer points. To calculate the sequence $(c_k)$, I need find a sequence $\beta^3(k)^{-1}$ that is the inverse of the sequence $\beta^3(k)$ in terms of discrete convolution, i.e.

$$\beta^3(k) * \beta^3(k)^{-1} = \delta_k,$$

so that

$$c_k = f_k * \beta^3(x)^{-1}.$$

One way to find this inverse is to calculate the $z$-transform of $\beta^3(k)$, which I'm denoting below by $B^3(z)$:

$$B^3(z) = z^{-1} + 4z^{-2} + z^{-3}$$

Then the $z$-transform of this "convolution inverse" is:

$$H(z) = 1 / B^3(z) = \frac{1}{z^{-1} + 4z^{-2} + z^{-3}}.$$

My question: Somehow given just the $z$-transform representation above of the inverse filter, it's possible to calculate $c_k$. This can be done in two passes by first doing a causal pass over $f_k$ followed by an anticausal pass to get $c_k$. I've yet to see anywhere explained how from the $z$-transform above we can derive these two steps. Anyone know how this is done?

$\endgroup$

Your Answer

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

Browse other questions tagged or ask your own question.