Differential operation
Hi
I am using the ADAU 1701 in a generic board design embedded in several active speaker applications/models. Basically it is the self-boot configuration and it runs very well.
Its time to make a board revision and one of the speaker applications is single channel (one speaker driver). Board is used in fully balanced analog in and out. So, in many applications I have one surplus ADC and three DAC awaiting further notice... Therefore considering to bump up the processing to a balanced/differential mode. Is it correct to expect a 1bit (6db) performance improvement? What are the problems and opportunites when doing this? Can I simply go along as before in SigmaStudio and mirror the DSP design to the other channel? Should it be operated as two identical chanels (analog signal inversion) or with one signalinverted in DSP domain?
On another issue, for me being an analog engineer, I am only concerned about signal levels referred to 0dBFS. That is, I want to know when the ADC is driven to max so that full headroom is nominally used. Why is talk about levels mostly in RMS values?
If using digital input over I2S, will full 24 bit processing and transparency to digital o/p be realized?
Thanks/Mike
Audio Signal Processors
SigmaDSP Audio Processors
adau1701
Hi Mike,
Lots of questions here. Let's see if I can break it down.
First of all, I've never tried to input a differential signal to the ADC's L and R channels, but in theory there's nothing preventing you from doing that. There's no reason to process the inverted and non-inverted signals separately; that doubles that processing load and can introduce different phase distortion to each leg, so actually I would recommend against it. The best way to do it is invert one channel in the DSP and then sum the channels together, then just do mono processing. This does increase the signal level by +6 dB, but you don't have to worry. SigmaDSP adds extra bits in the core so you have 24 dB of processing headroom while inside the DSP itself. Before you output to the DAC, however, you need to apply -6 dB of gain, split the signal, and invert one leg prior to the outputs. This will get you back to differential mode and avoids clipping, since those extra headroom bits are saturated at the DSP/DAC interface.
Your thinking about 0 dBFS is right. Definitely try to maximize your SNR by scaling the signal appropriately before the ADC, so that a full-scale analog input will yield close to 0 dBFS in the DSP. In the concept of gain staging, referencing signals to peak level is key. However, when it comes to audio processing in the DSP, RMS is typically a more appropriate way of thinking about audio, especially when it comes to dynamic processing. A peak compressor, for example, can overcompensate and reduce the natural sound of audio, whereas an RMS compressor is a little slower to react and produces a smoother output. So, when it comes to processing, typically you'll want to think about RMS level, because it's most closely related to the human ear's perception of loudness.
Hi Brett
Thanks for swift reply.
Interesting proposal. With the DSP core running at 24bits, it’s the ADC and DAC that limit analog-to-analog performance. Those are the bottlenecks on a really fabulous piece of silicon. Getting another bit performance is welcome. So I will follow your suggestion and configure accordingly.
“a bit confused but on a higher level” - how does the DSP core know if the ADC 0 and ADC 1 is getting a differential signal or a L&R one? I mean, are not the performance requirements just the same?
In my application any kind of phase distortion (and common mode) is to be avoided, how can this occur if both sides operate identical code? I.e always in 2-channel configuration?
Will there not be a processing asymmetry in between the channels by introduction of the inversion (I suppose its just a “sign” change?) in your proposal?
0dbFS issue. Agree. Perception wise, SPL, sound pressure level, is the average pressure over a propagation cycle. So it’s a function of both frequency and amplitude. RMS may be close enough. This thinking was new to me.
How can I find some utility for a DSP novice that allows me to design FIR filters that then generate the coefficients for Sigma Studio?
Thanks for a great service and fabulous products/Mike
The DSP doesn't really know anything. So, I guess you could process each leg of the signal separately and you would not see a difference in the output. However, my original thought of combining the two signals had two main reasons:
That way, your processing load is cut in half, leaving you more room to implement cool processing features.
There is going to be some small quantization/truncation error on each calculation, which accumulates as (very small) noise. While this is probably still under the noise floor of the DAC, I was thinking the extra 6 dB in the core would keep this noise as low as possible on the output.
I don't think the sign change and signal combination will introduce any artifacts. Each frame is processed sequentially, so there's really no such thing as "delay" introduced by the sign change cell in the signal flow.
Brett,
Ok, got your rationale on this.
I´ll report results after the revision.
Thanks/Mike
Please log in to reply.