Sample Rate Conversion Comparison

Sample Rate Conversion Technical Details

We based much of this test site on the excellent work of Jorg Hermann Muller, who wrote a thesis for a degreee on Sample Rate Conversion for the Audio Doppler Effect. It was an excellent resource to base this test suite on.

Test Scripts

In the interests of openness, the test scripts are can be downloaded and verified. This ensures there are no bias in testing, all steps can be reproduced and the your results compared with the live site. Matlab creates the test samples, whilst Octave (a Matlab cloan) process the results. Download Test Scripts. The scripts are licensed under GNU GPLv3.

Tests Employed

Spectrogram of a sweep 1 to 44 kHz

A sine sweep from 1 to 44 kHz sampled at 96 kHz, the SRC downsamples to 44 kHz, effectively remvoing anything above 22050 Hz. The resulting signal is plotted as a spectrogram, this will show issues with aliasing effects, or filter cutoff would show as extra lines. Noise would appear as dots across the plot (instead of a black background). Two different plots are produced, one the full 20 seconds, which should be half black and a zoomed plot to 11 seconds.

Aliasing

A 23 kHz sine at -4 dBFS with a white noise floor of -150 dBFS over 30 seconds. The ideal plot is a continuous line touching the -150dB line, many SRC routines engage a gradual filter at 20 kHz which would be visible on this plot. This test is used to detect aliasing, which manifest as spikes above the -150dB line.

Nyquist Filter

Using the data from the alias test, this is plot is zoomed between 18 to 22 kHz, and shows the effective bandwidth preservation of the SRC, 100% bandwidth preservation will be a continuous noise line to the end, whilst 95% preservation will show a gradual power reduction from 21 kHz onwards.

Intermodulation Harmonic Distortion

Two sine waves one at 64.59 Hz, -6 dBFS and the second at 6998 kHz, -18.0412 dBFS, which equals quarter the amplitude of the first sine. This test will highligh aliasing and dynamic range of processing. It will also show if dither has been applied, look for high frequency signals on the plot.

Intermodulation Harmonic Distortion (difference)

The ideal plot is subtracted from the SRC converted plot, this plot will highlight differences easier.

Impulse Frequency

A frequency response displaying leakage beyond the ideal frequency response. Impulses are at sample positions n so that {n mod 320} is a permutation of {0, 1, 2, . . . , 319}. All fractional differences in sample positions between input and output signal are addressed exactly once. The output signal is upsampled to 14.112 MHz and the impulse responses are added to obtain a high resolution impulse response.

Impulse Response

Displays the phase response, most SRC balance the response with pre and post ringing, personal preference might prefer a minimum phase response where there is no pre-ringing, the quality score is based mainly on reduction of pre-ringing. Reducing pre-ringing, will also likely negatively effect one of the other parameters, such as frequency response.

Impulse Phase

Displays the phase response across the whole frequency range.

Impulse Passband

Displays the SRC filter used close to the nyquist frequency.

Impulse Transition

A zoomed plot of the nyquist frequency showing the filter response.

Gapless Sine

A sine wave is split into two, both are resampled independently. This plot is the two signals joined back together. The blue line shows the transition after resampling. Deviation from sine wave shape likely means an audible glitch. Any value over +1 would clip if later not corrected.

Gapless Sine (frequency plot)

A frequency plot of the gapless sine test.

Appendix

Bachelor Project Thesis


Copyright HydrogenAudio 2025, All Rights Reserved.
An unhandled error has occurred. Reload 🗙