Viewing a constant signal in DSD with variable initial noise

I wanted to see what would be the DSD encoding of a “clean” sine signal, but with a variable noise initially set at the sigma stage. In other words, slightly different DSD encodings can represent the exact same analog signal (with a proper low-pass filter). To be able to see this, I have created this single HTML page with some Javascript:

Interpretation of the generated image:

  • The left margin shows the initial noise:
    • The magenta scale is for negative values of noise from -1 to 0
    • The green scale is for positive values of noise from 0 to 1
    • Overall, 512 different values of noise between -1 and 1 on a linear scale
  • The remaining black and white pixels are DSD bits, where each row of pixels is a single mono DSD stream.

Please note: I am not a signal processing expert, so the DSD encoding in the Javascript code is probably too simple, but I believe it is good enough to show what DSD looks like.

Food for thoughts: if we assume different DSD streams should losslessly represent the same analog signal (when low-pass filtered), than what about a conversion of DSD to PCM followed by PCM to DSD? I know Octave Records is using “optimized” digital audio converters, but understanding conversion problems is not easy.

1 Like

The initial noise (along with the signal) is filtered by the noise shaping filter. If that filter is stable (loosely speaking, it doesn’t amplify any of its input frequencies) then that initial noise dies down and doesn’t affect the output after a while.

To get a real idea with at least, say, 120dB S/N you’ll need a 5th order sigma delta modulator and hopefully at least double rate DSD or more.

Instead of initial noise, perhaps you might be interested in continuous dither. Like in PCM dither can linearize the output making it more stable, but since it’s random the DSD output will be different for all periods of the sine wave. If the reconstruction filter (the final low pass filter) has a cutoff below the frequency where the noise shaping filter rises above, say, -144dB then you’ll get out almost exactly the same PCM you put in.

If you use the same sample rate for your intermediate PCM when going from DSD to PCM, processing that PCM and then going back to DSD, you don’t lose any of the “DSD goodness”, e.g. all of the filters can be low order and smooth.


Thank you Ted for your reply.

Since yesterday, I am trying to understand what a 2nd order SDM would do, but it is difficult for me to imagine what two integrators would generate, even with this section Second-order and higher-order modulator (Wikipedia). I mean, it feels like what was linear becomes quadratic. With sin() and cos() functions, after four integrations or derivates, I remember (from my calculus class) that we get back to the same phase, but the function is usually scaled by some factor. Having the phase right can possibly explain why the 5th order SDM would be a good choice after the 1st order SDM, but this is quite counter-intuitive. :slight_smile:

SDMs are counter intuitive.

You can think of DSD as a bitstream that when low pass filtered gives you the output that you want. I’ve even implemented a (very inefficient) greedy algorithm which simply tries the most promising bitstreams one bit at a time - then a fifth or higher order filter is good for audio. SDM is a much more efficient way of approximately finding such a bitstream.

A simple way of looking at a SDM is to think about a single filter with two inputs: the original bitstream/PCM and the negative feedback from the output. The next output is simply whether the filtered output is higher or lower than the (also filtered) input. There are lots of ways of implementing this (or an equivalent topology), each with their own benefits and problems.

The difficult thing is that it is basically intractable to analyze the stability of second and higher order single bit SDMs to the level needed for confidence for a real implementation. You must simply try it on enough combinations of inputs to verify it remains stable…