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.

Download resample.pdf

[How to cite and copy this work] [Comment on this page via email]

Copyright ©

Center for Computer Research in Music and Acoustics (CCRMA), Stanford University