Peak Normalization

Normalizing the amplitude of a signal is to change the amplitude to meet a particular criterion. One type of normalization is to change the amplitude such that the signal’s peak magnitude equals a specified level.

By convention in Matlab, the amplitude of an audio signal can span a range between -1 and +1. Therefore, the maximum magnitude (difference from 0) a signal can take is 1. This maximum value can be used as a reference level – called full scale (FS). As the reference level, it will have the decibel value:

0 \mbox{ } dBFS = 20 \cdot {log}_{10}(\frac{1}{1}) 

A signal’s peak magnitude can be normalized to the value of 1 FS (0 dBFS). This process will scale the amplitude of all samples in a signal such that the peak magnitude has a value of 1. An expression to create a normalized output signal, out, by scaling the input signal, in, is shown below:

out = \frac{1}{max(abs(in))} \cdot in 

The amplitude could also be normalized to any level relative to 0 dBFS. As an example, suppose we wanted to normalize the peak magnitude of a signal to -6 dBFS. An additional scaling factor, {a}_{lin}, could be applied to the normalized signal. The following steps could be used to process a signal:

{a}_{lin} = {10}^{\frac{-6 \mbox{ } dBFS}{20}} 

out ={a}_{lin}\cdot\frac{1}{max(abs(in))} \cdot in 

Peak amplitude is a measurement based on the instantaneous level of a signal. A different approach would be to analyze the overall amplitude across the signal. Next, let’s look at the common measurement used by audio engineers for this, called the RMS level