An algorithm for computing a Fourier transform in a way that is practical to compute on a personal computer or workstation. Like any Fourier transform, the algorithm works by processing a group of samples representing a short period of time of the waveform being analyzed; therefore, the output of the transform represents the average frequency content over the period of time being sampled. What makes the algorithm fast is that it places certain restrictions on the number of samples to be processed, and by doing so, it takes advantage of certain properties of the binary arithmetic that computers use.