Bandlimited interpolation of discrete-time signals is a basic tool having extensive application in digital signal processing. In 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), Shannon's 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 [#!LaaksoB!#]. A comparison between classical (e.g., Lagrange) and bandlimited interpolation is given in [#!SchaferAndRabiner!#]. The book Multirate Digital Signal Processing [#!Crochiere!#] 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 L and then decimated by an integer factor M. This provides sampling-rate conversion by any rational factor L/M. 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 tutorial, a public-domain resampling algorithm is described which will evaluate a signal at any time specifiable by a fixed-point number [#!SmithAndGossett84!#]. 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 [#!Crochiere!#], 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 section 2, the basic theory is presented, section 3 addresses practical issues, and implementation details are discussed in section 4. Finally, section 5 discusses numerical requirements on the length, width, and interpolation accuracy of the filter coefficient table.