Audio Sample Rate Conversion & Anti-Aliasing Filters Guide
In digital audio processing, converting between 48 kHz video stems and 44.1 kHz music masters is not a simple matter of dropping samples. Without high-order brickwall anti-aliasing filters, ultrasonic frequencies fold downward into the audible spectrum as harsh, inharmonic distortion. This guide covers the Nyquist-Shannon theorem, filter phase distortion, and Sample Rate Conversion (SRC) algorithms.
1. The Nyquist-Shannon Theorem & Foldback Aliasing
The mathematical foundation of all digital audio sampling states that to accurately reconstruct a continuous analog sound wave, the sampling rate (fs) must be strictly greater than twice the highest frequency component (fmax):
- The Nyquist Limit (fs / 2): At 44.1 kHz, the highest recordable frequency is 22.05 kHz. At 48 kHz (the cinema and broadcast standard), the limit is 24.0 kHz.
- Foldback Aliasing: If a 26 kHz ultrasonic cymbal harmonic enters an unfiltered 44.1 kHz A/D converter, it reflects across the 22.05 kHz Nyquist boundary and reappears as an audible 18.1 kHz inharmonic frequency (44.1 - 26 = 18.1 kHz), creating harsh metallic digital glare.
2. Anti-Aliasing & Anti-Imaging Brickwall Filters
A/D and D/A converters use steep analog and digital low-pass reconstruction filters:
Linear-Phase FIR Filters
Maintains perfect phase alignment across all frequencies with zero group delay distortion. However, extremely steep slopes create symmetrical pre-ringing before percussive transients.
Minimum-Phase IIR Filters
Completely eliminates unnatural pre-ringing by pushing all ringing energy into post-ringing decay, at the cost of non-linear phase shifts near 20 kHz.
3. Why 96 kHz Matters for Nonlinear Plugin Processing
While human hearing caps out at 20 kHz, working at 96 kHz inside your DAW provides immense DSP advantages:
Nonlinear plugins such as tape saturation, guitar amp simulators, analog limiters, and wave-shapers generate high-order harmonic overtones. At 44.1 kHz, 5th and 7th harmonics of a 5 kHz synthesizer lead shoot past 22.05 kHz and fold back as audible dissonance. At 96 kHz (or 4× internal oversampling), the Nyquist ceiling rises to 48 kHz, giving harmonics ample space to decay naturally without aliasing back down.
4. Sample Rate Conversion (SRC): 48 kHz to 44.1 kHz
Converting a film mix to a CD or streaming release involves non-integer resampling math (441 / 480 = 147 / 160):
High-end converters such as iZotope RX's Resample and Weiss SARACON use long, steep low-pass filters. RX lets you set the filter steepness and how much of the ringing falls before or after a transient, and Weiss quotes THD+N better than -180 dB for PCM conversion. Neither vendor's documentation gives a stopband figure or describes the method inside, so none is claimed here.
Tested: three ways to convert 48 kHz to 44.1 kHz
We converted test tones from 48 kHz to 44.1 kHz three ways on 2026-09-23 and read the result with an FFT. Each tone was a sine wave at -6 dBFS, four seconds long, in 32-bit float. A 44.1 kHz file has no room for a 23 kHz tone, so whatever the converter leaves of it lands at 21.1 kHz, which is 44.1 minus 23. The first method is linear interpolation with no low-pass filter, the shortcut the opening paragraph warns against. The other two use the aresample filter in FFmpeg 8.1.2.
| Method | 1 kHz tone | 20 kHz tone | 21 kHz tone | 23 kHz tone, alias at 21.1 kHz |
|---|---|---|---|---|
| Linear interpolation, no low-pass filter | -6.0 dBFS | -11.3 dBFS | -11.9 dBFS | -13.1 dBFS |
| FFmpeg aresample, defaults (filter_size 32) | -6.0 dBFS | -7.3 dBFS | -10.2 dBFS | -25.9 dBFS |
| FFmpeg aresample, filter_size=256 | -6.0 dBFS | -6.0 dBFS | -6.0 dBFS | -108.5 dBFS |
The 1 kHz tone came through at -6.0 dBFS every time. The differences sit at the top of the band. With no filter, the 23 kHz tone folds down to 21.1 kHz at -13.1 dBFS, and interpolation also dulls the 20 kHz tone to -11.3 dBFS.
At its defaults, FFmpeg's resampler leaves the alias at -25.9 dBFS, 19.9 dB below the tone, and the filter starts rolling off early: the 20 kHz tone reads -7.3 dBFS and the 21 kHz tone -10.2 dBFS. Raising filter_size to 256 put the alias at -108.5 dBFS and passed both high tones at -6.0 dBFS.
If you convert with FFmpeg, set filter_size yourself rather than trusting the default. This test did not cover the SoX resampler (resampler=soxr), which needs an FFmpeg build that includes it.
The setting that passed, in FFmpeg: ffmpeg -i mix-48k.wav -af aresample=44100:filter_size=256 mix-44k1.wav
Validated. Measured 2026-09-23 with FFmpeg 8.1.2 on macOS, Apple silicon. Levels are the peak of a Blackman-windowed FFT with 1 Hz bins.
What goes wrong
The failure modes worth recognising, and the symptom that identifies each one.
- Converting more than once. Every conversion applies a filter, and the artefacts of each pass accumulate. Deliver from the original rate wherever possible rather than converting up and back down through a chain of applications.
- Assuming a higher rate fixes an earlier problem. Aliasing introduced at capture is in the recording permanently. Converting to a higher rate afterwards adds nothing, because the information the anti-alias filter removed was never stored.
Working Vocabulary
Key digital audio conversion and DSP terms:
- Nyquist Frequency. Half the sampling rate of a discrete signal processing system, representing the highest reconstructible frequency.
- Aliasing. An artifact where frequencies above the Nyquist limit are misrepresented as lower frequencies.
- Anti-Aliasing Filter. A steep low-pass filter placed before an A/D converter to block frequencies above the Nyquist threshold.
- Oversampling. Running a digital plugin at a multiple of the session sample rate (2x, 4x, 8x) to prevent harmonic foldback.
- Stopband Rejection. The degree of attenuation (in dB) achieved by a digital filter outside its passband.
- Pre-Ringing. An impulse response artifact of linear-phase filters where oscillations occur prior to a transient attack.
Sources
Read 5 October 2026. The statement that these converters work at common multiples in the tens of megahertz, with over 170 dB of stopband rejection, was removed because neither document supports it. The lowest common multiple of 44,100 and 48,000 Hz is 7.056 MHz, so a multiple in the tens of megahertz was wrong in any case.
- iZotope RX 9, Resample (RX 9.3.0). Controls for filter steepness (steeper means stronger stopband attenuation, a longer filter and more ringing), cutoff shift, a pre-ringing setting from minimum to linear phase, and a post-limiter. No stopband figure is given. It points to src.infinitewave.ca for measured comparisons, which was not read.
- Weiss SARACON. Rates up to 384 kHz and DSD128, and conversion quality given as better than -180 dB THD+N for PCM to PCM and DSD to PCM. That is a distortion figure, not stopband rejection.