Sounds Logical
home

WaveWarp 2.0 Example DrawingBoard

Index Current Example DrawingBoard Group Previous Example DrawingBoard Group Next Example DrawingBoard Group Previous Example DrawingBoard Next Example DrawingBoard Bottom of Page

Description | Components Used

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:

Index Current Example DrawingBoard Group Previous Example DrawingBoard Group Next Example DrawingBoard Group Previous Example DrawingBoard Next Example DrawingBoard Top of Page

home - news - products - store - support - site map - company info
© 2007 Sounds Logical. All rights reserved.
Sounds Logical
legal notice - privacy statement