"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
About
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