|
| WaveWarp 2.0 Example DrawingBoard

NoiseReductionBySpectralSubtraction5
Description
Noise Reduction by Spectral Subtraction 5
Illustrates the use of the "Broadband De-Noiser 3" block for removing broad-band noise from an audio signal. The
de-noiser works by subtracting an estimate of the noise spectrum from the measured noisy signal spectrum, thereby yielding
an approximation of the noise-free signal spectrum (which is converted back to the time domain at the output to give the
"cleaned-up" signal). The first input of the de-noiser is the noisy signal (produced artificially in this example by adding
random noise to an audio track). The second input would ideally be a direct measurement of the noise alone. This is rarely
-- if ever -- available (if it were then the noise could simply be subtracted in the time domain yielding a perfect noise
cancellation!) . Rather, it is common practice to use a signal-free noise-only portion of the audio track as the "noise
reference" from which to model its spectrum. However, in the example here, the reference noise is obtained by passing the
noisy signal through an amplitude wave-shaper. By setting the wave-shaper to "Compression", the low-amplitude
components in the noisy signal are enhanced. Assuming that the noise accounts for the low-amplitude components across
the spectrum, then this technique will yield a reasonable noise reference signal. Inside the de-noiser, the computed
spectrum of the noise reference is averaged in time so that any non-noise i.e. signal contributions will tend to average out
since they do not persist in time. As long as the broad spectral characteristics of the derived noise reference are similar to
the broad spectral characteristics of the noise corrupting the signal, then the spectral subtraction will be effective.
You can appreciate the effectiveness of the noise reduction by momentarily clicking the "Bypass" checkbox in the
de-noiser parameter window. Noise reduction is to some extent a heuristic procedure whose success depends considerably
on the relative spectral, temporal, and amplitude characteristics of the signal and noise components in a given track.
Experiment with all parameters in the de-noiser to investigate its behaviour, and try with different audio tracks (preferably
actual noisy ones rather than artificially noisy ones). Also try different wave-shaper profiles for creating the derived noise
reference.
The average noise spectrum estimate is continuously updated as time goes by. If the noise spectrum does not vary
significantly in time, then the estimate will converge to an approximately constant (non time-varying) profile. You can see this
in the current example by running the DrawingBoard in loop mode for, say, 10 seconds or so then hitting the "stop" button.
After hitting "stop", the current average noise spectrum estimate will be displayed in the plot window. It will appear relatively
smooth. If you hit "play" for a few more seconds then "stop" again, the plot will hardly change, thus revealing that the
average noise spectrum is essentially fixed in time. This spectrum can then be stored as a "template" for future use via the
"Save noise spectrum to file" dialog box. Thereafter, this "template" spectrum can be loaded via the "Load noise spectrum
from file" option. When selected, the real-time noise spectrum estimator is disabled, and the imported fixed spectrum is used
in the noise cancellation. In most situations, this mode of operation i.e. using a fixed average noise spectrum gives
adequate performance.
In addition to creating noise "template" spectra from within Wavewarp, you may create them externally in MATLAB using
the m-files bundled with Wavewarp, or by hand using a text editor.
See also the "NoiseReductionBySpectralSubtraction1.dwb" , "NoiseReductionBySpectralSubtraction2.dwb" ,
"NoiseReductionBySpectralSubtraction3.dwb" , and "NoiseReductionBySpectralSubtraction4.dwb" example Drawing
Boards which uses an alternative variant of the non-linear spectral subtraction algorithm (as embodied in the "Broadband
De-Noiser 1" and "Broadband De-Noiser 2" blocks).
[Ref: "Advanced Signal Processing and Digital Nosie Reduction", Saeed V. Vaseghi, Wiley-Teubner, 1996, chapter 9.]
Components used:

|
|