[Table of Contents] [Previous section] [Next section]

Fourier filter

The Fourier filter is a type of filtering function that is based on manipulation of specific frequency components of a signal. It works by taking the Fourier transform of the signal, then attenuating or amplifying specific frequencies, and finally inverse transforming the result. The example shown here is a simple low-pass, sharp cut-off filter, which simply cuts off all frequencies above a user-specified limit. The assumption is made here that the frequency components of the signal fall predominantly at low frequencies and those of the noise fall predominantly at high frequencies. The user tries to find a cut-off frequency that will allow most of the noise to be eliminated while not distorting the signal significantly. An example of the application of the Fourier filter is given in Figure 14.

Figure 14. The signal at the top left seems to be only random noise, but its power spectrum (top right) shows that high-frequency components dominate the signal. The power spectrum is expanded in the X and Y directions ( bottom left) to show more clearly the low-frequency region. Working on the hypothesis that the components above the 20th harmonic are noise, the Fourier filter function can be used to delete the higher harmonics and to reconstruct the signal from the first 20 harmonics. The result (bottom right) shows the signal contains two bands at about x=200 and x=300 that are totally obscured by noise in the original signal.


SPECTRUM, the freeware signal-processing application that accompanies this tutorial, includes a simple Fourier low-pass filter function, with adjustable harmonic cut-off.

The custom Matlab function FouFilter.m is a more flexible Fourier filter that can serve as a lowpass, highpass, bandpass, or bandreject (notch) filter with variable cut-off rate. Has the form
ry=FouFilter(y,samplingtime,centerfrequency,frequencywidth,shape,mode)
where y is the time-series signal vector, 'samplingtime' is the total duration of sampled signal in sec, millisec, or microsec; 'centerfrequency' and 'frequencywidth' are the center frequency and width of the filter in Hz, KHz, or MHz, respectively; 'Shape' determines the sharpness of the cut-off. If shape = 1, the filter is Gaussian; as shape increases the filter shape becomes more and more rectangular. Set mode = 0 for band-pass filter, mode = 1 for band-reject (notch) filter. FouFilter returns the filtered signal in ry.

The Interactive Fourier Filter for Matlab function has sliders that allow you to adjust the Fourier filter parameters (center frequency, filter width, and cut-off rate) while observing the effect on the signal output dynamically. It can handle signals of virtually any length, limited only by the memory in your computer. Requires Matlab 6.5.

[Table of Contents] [Previous section] [Next section]
Last updated April, 2008. This page is maintained by Prof. Tom O'Haver , Department of Chemistry and Biochemistry, The University of Maryland at College Park. Comments, suggestions and questions should be directed to Prof. O'Haver at toh@umd.edu.