6.3 Removing 1d Noise

Removing noise from data is a very tricky issue, since one must first decide what constitutes noise and what is real data. In the MacWavelets v2.00 program, "removing noise" is somewhat of a misnomer, since what is actually done is the truncation or removal of one of more levels (dyads) of wavelet coefficients, with the result that features with specific scale sizes are attenuated or eliminated from the data.

In this sense, this operation is perhaps better called "selective compression", since it applies the same truncation criteria used during compression, but only to specific levels of wavelet coefficients, rather than to the entire set of coefficients.

To perform a de-noising operation on a set of data, first select the window containing the data, and then choose the Remove Noise... item of the Wavelets menu, and a filter set from the attached submenu. You will then see the following dialog:

First, select the levels of the transformed coefficients that you wish to operate on. You may filter the top N levels, the bottom N levels, or any levels from N to M (note that the smaller number is closer to the top of the transform).

Next, specify how those levels of coefficients are to be filtered. You may completely remove the selected coefficients, or you may truncate them as during a compression operation. In this case, however, the truncation operation will only be performed on the levels you have selected, and all other coefficients will be unaltered.

The following steps will then be performed on your data:

  1. A wavelet transform using the selected filter set will be performed on the data.
  2. The top N, bottom N, or N to M levels of wavelet coefficients resulting from the transform will be filtered in the way you have specified in the dialog.
  3. An inverse transform will be performed on the modified coefficient set.

Note that, as in data compression, different wavelet filter sets will produce different results. Try several different filter sets to see which one produces the best results for your data and noise. Usually, longer filters which generate smooth wavelet shapes will produce the best results for smoothing datasets.

As an example, consider the following dataset, which is a simulation of a noisy spectrum. This dataset was created by adding normally distributed white noise to a set of superposed pulses:

An SDP of the wavelet coefficients obtained from a transform of this data shows activity in the top 5 levels (rows of the plot), corresponding to the small-scale noise in the signal (the plot scale has been expanded to show detail):

The following SDP was made from the set of coefficients after those in the first 5 levels were all set to 0:

When the inverse wavelet transform is performed on these coefficients, the reconstructed signal shows considerably less noise:

This example is somewhat extreme, in that 992 out of 1024 coefficients (97%) were set to zero. In practice, it is probably best to eliminate only the first 1, 2, or 3 levels of coefficients, or simply to truncate those values as one would during compression (e.g. keep the largest coefficients in each level, or those coefficients greater than some percentage of the maximum value in each level).

The effect of selective partial truncation on noisy data is demonstrated in the 2d example below.


6.4 Removing 2d Noise

Removing noise from data is a very tricky issue, since one must first decide what constitutes noise and what is real data. In the MacWavelets v2.00 program, "removing noise" is somewhat of a misnomer, since what is actually done is the truncation or removal of one of more levels (quads) of wavelet coefficients, with the result that features with specific scale sizes are attenuated or eliminated from the data.

In this sense, this operation is perhaps better called "selective compression", since it applies the same truncation criteria used during compression, but only to specific levels of wavelet coefficients, rather than to the entire set of coefficients.

To perform a de-noising operation on a set of data, first select the window containing the data, and then choose the Remove Noise... item of the Wavelets menu, and a filter set from the attached submenu. You will then see the following dialog:

First, select the levels of the transformed coefficients that you wish to operate on. You may filter the top N levels, the bottom N levels, or any levels from N to M (note that the smaller number is closer to the top of the transform).

Next, specify how those levels of coefficients are to be filtered. You may completely remove the selected coefficients, or you may truncate them as during a compression operation. In this case, however, the truncation operation will only be performed on the levels you have selected, and all other coefficients will be unaltered.

The following steps will then be performed on your data:

  1. A wavelet transform using the selected filter set will be performed on the data.
  2. The top N, bottom N, or N to M levels of wavelet coefficients resulting from the transform will be filtered in the way you have specified in the dialog.
  3. An inverse transform will be performed on the modified coefficient set.

Note that, as in data compression, different wavelet filter sets will produce different results. Try several different filter sets to see which one produces the best results for your data and noise. Usually, longer filters which generate smooth wavelet shapes will produce the best results for smoothing datasets. Noise reduction of a 256x256 image takes about 60-sec on a Centris 650.

As an example, consider the following dataset, which is a simulation of a noisy image. This dataset was created by adding uniformly distributed white noise to a scanned image (that's just a bunch of leaves, BTW). The noise amplitude is about 20% of the signal:

An matrix of filterings of the wavelet coefficients obtained from a transform of this data (using Daub-12) shows the effect of filtering to different depths (1-3 levels), and keeping different numbers of sorted coefficients (10%-1%):

When the inverse wavelet transform is performed on one of these truncations (e.g. 2 levels-5% kept), the reconstructed signal shows somewhat less noise, but also less resolution:

You may wish to experiment with different filtering/truncation combinations, as well as different transform bases, to see what combination works best for your image data and noise.


Contents | Previous Section | Next Section


MacWavelets 2.00 User's Manual.
"MacWavelets" is a trademark of Intergalactic Reality.
© Copyright Intergalactic Reality, 1996.
All rights reserved.