Bandlimited interpolation of discrete-time signals is a basic tool having extensive application in digital signal processing.5.9In general, the problem is to correctly compute signal values at arbitrary continuous times from a set of discrete-time samples of the signal amplitude. In other words, we must be able to interpolate the signal between samples. Since the original signal is always assumed to be bandlimited to half the sampling rate, (otherwise aliasing distortion would occur upon sampling), the Sampling Theorem tells us the signal can be exactly and uniquely reconstructed for all time from its samples by bandlimited interpolation.
Considerable research has been devoted to the problem of interpolating
discrete points. A comprehensive survey of ``fractional delay filter
design'' is provided in [269]. A comparison between
classical (e.g., Lagrange) and bandlimited interpolation is given in
[410]. The book Multirate Digital Signal
Processing [97] provides a comprehensive summary and
review of classical signal processing techniques for sampling-rate
conversion. In these techniques, the signal is first interpolated by
an integer factor
and then decimated by an integer factor
. This provides sampling-rate conversion by any rational factor
. The conversion requires a digital lowpass filter whose cutoff
frequency depends on
. While sufficiently general, this
formulation is less convenient when it is desired to resample the
signal at arbitrary times or change the sampling-rate conversion
factor smoothly over time.
In this section, a public-domain resampling algorithm is described which will evaluate a signal at any time specifiable by a fixed-point number. In addition, one lowpass filter is used regardless of the sampling-rate conversion factor. The algorithm effectively implements the ``analog interpretation'' of rate conversion, as discussed in [97], in which a certain lowpass-filter impulse response must be available as a continuous function. Continuity of the impulse response is simulated by linearly interpolating between samples of the impulse response stored in a table. Due to the relatively low cost of memory, the method is quite practical for hardware implementation.
In the next section, the basic theory is presented, followed by sections on implementation details and practical considerations.