I've always wanted to know what sort of distortions, noise, etc. would be produced by various DAC configurations (e.g., multi-bit, filter type, oversampling, etc). Since it isn't practical for me to go buy hundreds of DACs (plus, I doubt I could find a one-bit non-oversampling DAC, for example), I've started to write some software to investigate the properties and behaviors of some theoretical DACs. While I'm not even close to done, I thought maybe some of y'all might be interested in my early results or be able to offer feedback. Questions What is the effect of oversampling, or not oversampling, on the output of a DAC? What is the effect of the bit count, either "pure" binary delta-sigma or multibit, on the general output of a DAC? DAC Design For those interested in the technical details, here's a description of the DAC I've implemented in software. The theoretical DAC that I've designed is very simple. It takes in input as 16-bit, 44.1Khz PCM. If the oversampling factor is greater than 1, the input signal is oversampled via a simple zero-order hold. Next, the signal is delta-sigma modulated: first, triangular dither is added, and then, for a given bit-count b, the potentially oversampled wave is quantized to the closest digital boundary (e.g., with a 1-bit DAC, values over (2^16)/2 are sent to 1, and values under (2^16)/2 are sent to zero). Then, the quantization error is passed through a simple 2nd order IIR noise filter that performs a standard rolling average ("slow rolloff"). The output of this filter is added to the next sample. Once the signal is produced, it is passed through a 5th order Bessel filter with a critical frequency of 28Khz. Here's a graphical representation of the DAC design: The simplest, 1-bit NOS DAC For illustrative purposes, consider a 1-bit DAC with no oversampling. Essentially, our DAC simply takes in an input signal and maps the value to a 1 if the input value is above the midpoint, and to a zero if the value is below the midpoint. Afterwards, the quantization error (the difference between the zero or one we emitted and the actual value) is added to the next input value. Finally, the signal is sent through a low-pass filter. As you'd expect, our 1-bit DAC doesn't perform very well. Here's an image showing how it reconstructs a simple 5Khz signal: The topmost plot shows the original image. The middle plot shows that 0s and 1s outputted by the quantizer, and the bottommost plot shows the resulting signal after a low-pass filter has been applied. Clearly, the reconstruction wasn't very good. To see just how not-good it was, we can take the FFT of the (filtered) output: This plot shows us that the 5Khz signal is indeed reproduced, but a significant amount of noise is also added (at a strength of almost 0.025 times the original signal). There's also some harmonic spikes (in theory, their spacing should follow a sinc pattern) that reach up to 0.075 times the original signal! The red line on the right represents the far limits of human hearing (28Khz). Clearly, a 1-bit NOS DAC performs very poorly. So, let's add some upsampling and see if we do any better. A 1-bit, 4x oversampling DAC Again, we'll feed the DAC a simple 5Khz signal and see how it reconstructs it: Wow! With just 4x oversampling, our DAC is already doing a way better job at reconstructing the input signal. There is clearly still a lot of distortion, but the quality is greatly improved from doing no oversampling at all. Here's the frequency response (this isn't the kind of frequency response you might be used to seeing -- this is showing the response from a single 5Khz input. The "correct" output would have only a single spike a 5Khz and everything else would be zero): The "noise floor" (using the term loosely here, as this isn't normally what that means) is much lower -- reduced by almost half -- as compared to doing only 1x oversampling. There is still a pesky harmonic spike around 15Khz, but overall, a major improvement. In the real world, you probably still won't find a 1-bit 4xOS DAC... Before going into multi-bit territory, let's look at a more reasonable design. A 1-bit, 32x oversampling DAC (similar to Modi2 USB) Stepping up to 32x oversampling gives us a DAC that starts to look a lot like the delta/sigma DACs used in something you'd actually buy, the like Modi2's AK4490 (which does 16x oversampling combined with AKM's "OSRD" technology gives an effective 32x oversampling). Let's look at the reconstructed signal... Now things are starting to look a bit better! While we can clearly see the group delay from the Bessel filter (the first cycle of the reconstructed wave is delayed, because it's phase has been shifted by some constant), our reconstructed wave is finally starting to look like a wave! In the frequency response, the "noise floor" has been substantially lowered again, and the size of our harmonic artifacts have also significantly decreased. A 1-bit, 256x oversampling DAC (Philips SAA7320 / CD-635) For better or for worse, you won't find a lot of 256x oversampling 1-bit DACs anymore, but they used to dominate the high-end back in the late 80s / early 90s (at least according Willenswaard &Atkinson). As you'd expect, a 256x oversampling DAC has even cleaner responses: The "noise floor" is now almost completely eliminated, but sadly our sinc artifacts are here to stay. Actual 1-bit D/S chips deal with these distortions with additional bandpass filters, but the design of these filters seems to (still!) be kept under proprietary control. Many academic papers detail how to design theoretically optimal filters to deal with these distortions, and the theoretical limit for their elimination suggests that they can be brought down to at most 0.0001 times the input signal -- that's pretty small! Who knows how well the actual implementations perform, though. So what if we stopped using just 0s and 1s, and gave ourselves a little bit more resolution in the quantization? An 8-bit, NOS DAC Now instead of representing the signal with 1-bit outputs, we'll represent the signal with 8-bit outputs. Now instead of having two different possible values, we have 256 different values. Wow! Even the unfiltered reconstruction looks pretty good, and the frequency response is amazing (I zoomed in by 10x on the Y-axis from the previous plots). There's still some noise, but it's been reduced to less than 0.0025 times the input signal! That's pretty amazing. Other DACs and conclusions If you'd like, I've created a PDF with frequency responses for a lot of DACs here: https://ryns.in/multibit_lpf.pdf As you can see, there does seem to be some benefit from oversampling with an 8-bit DAC. The benefits of oversampling seem to tail off pretty quickly once you get into 16-bit territory, though. Obviously, as I've mentioned before, most production DACs that you would buy off the shelf will have a more complex design than mine. Especially 1-bit DS DACs, which will almost always have some kind of sinc filter at the end of the chain to remove those pesky harmonic artifacts. However, I do think it's still pretty interesting to look at the multibit technologies in their barest form -- from my experiments, it really looks like adding more bits to the quantizer should make a difference.