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

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

The oversampling is usually a multiple of the native rate 44.1kHz can become 88.2, 176.4, or even 352.8kHz which is 8x over USB. (Similarly 48kHz can become 96,192, or a max of 384kHz.) At its crudest existing value repetition could be used,

 

OP: Well wish you had read my post. This is the ONLY definition of OVERsampling there is. The original values are repeated. This requires no processing but improves the behavior of the output filters. If it isn’t doing exactly this it is something else.

The crudest, best and average oversampling systems all do this. The only variable is the number of oversamples per original.

@cat_doorman 

I would do a serious listening test of the same CD with different sample rates. Don't think there will much difference if any.

Depending on the size of your collection (and other CDs you may borrow) you will end up with a sizable amount of data.  I understand storage is cheap and getting cheaper but I would also start out with two copies (anticipating failure!).  I'm kind of a belt and suspenders guy.

Regards,

barts

 

@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

https://www.stereophile.com/asweseeit/344/index.html

Whoops my bad. I only got Oversampling half way correct. It does NOT interpolate, that part I was correct about, what I missed is that the intermediate samples are all at 0.

Also, I agree with the following statement, that the best thing these filters do is slightly tweak the top octaves:

So while I strongly suspected that the improvement I heard with the dCS 972 was simply due to its using a different oversampling filter, along with the benefit of better downstream DAC behavior when fed a 24-bit rather than a 16-bit signal—as I described in my January 1996 review of the Meridian 518—I wasn't sufficiently sure to spill ink on the subject.