ΣSigmaStudio Ask AI Русский Log in

ADAU1446 Dither

SigmaDSP & SigmaStudio jstronz Feb 6, 2011 00:00 7 replies Original on forum ↗
Thread Summary

Thread Summary

The user inquired about dither application on I2S output ports in the ADAU144X family. The DSP outputs a full 24-bit signal without truncation, so dither is not applied. However, if needed, dither can be manually implemented in the DSP by adding a white noise signal with a gain of -102 dB to the audio signal. The internal math uses 56-bit accumulators, but the audio reverts to 5.23 format before output, leading to truncation. A request has been made to the software team for a double-precision dither algorithm in SigmaStudio.
AI Generated Content
Subscribe
jstronz Question
Feb 6, 2011 00:00

Is dither applied to all I2S output ports in this processor family? In the AD1940 family this is an option on the I2S port description and I find no mention of Dither in the ADAU144X family.

ad1940

Audio Signal Processors

adau1446

SigmaDSP Audio Processors

ADIApproved Reply
Feb 7, 2011 00:00

The ADAU144x does not have dither on the serial ports. I am intrigued by your question and I'm currently looking for a way to generate dither in software. Right now I'm able to generate +/- 1 LSB dither, but in reality we need +/- 0.5 LSB in order to make it work. I feel that this would probably require some double-precision calculation or perhaps some scaling in order to make it work properly. I'll check with the software team to see if they have any suggestions.

jstronz Reply
Feb 8, 2011 00:00

I am surprised that there would be no dither applied as simple truncation can lead to audible artifacts being produced at the outputs.

ADIApproved Reply
Feb 8, 2011 00:00

Yes, truncation can lead to audible artifacts, but in this case, no truncation is actually occuring. The DSP outputs a full 24-bit signal and the serial ports output a full 24 bits as well.

Dither is useful in situations where you are lowering the bit rate of a signal by truncating the LSBs. For example, if you connected our 24-bit DSP to a 16-bit audio DAC, then the DAC's serial input port would truncate the lower 8 bits, effectively reducing the dynamic range of the signal from 144 dB to 96 dB. In this case, artifacts resulting from truncation could certainly be louder than the noise floor of the DAC and could be audible to the listener.

However, if you output from the DSP directly to a 24-bit DAC (see our list of 24-bit audio codecs for examples), there is no truncation necessary. The full 24 bits are output from the DSP directly to the DAC input, so your dynamic range of 144 dB is preserved. Our evaluation board, for example, features a full 24-bit path from AD1938 to ADAU1442 to AD1938.

ADIApproved Reply
Feb 8, 2011 00:00

And by the way, if you have a situation where you need to output to a 16-bit DAC, you could manually implement dither in the DSP itself. You basically need to create a white noise signal, apply a gain of -102 dB (which makes it have a peak-to-peak amplitude of 1 LSB in a 16-bit system), and then add that noise to the audio signal. This will effectively add +/- 0.5 LSB of noise to the output signal, which is really the simplest form of dither.

jstronz Reply
Feb 8, 2011 00:00

Actually I am concerned with having dither even on the 24 bit word. I would prefer to give up a little dynamic range to insure that any further processing of the 24 bit word does not result in artifacts. I still think it would be good to have +/- 0.5 bits of dither on the 24 bit word to insure that there are no tones in the noise floor. I assume that the internal math results in truncation to to 24 bits at the output also.

ADIApproved Reply
Feb 8, 2011 00:00

The accumulators are 56 bits deep, but after calculations are performed, the audio reverts to 5.23 format before it is passed on to the next algorithm, or "cell." This is because audio is stored in data RAM as a 5.23 word. So, yes, on each calculation there will be a truncation to 24 bits.

Prior to outputting on the you could do a double precision dither operation that would put +/- 0.5 LSB of noise on the signal, but this isn't possible with the currently available cells in the library. I've put a request in to the software team for this algorithm; hopefully it will show up in the next release of SigmaStudio.

EZAdministrator Reply
Aug 2, 2018 00:00

This question has been assumed as answered either offline via email or with a multi-part answer. This question has now been closed out. If you have an inquiry related to this topic please post a new question in the applicable product forum.

Thank you,
EZ Admin