FFT noise reduction filter

The method described here is protected by the WavePurity™ trademark.
It was developed by Ulf Schönherr specifically for the WavePurity software.

The method described in the following section is included in WavePurity since version 3.00.

The WavePurity FFT noise filter uses a multi-stage method for eliminating noise from an audio track. The basic principle behind this filter is the fact that noise (ideally, we assume "white noise") imposes evenly distributed energy upon all wavelengths within the spectral range from 0..22kHz . This can be observed clearly in the FFT spectrum display.

The noise reduction is carried out in the frequency range, which means that the signal is transformed from the time range into the frequency range (FFT), where a noise reduction is carried out by editing the amplitude values , and afterwards the signal is transformed back into the time range.

Step 1:
Analyze the volume of the music track

First, the volume of the entire track is determined. This operation is carried out block by block (block size = FFT window size). In every block, the average volume is calculated. Step 1 now stores the minimum value minAvgVolume and the maximum value maxAvgVolume of these average block volumes. In order to avoid errors caused by artificial silence , step 1 excludes blocks with an average volume below 10 digits. Furthermore, the average of all block volume minimum values meanMinVolume is calculated.

Step 2:
Random samples

Now, a random generator selects random samples from the music track , but these are only accepted if the average volume at the random position meets certain criteria. Consequently, there is a certain pre-selection of blocks which are close to the lower limit of the medium lowest level of noise but are still located within the medium total minimum of block volumes.

Step 3:
Optimizing the random values

Now, an optimization process is carried out. This means that the number of found positions is reduced to relevant points. The criterion for a good fit is the lowest variance of the medium amplitude values of all blocks.

Step 4:
Searching for a cluster point for the noise

Now, the noise filter starts to search for blocks which fit in well statistically with the points already found. The criterion is whether an improvement of the variance can be achieved by the new point .

Step 5:
Determining the noise profile

In the next step, the noise profile is calculated for the points found.

Step 6:
Smoothing of the noise profile

Very often, the noise profile has some "needles" which are imposed upon it by interspersed signals (for example the 19 kHz tone in stereo radio). Furthermore, the noise profile itself is often contaminated by noise. Experience shows that noise reduction creates less artefacts if a moving medium value filter is applied to the noise profile for smoothing. To achieve this, the top frequency of 22 kHz is loaded as the start value and the spectrum is slowly traversed towards the bottom frequency of 0 kHz.

Step 7:
Linearizing the noise profile

In order to achieve the straightest possible run of the profile , the noise profile is interpolated in the lower spectrum.

Step 8:
Determining the reduction profile

It has been shown by experiment that, from the determined noise profile, a reduction profile must always be calculated, which is finally used for the amplitude subtraction. There is no effect if the determined noise profile is only subtracted 1:1 from the signal blocks. This is a fact which can be proved by experiment.

Step 9:
User-defined adjustment of the reduction factor

In its current implementation, the WavePurity FFT noise filter is equipped with a "slider" from 50% to 150% or noise reduction. This allows the user to adjust the impact of the reduction profile in critical sections.

Step 10:
Dynamic tracing of the noise level

This step is carried out virtually online during the noise reduction process. In many recordings, particularly from older tape recorders, the noise shows a "pumping" behavior. This effect can cause severe problems for the FFT noise filter when it attempts to determine the noise profile, because the noise is simply not stable enough to show definite clustering in the histogram. The determined noise profile will always be slightly adulterated in recordings of this type. In order to compensate for this, the reduction profile is adjusted slightly during noise reduction and thus counteracts the pumping of the noise. This is a well-tried method.

Step 11:
Additional low-pass + rumble + network hum filter

There are a number of operations which can be carried out at the same time as noise reduction without causing any interferences. These operations are:

  • Low-pass filter to block high frequencies
  • Rumble filter for recordings from old records
  • Network hum filter

During noise reduction, the WavePurity FFT noise filter applies an additional low-pass filter in order to block all amplitudes of the wavelengths above a certain frequency. The standard setting is 20 kHz.

A rumble filter improves the signal quality in recordings from old records . Due to motor noises and bent records , the pickup system, which lies on the record, will often create very low-frequency signals. If you have a high-quality hi-fi system, you can feel how the membranes of the bass loudspeakers vibrate. High-quality record players are generally equipped to counteract these effects. If your record player is not equipped in this way, WavePurity can achieve the same effect by digital methods.

Another very unpleasant effect is caused by interferences from the 50 Hz network frequency into the wanted signal. This is often caused by hardware deficiencies, insufficient grounding or shielding . Inductive pickup systems on record players are often very sensitive. This can be counteracted by the use of a very steep edge filter which masks the wavelengths from 47 Hz .. 53 Hz in the FFT spectrum before it is transformed back.

« back to overview