Wiki

This version (05 Apr 2021 07:44) was approved by Venkatesan Krishnamoorthy.The Previously approved version (02 Jul 2013 23:32) is available.Diff

Limiter

Click here to return to the Dynamics Processors page


The limiter tracks the RMS level of an incoming audio signal and attempts to prevent it from exceeding a user-defined threshold by automatically reducing its gain.

Input Pins

NameFormat [int/dec] - [control/audio]Function Description
Pin 0: Audio Inputdec - audioAudio signal to be limited.

Output Pins

NameFormat [int/dec] - [control/audio]Function Description
Pin 0: Audio Outputdec - audioLimited audio output signal.
Pin 1: Limiter Ratiodec - controlValue representing the current gain factor being applied to the audio signal.
Pin 2: Limiter Active Flagint - controlFlag outputting a 1 if the limiter is active, or a 0 if the limiter is not active. This essentially shows if the input signal has exceeded the threshold or not. The number is an unsigned integer format

GUI Controls

GUI Control NameDefault ValueRangeFunction Description
RMS TC (dB/s)501 to 10000Controls the tracking rate of the RMS-approximation calculation used to track the input level.
Decay (dB/s)125 to 23Controls the rate at which the signal compression ratio will subside after the input signal level has dropped below the limiter threshold. Larger values result in longer decays, with 23 never recovering to the original gain.
Threshold (dB)0-24 to 24Sets the threshold point. If the input signal's approximated RMS level exceeds the threshold point, the limiter will apply compression in order to prevent the signal from exceeding that level. This threshold level does not need to be an integer; its resolution can be set in steps of less than 0.01 dB. A full-scale sine wave is a level of -3 dB, due to the RMS measurement.

DSP Parameter Information

GUI Control NameCompiler NameFunction Description
N/AlimiterAlg1slope_1Internal parameter. Do not modify.
N/AlimiterAlg1inter_1Internal parameter. Do not modify.
N/AlimiterAlg1slope_2Internal parameter. Do not modify.
N/AlimiterAlg1inter_2Internal parameter. Do not modify.
N/AlimiterAlg1slope_3Internal parameter. Do not modify.
N/AlimiterAlg1inter_3Internal parameter. Do not modify.
N/AlimiterAlg1slope_4Internal parameter. Do not modify.
N/AlimiterAlg1inter_4Internal parameter. Do not modify.
N/AlimiterAlg1comp_1Internal parameter. Do not modify.
N/AlimiterAlg1comp_2Internal parameter. Do not modify.
N/AlimiterAlg1comp_3Internal parameter. Do not modify.
Threshold (dB)limiterAlg1thresholdThe limiter threshold, in decimal format.
RMS TC (dB/s)limiterAlg1RMS_MONO_TCONSTThe time constant of the RMS approximation calculation.
Decay (dB/s)limiterAlg1decayThe decay value.
Decay (dB/s)limiterAlg1decaycomplementThe complement of the decay value.

Algorithm Description

The Limiter block is an extreme compressor, completely preventing signals from exceeding the threshold. Whenever the level signal starts to go above it, the limiter immediately stops it and keeps it at threshold.

This block can control the detected rms value and attack-time constant (TC), as well as the processor's decay.

The following graph shows the input/output relationship for a 1kHz tone with 6dB-increments thresholds.


Signal output is computed according to the following formula:


Signals below threshold remain unaffected; those above it are attenuated by the firm ratio shown above.

In the block figure, top right, the blue pin outputs the dynamically limited input signal. The second red pin (bottom of three pins) outputs ZERO (a flag) when the rms value of the input is below threshold. If the rms value exceeds the threshold, it will output ONE, giving you the option to read whether the limiter is active.

The first red pin (middle of the three pins) outputs the instantaneous-limiting ratio, and you can use this value to derive the compressed signal by employing a multiplier block to measure the signal envelope and the input. Compressed-signal displays are widely used in professional audio equipment.

Calculating Parameter Values

The equations for the limiter parameters are:

RMS dB/s value stored in RAM = abs(1.0 - 10^(rms/10*fs)), where “rms” is the value entered in the block and “fs” is the sample rate in Hz.

Decay dB/s Value stored in RAM = (fs / 26373 * Decay), where “Decay” is the value entered in the block.

Decay complement value store in RAM = 1.0 - 2^(-1.0*(23 + DecayRAM)), where “DecayRAM” is the value calculated in the previous formula.

The decay complement is only used to determine the flag output of the limiter and is not used in the limiting processing.

Example

For a sample design using this block, see the Dynamics Processor Example.

Here is a screenshot showing the use of the cell:

Here is a screenshot of its location in the Tree Toolbox:

Algorithm Details

Toolbox PathDynamics Processors - RMS - Limiter
Cores SupportedAD194x
ADAU170x
ADAU144x
ADAU176x
“Grow Algorithm” Supportedno
“Add Algorithm” Supportedno
Subroutine/Loop Basedno
Program RAM (ADAU144x and ADAU176x)77
Data RAM (ADAU144x and ADAU176x)13
Parameter RAM (ADAU144x and ADAU176x)15
resources/tools-software/sigmastudio/toolbox/dynamicsprocessors/limiter.txt · Last modified: 01 Dec 2017 15:53 by David Thibodeau