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
Since this is obviously true from the algebraic properties of real or
complex numbers, both scaling and superposition have been
verified. (For clarity, an explicit ``

'' is used to indicate
multiplication.)
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
where

denotes a gain that depends on the ``current level'' of

at time

. A common definition of signal level
is
rms level (the ``root mean square'' [
84, p. 75]
computed over a sliding time-window). Since many successive samples
of

are needed to estimate the current level, we cannot correctly
write
![$ g[x(n)]$](http://www.dsprelated.com/josimages/filters/img491.png)
for the gain function, although we could write
something like
![$ g[x(n-M\!:\!n)]$](http://www.dsprelated.com/josimages/filters/img492.png)
(borrowing
matlab syntax), where

is the number of past samples needed to estimate the current amplitude
level. In general,
That is, the compression of the sum of two signals is not generally
the same as the addition of the two signals compressed
individually. Therefore, the superposition condition of linearity
fails. It is also clear that the scaling condition fails.
In general, any signal operation that includes a multiplication in
which both multiplicands depend on the input signal can be shown to be
nonlinear.
Previous:
Nonlinear Filter Example:
Dynamic Range CompressionNext:
A Musical Time-Varying Filter Example
written by Julius Orion Smith III
Julius Smith's background is in electrical engineering (BS Rice 1975, PhD Stanford 1983). He is presently Professor of Music and Associate Professor (by courtesy) of Electrical Engineering at
Stanford's Center for Computer Research in Music and Acoustics (CCRMA), teaching courses and pursuing research related to signal processing applied to music and audio systems. See
http://ccrma.stanford.edu/~jos/ for details.