Up, over, and resampling


I tried asking this elsewhere and got a few anecdotes (more are always welcome), but I was really hoping for some links to technical papers (that I may not fully grasp. I haven’t kept up my college calculus.)

Does anyone have links to educational articles or papers on upsampling, oversampling, or resampling? I know there’s no new information generated, but it still theoretically helps DAC performance, right? Is there a downside as long as the implementation is solid? And what qualifies as correct?

I had a CD player many years ago that had an upsampling add on board. Impossible to quickly A/B, but it certainly seemed to enhance the experience enough that I had zero regrets with the upgrade. I think it converted redbook CD to 24/192. So I’ve had a positive early experience, But I see NOS DACs are crowed about, while there are others embracing a more is better approach  

I’m trying to research a little because I finally got around to reading some of the manual for my new streamer. (So I don’t screw up ripping all my CDs for, hopefully, the last time.) I realized it has options for resampling during playback. If I’m using the USB output it always sends at 32bit but can also goose PCM up to 8x (384kHz max). S/PIDF output is bumped to a maximum of 24/192. I don’t hear a big obvious difference, but I haven’t spent much time looking for one either. Without any DSP down the chain is resampling really worth it? And if I were to some day splurge and get an M Scaler or similar would it make sense to disable any resampling by my streamer in favor of a presumably better dedicated component?

Because it will be asked. My virtual system is mostly current. CD player was an Ah! Njoe Tjoeb, that was mothballed years ago when the transport started getting twitchy. The streamer is an AURALiC Aries G1.1. DACs are Chord Qutest or Soekris dac1421.

cat_doorman

Showing 3 responses by yage

This is a really good overview on oversampling / upsampling from Analog Devices:

 

https://www.analog.com/media/en/training-seminars/tutorials/mt-017.pdf

 

If you need more information, I suggest using the keywords "multirate digital signal processing" when you do your online search.

Upsampling and oversampling with respect to audio playback is essentially the same function. In the DSP world you can usually find it explained under the topic of multirate interpolation. The incoming data is zero-padded to the desired sampling rate and the digital filter interpolates the values. The interpolation step is not a ’guess’, it’s more akin to a ’recovery’ of the sample values as if you had originally sampled the signal at the higher frequency. When the interpolation filter’s impulse response is convolved with the audio data, the filter coefficients multiplied with the other samples in the signal along the length of the filter will essentially fill in those zero-padded positions.

 

Resampling by a non-integer factor doesn’t involve the system clock. It is upsampling (zero-padding) by an integer factor followed by an anti-aliasing filter and downsampling by another integer factor. The resampling ratio is given by the upsampling factor divided by the downsampling factor. Here is a link to a good overview - https://www.eetimes.com/multirate-dsp-part-2-noninteger-sampling-factors/

 

The computational load is based on how many coefficients the digital filter has (i.e. the length). The ideal filter for audio purposes is the sinc function. However, it is impossible to implement because it would have an infinite number of coefficients. The digital filter is always an approximation and there are many approaches and algorithms to construct these filters. Also note that the longer the filter, the more delay it introduces into the reproduction process.

 

Here is a free online book on DSP that you’ll probably find useful:

https://www.dspguide.com/

 

Here are some informative videos that explain some of the fundamental concepts of digital video / audio:

 

Digital Media Primer for Geeks

Digital Show and Tell

@erik_squires

Value repetition cannot be used. Think about it. If you simply copy forward values to the new sample positions, you’ve stretched the signal out in time. Zero stuffing the audio data is how oversampling / upsampling is performed on playback because we do not have the information on what value the signal is in that moment in time. The digital interpolation filter will calculate the values in the zero stuffed positions and output a valid audio signal.

 

Please read the following on multirate interpolation - https://www.staff.ncl.ac.uk/oliver.hinton/eee305/Chapter9.pdf