Limiter
Dynamic range limiter
Libraries:
Audio Toolbox /
Dynamic Range Control
Description
The Limiter block performs dynamic range limiting independently across each input channel. Dynamic range limiting suppresses the volume of loud sounds that cross a given threshold. The block uses specified attack and release times to achieve a smooth applied gain curve.
Examples
Ports
Input
Output
Parameters
Block Characteristics
Data Types 

Direct Feedthrough 

Multidimensional Signals 

VariableSize Signals 

ZeroCrossing Detection 

Algorithms
The Limiter block processes a signal frame by frame and element by element.
The Npoint signal, x[n], is converted to decibels:
$${x}_{\text{dB}}[n]=20\times {\mathrm{log}}_{10}\leftx[n]\right$$
x_{dB}[n] passes through the gain computer. The gain computer uses the static characteristic properties of the dynamic range limiter to brickwall gain that is above the threshold.
If you specified a soft knee, the gain computer has the following static characteristic:
$${x}_{\text{sc}}({x}_{\text{dB}})=\{\begin{array}{cc}{x}_{\text{dB}}& {x}_{\text{dB}}<\left(T\frac{W}{2}\right)\\ {x}_{\text{dB}}\frac{{\left({x}_{\text{dB}}T+\frac{W}{2}\right)}^{2}}{2W}& \begin{array}{c}\\ \\ \end{array}\left(T\frac{W}{2}\right)\le {x}_{\text{dB}}\le \left(T+\frac{W}{2}\right)\\ T& {x}_{\text{dB}}>\left(T+\frac{W}{2}\right)\end{array}\text{\hspace{1em}},$$
where T is the threshold and W is the knee width.
If you specified a hard knee, the gain computer has the following static characteristic:
$${x}_{\text{sc}}({x}_{\text{dB}})=\{\begin{array}{cc}{x}_{\text{dB}}& {x}_{\text{dB}}<T\\ T& {x}_{\text{dB}}\ge T\end{array}$$
The computed gain, g_{c}[n], is calculated as
$${g}_{\text{c}}[n]={x}_{\text{sc}}[n]{x}_{\text{dB}}[n].$$
g_{c}[n] is smoothed using specified attack and release time parameters:
$${g}_{\text{s}}[n]=\{\begin{array}{cc}{\alpha}_{\text{A}}{g}_{\text{s}}[n1]+(1{\alpha}_{\text{A}}){g}_{c}[n],& {g}_{\text{c}}[n]\le {g}_{\text{s}}[n1]\\ {\alpha}_{\text{R}}{g}_{\text{s}}[n1]+(1{\alpha}_{\text{R}}){g}_{c}[n],& {g}_{\text{c}}[n]>{g}_{\text{s}}[n1]\end{array}$$
The attack time coefficient, α_{A} , is calculated as
$${\alpha}_{\text{A}}=\mathrm{exp}\left(\frac{\mathrm{log}(9)}{Fs\times {T}_{\text{A}}}\right)\text{\hspace{0.17em}}.$$
The release time coefficient, α_{R} , is calculated as
$${\alpha}_{\text{R}}=\mathrm{exp}\left(\frac{\mathrm{log}(9)}{Fs\times {T}_{\text{R}}}\right)\text{\hspace{0.17em}}.$$
T_{A} is the attack time period, specified by the Attack time (s) parameter. T_{R} is the release time period, specified by the Release time (s) parameter. Fs is the input sampling rate, specified by the Inherit sample rate from input or Input sample rate (Hz) parameter.
If the Makeup gain (dB) parameter is set to
Auto
, the makeup gain is calculated as the negative of the computed gain for a 0 dB input:$$M={x}_{\text{sc}}({x}_{\text{dB}}=0)$$
Given a steadystate input of 0 dB, this configuration achieves a steadystate output of 0 dB. The makeup gain is determined by the Threshold (dB) and Knee width (dB) parameters. It does not depend on the input signal.
The makeup gain, M, is added to the smoothed gain, g_{s}[n]:
$${g}_{\text{m}}[n]={g}_{\text{s}}[n]+M$$
The calculated gain in dB, g_{m}[n], is translated to a linear domain:
$${g}_{\text{lin}}[n]={10}^{\left(\frac{{g}_{\text{m}}[n]}{20}\right)}$$
The output of the dynamic range limiter is given as
$$y[n]=x[n]\times {g}_{\text{lin}}[n].$$
References
[1] Giannoulis, Dimitrios, Michael Massberg, and Joshua D. Reiss. "Digital Dynamic Range Compressor Design –– A Tutorial And Analysis." Journal of Audio Engineering Society. Vol. 60, Issue 6, 2012, pp. 399–408.
Extended Capabilities
Version History
Introduced in R2016a