FFT Demo Program

"FFT Demo" is a program designed to demonstrate some of the operations on waveforms facilitated by use of the Fast Fourier Transform (FFT) and its inverse transform (IFFT).  The program and associated files are contained in fftdemo.zip.

The menu bar is equipped with the following items:

File
Open Complex File
Open Real File
Save Complexe
Save Real
Exit
SetUp
FFT Size
Graph Size
Plot style
Line Plot
Bar Plot
Functions
Cosine
Sine
Cos + jSin (Temporal)
Cos + jSin (Spectral)
Impulse
Tooth
Tooth1
Tooth2
Sawtooth
Squarewave
Gaussian Noise
HighPass
LowPass
Triangle series
Square series
Phase modulation
Move
X=R0
Y=R0
R0=X
R0=Y
Operations
FFT R0
IFFT R0
Conjugate R0
Magnitude R0
Power R0
R0= X*Yconj
R0= X*Y
R0= X + bY
R0= C*R0
R0= R0+C
R0= R0+jC
Phase shift R0
Integerize R0
Macros
Autocorrelate R0
Convolve R0
Power Spectrum R0
Correlate XY
Convolve XY
Plot
Plot Real
Plot Imaginary
Plot Both
Help
Help

In order to have data to work with, functions are needed. These can be generated from the menu list for functions, or loaded in from previously prepared files. All data is loaded into the R0 array memory. Data can be copied back and forth between R0 and the X and Y arrays. FFT operations are always performed on the data in R0 only. This necessitates some trading back and forth on dyadic operations. Data in R0 can be saved to file and retrieved any time.

The autocorrelation operation is analogous to stepping one waveform past another (or the same waveform) and adding up the shared area at each step. If a part of one waveform overlaps one of opposite sign, that contribution to shared area is negative. If both are the same sign, the area is positive. When a waveform is being compared with itself (autocorrelation), a positive maximum is always obtained when both waveforms are exactly coincident. This maximum is a measure of the total energy of the waveform.

Convolution is similar to correlation, but one waveform is reversed in time. If the reversed waveform is the impulse response of a digital filter, then the result of convolution is to apply the filter to the other waveform, and the result is a filtered version of the original signal.

The FFT and its inverse, the IFFT, are reciprocal operations. Performing one after the other will return the original signal.

The FFT transforms a signal in the time domain to one in the frequency domain. Each bin of the transformed data represents a harmonic of the repetition rate of the entire signal array. Remember that the FFT assumes that the original signal is repeated endlessly. Even though the source data may be real valued, the transformed data is usually complex, having both a real and an "imaginary" component. The power of each frequency component is obtained by multiplying the component value by its complex conjugate. The aggregate result is the power spectrum of the source signal.

The "Cos + jSin (Spectral)" function generates a waveform which can be applied in the frequency domain to time shift a signal.

The functions and operations provided permit the user to synthesize a wide variety of waveforms for study.

For further knowledge, please consult a book and/or web pages on the FFT and its uses in signal processing.

This is written in text format. The user can add notes to this file, or substitute a new text file using the same name "FFT Demo Help.txt".

Bob McClure
February 20, 2007
Rev 1.0.12

Back