What happens if we perform the FFT on a non-periodic discrete time sequence? The FFT always assumes that it is operating on one period of a periodic waveform. Thus, the FFT treats a non-periodic signal just as if it represented one complete cycle of a periodic waveform. This property of the FFT is important to remember. For example, consider the following Worksheet:


W1: gsin(128, .01, 5)

W2: 20*log10(spectrum(w1))

W3: gsin(128, 1/128, 5)

W4: 20*log10(spectrum(w3))


Windows 2 and 4 display the spectra of two sine waves of equal amplitudes and frequencies. We would expect each spectrum to show one distinct peak at the same frequency as the sine wave. The peak of the first sine wave is somewhat spread out because the first signal does not constitute a complete cycle of a sine wave. Since the FFT assumes that it is processing periodic waveforms, the signals are considered to be extended as shown or replicated. The spreading out or leakage effect of the first sine wave is due to the energy artificially generated by the discontinuity at the edges of the extended waveform.


The Hamming, Hanning and Kaiser windowing functions can be used to prevent such discontinuities. These routines taper the endpoints of a non-periodic signals so that they match up. The periodically extended signal as processed by the FFT has a smooth transition at the edges. To apply a windowing function, simply multiply the original waveform with the desired window function. DADiSP provides HAMMING, HANNING and KAISER functions that generate and multiply the window function all in one operation. These functions may be accessed through the Apply Windows option in the FFT Analysis sub-menu.


Here is a Worksheet that demonstrates the use of Windowing functions:


W1: gsin(128, .01, 6)

W2: concat(w1, w1)

W3: 20*log10(spectrum(w1))

W4: gsin(128, 1/128, 6)

W5: concat(w4, w4)

W6: 20*log10(spectrum(w4))

W7: hamming(w1)

W8: concat(w7, w7)

W9: 20*log10(spectrum(w7))


If you are processing transient signals, the edges contain important information that will be unacceptably distorted by the above windowing functions. In this case, it is best not to use a windowing function. Some references refer to this method as processing the data with a rectangular window. Because a rectangular window is nothing other than a box of unity height, multiplying a signal with a rectangular window produces a result that is identical to the original signal.


Another important use of the FFT is as an efficient means for evaluating the convolution of two series. This procedure is explored further in the next section.