Why Dynamic Range Compression is Nonlinear
We can model dynamic range compression as a level-dependent
gain. Multiplying a signal by a constant gain (``volume control''),
on the other hand, is a linear operation. Let's check that the
scaling and superposition properties of linear systems are satisfied
by a constant gain: For any signals , and for any constants
, we must have
![$\displaystyle g \cdot [\alpha \cdot x_1(n) + \beta \cdot x_2(n)] = \alpha \cdot [g \cdot x_1(n)]
+ \beta \cdot [g \cdot x_2(n)].
$](http://www.dsprelated.com/josimages_new/filters/img489.png)

Dynamic range compression can also be seen as a time-varying
gain factor, so one might be tempted to classify it as a linear,
time-varying filter. However, this would be incorrect because the
gain , which multiplies the input, depends on the input
signal
. This happens because the compressor must estimate the
current signal level in order to normalize it. Dynamic range
compression can be expressed symbolically as a filter of the form





![$ g[x(n)]$](http://www.dsprelated.com/josimages_new/filters/img492.png)
![$ g[x(n-M\!:\!n)]$](http://www.dsprelated.com/josimages_new/filters/img493.png)

![$\displaystyle g(x_1 + x_2)\cdot [x_1(n) + x_2(n)] \neq g(x_1) \cdot x_1(n) + g(x_2) \cdot x_2(n) .
$](http://www.dsprelated.com/josimages_new/filters/img494.png)
In general, any signal operation that includes a multiplication in which both multiplicands depend on the input signal can be shown to be nonlinear.
Next Section:
Convolution Representation Summary
Previous Section:
Series, Real, Second-Order Sections