Why does the limiter stop at +6 dB?
Using compressors to avoid output clipping says "I would suggest using a full-range (-90 dB to +24 dB) RMS compressor", but the compressors don't go to +24 dB, they only go to +6 dB:
Used this way, it only limits for 6 dB and then gives up:
But the headroom of the internal representation is 16.0 = +24 dB right? So it's not possible to directly limit +24 dB down to 0 dB using the compressor block? We have to attenuate by -18 dB before the compressor, limit to -18 dB, and then boost back up +18 dB so that the limited value lines up with the maximum output of 0 dB? If I do that, then it behaves similarly to the Limiter block. Is that how these peak compressor blocks are meant to be used?
limiter
Hi J327:
The reason for the normal dynamics processor going only to 6dB is because some internal hardware limitation that otherwise require added assembly code. We did coded (and provide) the extended range dynamics processors that allow you to go all the way up to 24dB. Please be mindful of the fact that the DSP clips it's output @ 0dB FS so this extension of range (and even the extra 6dB of regular dynamics processors) only give this precision for internal precision before the signal is sent out to the serial ports/DACs.
Hope this helps.
Miguel
Hi J3627,
To expand a bit on Miguel's answer, those extra high-order bits provide much-needed headroom for internal multiply and add operations. For example, leonxp's recent post of a IIR filter includes a coefficient of 10.02 -- that's fully a 20dB gain above the input level:
SigmaDSP's built-in headroom allows for calculations like this, so your filters work as intended. When normal levels exceed 0 dB they encroach upon the headroom, risking overflow with nasty-sounding results. Thus it makes sense for dynamics processors to operate around zero dB, even though more range is available.
Bob
MigCha wrote:
We did coded (and provide) the extended range dynamics processors that allow you to go all the way up to 24dB.
What do you mean by this? What are the "extended range dynamics processors"?
Robert Blowsky wrote:
To expand a bit on Miguel's answer, those extra high-order bits provide much-needed headroom for internal multiply and add operations. ... When normal levels exceed 0 dB they encroach upon the headroom, risking overflow with nasty-sounding results. Thus it makes sense for dynamics processors to operate around zero dB, even though more range is available.
Yes, I (think I) understand this, but that's why I'm using a hard limiter at the very last stage before the DAC, so that any signal that goes above 0 dB is limited back down to the 0 dB limit without clipping. Is that bad?
With -18 dB before the peak limiter, a -18 dB limit, and +18 dB after the limiter (red trace), it behaves the same as the Limiter block (blue trace):
Here is the location of the full-range compressors in the library:
(They exist for peak as well as RMS)
The graph will only let you set the curve up to +6 dB, but I believe the last two points on the graph are extrapolated for input levels above +6 dB and below +24 dB. Above +24 dB, the DSP is overloaded, since that's the largest number that can be represented in the 5.23 number system.
Ok, the only mono Full Range I see is "RMS (no gain)". Under Peak, they are all +6 dB:
This is SigmaStudio 3.8 with an ADAU1702.
BrettG wrote:
The graph will only let you set the curve up to +6 dB, but I believe the last two points on the graph are extrapolated for input levels above +6 dB and below +24 dB.
Hmm.. in my first graph above, it looks like above +6 dB, the limiter stops working and the attenuation stays fixed at -6 dB as the signal is increased further.
J3627,
You may be right. I was answering from memory since I'm at a technical conference this week... but I know that the operation of this cell has changed since its original inception. I will try to test it out next week at the office and I will let you know my results.
Sorry that I kind of dropped the ball on this request!
I did some tests today. I used a square wave and fed it through several compressors/limiters to see how it behaves.
The RMS limiter appears to work as advertised, all the way up to +24 dB.
The Mono Peak compressor works up to +6 dB, but not beyond it.
I have entered the bug into the system.
If you need to guarantee that clipping will not occur, one solution might be to cascade several peak limiters, or to precede a peak limiter with an RMS limiter.
In SigmaStudio 3.10, there's a "Mono Peak Full Range (no gain) 2nd Gen". Is this a new version that doesn't have this 6 dB limit? It seems to use more instructions and RAM than just attenuating before and boosting after the old compressor, though.
ADIApproved said:
I have entered the bug into the system.
Any update? :D
The wiki page is broken:
wiki.analog.com/.../peakfullrangenogain
Please log in to reply.



















