Resampling Filters: Interpolators and Interpolation

fred harris · Watch Now · DSP Online Conference 2023 · Duration: 02:06:06

Resampling Filters: Interpolators and Interpolation
fred harris

The first time I had to design an interpolator to change the sample rate of an existing time series from one sample rate to another sample rate was in the early 1960s. A group of engineers were determining the acoustic signature of a ship in San Diego Harbor. Two small vessels circled the ship and collected samples of the ship’s sounds to be cross correlated off-line in a main frame computer. Imagine our surprised response when we realized that the two collection platforms had operated at different sample rates to collect their versions of the sampled data signal: 10 kHz and 12 kHz! You can’t correlate time sequences that have different sample rates! It was an interesting learning process.

My Webster’s Second Collegiate Dictionary lists, in its third entry, a math definition of interpolate as: “To estimate a missing functional value by taking a weighted average of known functional values at neighboring points.” Not bad, and that certainly describes the processing performed by a multirate filter. Interpolation is an old skill that many of us learned before the advent of calculators and key strokes replaced tables of transcendental functions such as log(x) and the various trigonometry functions. Take for example the NBS Applied Mathematics Series, AMS-55 Handbook of Mathematical Functions with Formulas, Graphs, and Mathematical Tables by Abramowitz and Stegan. This publication contains numerous tables listing functional values of different functions, sin(θ) for example, for values of θ equal to …40.0, 40.1, 40.2,….etcetera. Interpolation is required to determine the value of sin(θ) for the values of θ between the listed values. Interpolation was such an important tool in numerical analysis that three pages in the introduction of the handbook are devoted to the interpolation process. Interpolation continues to be an important tool in signal processing and we now present and discuss the DSP filtering description of the interpolation process.

The ability to change sample rate of a sequence to another selected sample rate has become the core enabler of software defined radios and of sampled data communication systems. Synchronizing remote clocks on moving platforms, adjusting clocks to remove clock offsets due to environmental, manufacturing tolerances, and Doppler induced frequency shifts are but the tip of the many things we accomplish with arbitrary interpolators. Let’s have a cheer, Here, Here, for interpolators!

What this presentation is about and why it matters

This talk explains how to change a sequence's sample rate cleanly and efficiently by using interpolators (upsamplers) and related multirate filters. Fred Harris ties the classical theory (sinc, windows, sampling theorem) to practical, high-performance implementations: zero‑insertion, polyphase decomposition, the Noble identities, derivative corrections, and Farrow‑style coefficient interpolation. The presentation shows why resampling is not just an academic exercise — it is a core tool in software‑defined radios, receivers, audio conversion (e.g., 44.1 → 48 kHz), clock synchronization, Doppler compensation, and any system that must convert between different digital clocks without re‑acquiring new analog data.

Who will benefit the most from this presentation

  • DSP engineers who design sample‑rate converters, audio converters, radio front ends, or multirate systems.
  • Students learning multirate DSP who want a practical bridge from theory (sinc, sampling theorem) to efficient implementation (polyphase, Farrow filters).
  • System architects who must trade computational cost, filter length, and passband/stopband requirements in real products.
  • Anyone implementing resampling on embedded processors, FPGAs, or ASICs and needing tricks to reduce multiplies per output.

What you need to know

Before watching, it helps to be comfortable with a few core ideas so the examples land quickly:

  • Sampling and the periodic spectrum: sampling a bandlimited analog signal produces periodic spectral copies spaced by the sample rate. Resampling changes that spacing.
  • Zero‑insertion (upsampling): inserting M−1 zeros between samples raises the digital sample rate by M and creates M spectral replicas. Scaling by M restores amplitude of each replica.
  • Lowpass anti‑imaging filtering: after zero‑insertion you must lowpass to remove images. Ideal lowpass ⇄ sinc impulse; practical FIR = windowed sinc.
  • Windowing and tradeoffs: windows control sidelobes (stopband) and main‑lobe width (transition). The familiar tradeoff: lower sidelobes → wider transition → longer filter. A handy estimate used in the talk is

    filter length estimate: $N \approx \dfrac{A_{\mathrm{dB}}}{22}\cdot\dfrac{f_s}{\Delta f}$,

    where $A_{\mathrm{dB}}$ is desired attenuation and $\Delta f$ is transition width.
  • Polyphase decomposition and efficiency: partitioning FIR coefficients into M subfilters (polyphase) turns a naive upsample‑then‑filter into an efficient structure that avoids multiplications by zero and runs at the lower input rate.
  • Noble identities and scheduling: moving downsamplers/upsamplers across filters and using phase accumulators (address pointers) give efficient rational resampling (L/M) and the classic commutator/Gatling‑gun implementation.
  • Derivative corrections & Farrow ideas: using nearby filter outputs (or derivatives computed via small kernels) greatly reduces interpolation artifacts without enormous oversampling. Interpolating coefficients (Farrow) is efficient when many fractional positions are needed.
  • Practical considerations: oversampling factor, filter length, quantization (DAC bits), and spectral "don't‑care" zones are design knobs. Fred stresses matching filter design to where energy actually lies to shorten filters and reduce cost.

