Signal peak limiter related to RMS level
Hi ADI Experts team,
I need to know what blocks should be used to get the signal peaks limited by multiples of RMS signal. As example, using a factor related to RMS value to define the maximum peak value for limiting an audio signal. E. g. set 5x factor the signal fast peak will be limited to 5x the RMS value (1V RMS lead to 5V maximum peak value), the factor can be adjustable.
Other question, in the Limiter Block, how to achieve lower thresholds (since the minimum is -24dB)?
Thanks in advance!
Audio Signal Processors
Audio Products
software
dynamics processors
sigma studio 4.7
SigmaDSP Audio Processors
limiter
adau1701
Show More
Hello DevPH1,
This appears to be rather difficult to achieve. Because the RMS and peak levels both vary with the audio, we need to adjust gain according to their ratio. Thus, the desired limiter must perform real-time division of these levels. The example project below measures the RMS and peak levels, multiplies the RMS level by your desired factor, then divides this by the peak level. If the peak level is too high, the division comes out less than one. This result reduces the gain of the two audio channels, thus limiting their level to the RMS level times the desired factor.
The project, attached below, runs on a ADAU1701 eval board. Adapt as needed for other hardware. The Real-Time Display shows the limiting action in operation. Here we see limiting approaching the halfway line (-6 dB) at regular intervals in some popular music:
The catch here is the ADAU1701's division block, which has a known problem. It becomes inaccurate for divisors below 0.0625. Thus, when your input's peak level falls below 0.0625 -- about -24 dB -- this error causes more limiting than expected, in fact gating off very low-level inputs. The project above includes a simple "range extender" which scales both the divisor and output of the divider by 15.99 when necessary, adding another 24 dB of dynamic range. Hopefully this is enough for your application. With SigmaDSP there's often more than one way to achieve a desired function. For example, it may be possible to use the implicit division method shown at the link referenced above. Or run both levels through log lookup tables, converting them to suitably scaled dB levels. Then the division problem simplifies to subtraction..
Best regards,
Bob
RMS-Ratio-Peak-Limiter.zip
Hi KJBob,
Thank you for your help. I will test here and give a feedback soon.
But is desirable that threshold parameter go below -24dB with some accuracy. So I think test also two limiters in series with different (but dependents) thresholds would be a good idea.
Best regards,
PH
Hello PH,
Thanks for your reply. The range extender allows for accuracy at inputs down to -48 dB. At a multiplier of five, this works out to a minimum limit threshold of -34 dB -- even lower with multipliers under five. Let me know how your test goes, and if you still need better.
Best regards,
Bob
Please log in to reply.

