"Ideal" Low-Pass Filtering

Here is an example which performs the steps of "ideal" low-pass filtering by convolving the input signal with a sinc(x) function. Please see any text on signal processing for a description of the convolution process. This example is called "ideal" low filtering because the Fourier transform of a sinc(x) function is (theoretically) a rectangle (and vice-versa, as demonstrated by the previous page on data windowing). Thus, the spectrum of a signal which has been convolved with sinc(x) is multiplied by a rectangle centered about the W origin, which effectively attenuates or removes frequency components above a certain W value.

(Click for larger image)

This example is a bit more complicated than it needs to be because I am performing data windowing of all signals before performing the DFT (eventually I will add several window types and automatic pre-multiplication to the DFT component itself). I have created some synthetic "noisy" data by adding two sine functions of different frequencies. Thus, the spectrum of the input signal has two peaks.

In the following images, the signal, filter, and resulting functions and the magnitude of their transforms are shown. The cutoff of the filter's transform appears as sharp as it can get for the data window function used here (an exponential as in the previous examples). In the first case below, the cutoff of the filter is above both of the primary components in the input, and therefore both components appear in the resulting signal. Note that the convolving filter function does not have to be the same length as the input signal (it is usually shorter), and that the process of convolution creates an output signal that is longer than its input.

However, this seems to add spurious frequencies to the spectrum (making a smooth, windowed, spectrum appear jagged), therefore some convolution with the transform of a rectangle (outside of the actual signal at the ends) is suspected. I may try limiting the result or limits of summation to the central interval of the same length as the input function to see if the ripple in the spectrum disappears.

One advantage of using the DFT is the following: spectra are comparable even if they have different numbers of points, as long as their limits of integration (W0 to WN) are the same (although different resolutions within that interval would not necessarily be point-by-point comparable. Some kind of interpolation might also be required. This is usually accomplished visually). This is because they represent the same interval of the Fourier subset of the Z transform (see the transform page), which is part of the unit circle of the complex plane (or of several copies of it). If they were actual signals, their epoch lengths (duration) would be the same (from some t0 to tN), although their sampling rates might be different. Therefore, their Nyquist frequency limits might also be different. Nevertheless, their DFT W "coordinates" would be comparable.

As the filter function is made wider, its transform becomes narrower, and thus the cutoff frequency becomes lower. As the cutoff approaches the peak of the "noise" component, this frequency becomes attenuated in the output, reducing the noise contamination of the signal.

Once the filter cutoff is below the frequency of the noise component, that component is almost completely removed from the signal.

The process of convolution can also be inverted in many cases, so that the resulting filtered signal can be deconvolved with the same filter function to yield a reconstruction of the input. This reconstruction is quite accurate, such that the previously removed noise component is added back into the signal even though it does not visually appear to exist in the spectrum of the filtered result. Thus, even though the filtered signal looks smooth, it still contains all the information necessary to rebuild the original signal.

Note that convolution cannot always be reversed to recover the input signal. The process of deconvolution is numerically unstable, and often yields results that diverge to + or - infinity. Even a slight, virtually invisible, change in the deconvolving filter function (which is the same as the convolving function) may cause the result to diverge. I will examine this phenomenon in more detail on the next page.


©Copyright Sky Coyote, 2000-2002.