Glossary

  • Sinc function: impulse response of an ideal lowpass. Windowed sinc yields practical FIRs.
  • Zero‑insertion (upsampling): inserting zeros between samples to raise the sample rate by integer M.
  • Polyphase filter: decomposition of an FIR into M subfilters that enables efficient multirate processing.
  • Noble identity: algebraic rules that let you move resamplers across delays/filters to reduce computation.
  • Gatling‑gun: implementation metaphor where a single computational engine cycles through different coefficient sets (polyphase branches).
  • Farrow filter: structure that interpolates filter coefficients (polynomial in fractional delay) rather than the data samples.
  • Don't‑care bands: frequency regions with no signal energy; designing them into the filter reduces overall filter length for a given attenuation.
  • Derivative correction: using first/second derivatives (small difference filters) to improve interpolation accuracy and suppress spurious images.
  • Transition bandwidth (Δf): frequency interval over which the filter moves from passband to stopband — a primary determinant of FIR length.
  • Alias / Spectral replica: copies of the baseband spectrum that appear at multiples of the sampling rate after sampling/upsampling.

Final note — why watch

Fred Harris blends decades of theoretical insight with memorable practical examples, clever implementation tricks, and engineering judgment. Expect clear explanations (with anecdotes), concrete rules of thumb (filter length estimate, when to use derivative corrections), and pointers to MATLAB code and slides. If you design or use resamplers, the talk will save you implementation time and help you choose efficient, robust architectures — and you’ll come away with several tricks you can apply immediately.

1 / 6
Please log in or create an account to test your knowledge and see the answers.

What is the primary reason Fred Harris inserts zeros between input samples (zero-stuffing) when building an interpolator?

A To directly compute intermediate sample values because zeros carry interpolation information.
B To change the analog signal bandwidth before sampling.
C To redefine the Nyquist zone so spectral replicas become visible, then remove unwanted replicas with filtering.
D To eliminate the need for any subsequent filtering by smoothing the time series.
E To reduce the overall energy of the signal so the filter needs fewer taps.
Formatting help
italicssurround text with
*asterisks*
boldsurround text with
**two asterisks**
hyperlink
[hyperlink](https://example.com)
or just a bare URL
inline code
surround text with single
`backticks`
code block
(multi-line)
wrap on its own lines with three backticks:
```
your code here
```
strikethroughsurround text with
~~two tilde characters~~
quote
prefix with
>

SeanC
Score: 0 | 3 years ago | no reply

Hi Fred,

Fantastic presentation as usual! Really enjoyed it and learned a lot.

Not a polyphase filter question, but a Farrow filter question for you...
If I want to use a Farrow structure to interpolate over a wide range of rates (e.g. 1-1024 with 10-bit fractional precision, for instance), what is the criteria for the prototype filter that I use for the polynomial approximation based sections? That is, what are its bandwidth and transition band requirements?

The protype filter must change for different rate ranges or stopband requirements, right?

I'm trying to understand the design methodology behind the prototype filter design.

Thank you very much,
Sean

Stephane.Boucher
Score: 0 | 3 years ago | no reply

Slides and Matlab scripts provided by fred can now be downloaded from the left-hand side column (at the bottom)

JohnP
Score: 0 | 3 years ago | 1 reply

Insightful, thought-provoking as always. Such a valuable DSP treasure ! Almost a Super Man. Many thanks.

fred_hSpeaker
Score: 0 | 3 years ago | no reply

Thanks John, I'm glad to hear your enjoyed it.
Stephan reminded me that I have to keep sharing the fun I have doing what we do!

fred

PhilM
Score: 0 | 3 years ago | 1 reply

When you are interpolating error values at near resampled data points, is dither not also an appropriate technique instead of/with left-neighbour interpolation? Or is it too computationally expensive to consider most of the time?

fred_hSpeaker
Score: 0 | 3 years ago | no reply

PhilM,
Good question,
A dither will not do the same degree of artifact suppression as the linear interpolation using the slope between adjacent interpolated samples. The dither will smear the spectral artifacts to whiten their contribution but the derivative correction will squish down their spectral contributions. The dither breaks up periodic errors replacing them with random errors. At the moment I can't see periodic errors in the interpolator. I'll give it some more thought!