Sample Rate Conversion
Combine upsample by L and downsample by M to convert between any rational ratio — one efficient polyphase structure, no intermediate rate required.
Why Convert Rates?
Integer up/downsampling only covers multiples. Real systems need arbitrary rational ratios: CD ↔ DAW, SDR channel selection, video transcoding.
The Cascade
Upsample by L → single lowpass filter → downsample by M. The filter does both jobs: removes images and prevents aliasing.
44.1 ↔ 48 kHz
- Ratio: 48 000 / 44 100 = 160 / 147
- Upsample by L = 160 → intermediate rate 7.056 MHz
- Downsample by M = 147 → output at 48 kHz
- Polyphase avoids computing the 7 MHz rate at all
One Filter, Two Jobs
Cutoff = π/max(L, M). Gain = L. Stopband attenuation ≥ 80 dB for audio (120 dB for hi-res). A Parks-McClellan equiripple FIR is the standard choice.
Adjust L and M
Change L and M to explore the output rate and the filter cutoff. The amber region is the passband; red shows the aliasing/imaging threat zone.
Polyphase SRC
Decompose the N-tap filter into L branches. For each output sample, evaluate only one branch of N/L taps. Step through branches with stride M mod L.
Asynchronous SRC
When the ratio drifts (independent clocks, network jitter), a fractional phase accumulator picks the correct polyphase branch at each output instant — handling any ratio continuously.
- Accumulate phase in high precision fixed-point
- Integer part → input sample index
- Fractional part → polyphase branch selector
- Used in AES67, Dante, SDR front-ends
Where SRC Appears
- Pro audio: every DAW converts between 44.1, 48, 88.2, 96 kHz seamlessly
- SDR: wideband ADC → narrow channel at arbitrary rate
- Video: 23.976 ↔ 25 ↔ 29.97 ↔ 60 fps transcoding
- Telecom: interface between network segments at different clock rates
Filter Banks
Partition a wideband signal into subbands using analysis and synthesis filter banks — the foundation of audio codecs, OFDM, and wavelet transforms.