Sample Rate Conversion

Sample rate conversion is the process of converting a digital signal from one sampling rate to another, while changing the information carried by the signal as little as possible.

Source: Wikipedia

SRC is often used in DACs. The reasons are explained here.
In PC audio it is needed when your soundcard supports 48 kHz only and you play a (ripped) CD (44.1 kHz).
The mathematics are complex. If you can read this ( Shannon's sampling theorem ):

You might try The Digital Audio Resampling Home Page'', by Julius O. Smith III.

Test

Infinite Wave tested a lot of implementations.

SRC explained

SRC Comparisons

 

Some examples of a swept sine wave with -6 dbFS peak amplitude, spanning the frequency range from 0 to 48 kHz for 8 seconds

 

Secret Rabbit Code 0.1.2 (ZOH)

 

Logic8 (Tiger)

R8brain Free

Obvious SRC implementation has its impact on sound quality.

 

OSX

Benchmark Media provides an example of the impact of sample rate conversion in OSX 10.4.6

 

A 16-bit 10k sine wave played through iTunes on OSX 10.4.6, without any sample-rate conversion.

 

A 16-bit 10k sine wave played through iTunes on OSX 10.4.6, with sample-rate conversion from 48 kHz to 44.1 kHz.

 

The distortion seen in this graph is solely caused by sample-rate converting from 48 kHz to 44.1 kHz. As seen in the graph, the signal-to-noise ratio went from 130 dB to less then 80 dB!

Windows 7

Win7 has its problems to.

When you convert the sample rate of an audio file from one frequency to another frequency on a computer that is running Windows 7 or Windows Server 2008 R2, the new audio file sounds distorted during playback.

The audio file sounds distorted when you play it on any audio record, capture, or encoder application if the following conditions are true:
  • The application uses the Multimedia Extensions (MME) Wave I/O API.
  • The application relies on the Audio Resampler or an audio sample rate converter.

This issue occurs because the sample rate converter uses linear interpolation when it converts audio files. This behavior creates noise on the audio file that is sensitive to the human ear.

Audio file sounds distorted after you convert the sample rate in Windows 7 or in Windows Server 2008 R2 - Microsoft Support

Up and down

Uli Brüggemann did a very nice experiment.
Upsample the original 44.1 to 176 and back to 44.1

Original signal

 

Ideal upsampling to 176

 

Ideal downsampling from 176 to 44.1

 

The conversion has been done using a sinc-filter with 65536 taps

 

The same procedure using Adobe Audition

 

Original signal
Adobe Audition upsampling to 176
Adobe Audition downsampling from 176 to 44.1

 

The same procedure using SRC (Secret Rabbit Code) using cPlay

 

Original signal
Secret Rabbit Code upsampling to 176
Secret Rabbit Code downsampling from 176 to 44.1

 

Obvious both Audition and Secret Rabbit Code are unable te reconstruct the original signal.
Shows you that sample rate conversion can have a profound impact on sound quality.

Asynchronous sample rate conversion

Most of the time sample rate conversion is about converting the sample rate and/or the bit depth to another value.
This is done entirely in the digital domain, hence a plain mathematical thing.

 

A DAC can use  ASRC.
It decouples the timing of the input stream from the timing of the DA conversion.
This is about getting rid of input jitter.

References

  1. The Digital Audio Resampling Home Page'', by Julius O. Smith III
  2. The ups and downs of arbitrary sample rate conversion - Ivar Løkken, 12/4-2005
  3. Sind analoge Schnittstellen besser als digitale? - Uli Brüggemann
  4. Windows 7's resampling sucks, How can it be improved? - HydrogenAudio
  5. The Bits In-Between - An EE's Guide to Survival Between Microphone and Voice Coil - Bruno Putzeys
  6. 72 software sample rate converters put to the test - Audio Science Review