Skip to main content

Topic: filtering, dither, and noiseshaping (Read 52205 times) previous topic - next topic

0 Members and 1 Guest are viewing this topic.
  • Woodinville
  • [*][*][*][*][*]
filtering, dither, and noiseshaping
Reply #100


Woodinville,

In regards to filtering/dithering/noise shaping, how does Vista handle various operations like volume control, eq (in WMP), SRC, delivery to sound card, etc?



Volume control, src are both float. WMP will use float for some EQ and fix for others (sorry, legacy systems are fun, fun, fun).

Dither is applied, always, after the float pipeline.  Once.  Not sure what you mean by filtering, no filtering is done except as needs be done for SRC.


Thanx!

Lastly, what is the purpose or reasoning of the Advanced > Default Format ?

"Select the sample rate and bit depth to be used when running in Shared Mode"

Why does this need to be set at all?


Unlike XP, Vista uses a high-quality software resampler, and does not change the DAC rate or bit depth. Set it to whatever makes your DAC happiest, and Vista will adapt the inputs to it.

This means that you don't get any wierdnesses like having a system sound set your sampling rate to 22k and then finding out your entire movie is going to be at 22k unless you stop it and start over.

There are a lot of nasty considerations when one has to consider a lot of stuff might be coming the way of the DAC.
-----
J. D. (jj) Johnston

  • hellokeith
  • [*][*][*][*]
filtering, dither, and noiseshaping
Reply #101
Noise-shaping and dither are two different, independent processes.


For ADC, what piece or pieces of circuitry perform the dithering? How is the dither generated? Does it happen before quantization, during, or after?

Is the same kind of dither (TPDF white?) used in ADC/quantization and in word-length reduction (24bit --> 16bit)?

  • SebastianG
  • [*][*][*][*][*]
  • Developer
filtering, dither, and noiseshaping
Reply #102
For ADC, what piece or pieces of circuitry perform the dithering? How is the dither generated?

Good question. I don't know the answer either. I'd guess people are relying on thermal noise or something like that which would be a good reason to record in 24 bit accuracy. If anyone is in the know please speak up.

Cheers,
SG

  • pdq
  • [*][*][*][*][*]
filtering, dither, and noiseshaping
Reply #103
If I'm not mistaken, the sigma delta ADCs that are in common use today inherently dither, i.e. if you apply a DC level half way between two quantization levels then you will alternately get one and then the other. A successive approximation ADC would simply give you the same value all the time.

  • SebastianG
  • [*][*][*][*][*]
  • Developer
filtering, dither, and noiseshaping
Reply #104
If I'm not mistaken, the sigma delta ADCs that are in common use today inherently dither, i.e. if you apply a DC level half way between two quantization levels then you will alternately get one and then the other.

What you describe is primarily the effect of noise shaping which alone doesn't guarantee linearity. Some dithering can theoretically be achieved by randomly shifting the quantization threshold of the 1bit quantizer up and down to some extent (not too much to avoid overloading issues). I think it's really down to thermal noise and/or background noise which should be enough when recording in high resolution.

Cheers,
SG

  • Dynamic
  • [*][*][*][*][*]
filtering, dither, and noiseshaping
Reply #105

If I'm not mistaken, the sigma delta ADCs that are in common use today inherently dither, i.e. if you apply a DC level half way between two quantization levels then you will alternately get one and then the other.

What you describe is primarily the effect of noise shaping which alone doesn't guarantee linearity. Some dithering can theoretically be achieved by randomly shifting the quantization threshold of the 1bit quantizer up and down to some extent (not too much to avoid overloading issues). I think it's really down to thermal noise and/or background noise which should be enough when recording in high resolution.

Cheers,
SG


Good point. I suspect any consumer sigma delta ADC used in 16-bit mode is not applying sufficient dither to decorrelate quantization noise, just bandlimiting.

Potentially, one could implement dither by adding a signal that's suitable to provide dither onto the analogue signal before the discriminator (thresholding device). If you can add the output of a 20 to 24-bit DAC to the input, or more simply supply its output to the threshold-level input of the discriminator, you can choose a single level for each output sample period that fits the required PDF (e.g. triangular PDF). The alternative is to record to 24-bit (where thermal noise will supply dither) and convert on-the-fly to 16-bit in the digital domain with appropriate dither, which could be implemented within the ADC chip.
Dynamic – the artist formerly known as DickD

  • pdq
  • [*][*][*][*][*]
filtering, dither, and noiseshaping
Reply #106
If I'm not mistaken, the sigma delta ADCs that are in common use today inherently dither, i.e. if you apply a DC level half way between two quantization levels then you will alternately get one and then the other. A successive approximation ADC would simply give you the same value all the time.

Let me refine what I said above. I still believe that a sigma delta ADC is in effect self-dithered, but it is not noise shaped and is probably not a very desirable way of dithering. For example, if a DC level of 0.1 quantization levels is applied then 10% of the time the output value would be 1, and 90% of the time it would be 0. This introduces a tone at 1/10 of the sampling frequency, and I don't think one wants a 4.41 kHz tone added to one's audio.

  • SebastianG
  • [*][*][*][*][*]
  • Developer
filtering, dither, and noiseshaping
Reply #107
This mainly seems to be a terminology issue we're dealing with here. Sigma delta is just noise shaping in disguise. It has nothing to do with dithering in the sense of R. Wannamaker, S. Lipshitz, J. Vanderkooy. I'm not denying the fact that "dithering" is oftentimes used instead of "noise shaping" to describe the same thing. A prime example being the Floyd-Steinberg dither for images.

Let's take a simple first order sigma delta modulator as example. It's just a special case of this signal flow graph. Just set "dither" to be constant zero and H(z) to be 1. I'm leaving the proof to the interested reader. What happens is that the the quantization error (think of it as another source) gets filtered by a simple high pass filter: N(z) = 1 - z^{-1}. Because of N(1)=0 your quantized signal will even have exactly the same DC offset as your input. But there's nothing in there that guarantees the quantizer to behave like we want it to, namely adding a bit of "friendly noise" instead of potential spurious tones which is the goal of dithering.

In a way Floyd-Steinberg dithering and 1st order sigma delta modulation are very much alike because they both use high pass noise shaping filters that have "a zero at DC". The Floyd-Steinberg method also shifts the noise away from lower spatial frequency that are perceptually more important. This is referred to as "error diffusion" which translates to N(1)=0. It qualifies as noise shaping. The lack of real dithering here can lead to repeating patters in the same way non-dithered sigma delta modulation potentially suffers from "birdies". Your 4.41kHz buzz is an example of a "birdie".

Cheers,
SG
  • Last Edit: 10 July, 2008, 10:20:56 AM by SebastianG

  • pdq
  • [*][*][*][*][*]
filtering, dither, and noiseshaping
Reply #108
Thank you Sebastian, that really helps.

Am I right that typically the quantizer is one bit, i.e. a comparator?

Edit: I just took a quick look at Lipshitz and Vanderkooy. Very interesting read.
  • Last Edit: 09 July, 2008, 01:39:19 PM by pdq