Dec 142017
 
Compute/display Forward (time > freq) and Inverse (freq > time) FFT.
File COMPFFT.ZIP from The Programmer’s Corner in
Category Science and Education
Compute/display Forward (time > freq) and Inverse (freq > time) FFT.
File Name File Size Zip Size Zip Type
COMPFFT.DOC 8001 3209 deflated
COMPFFT.EXE 68975 46805 deflated
TEST.SPC 0 0 stored

Download File COMPFFT.ZIP Here

Contents of the COMPFFT.DOC file



FBN Software proudly presents COMPFFT. COMPFFT is an analysis
tool used to compute the forward or reverse Fast Fourier Transform (FFT)
from data provided by an input file. The FFT is a program that does a
rapid calculation of the discrete Fourier Transform (a discrete computer
version of the infinite Fourier Series used in spectral analysis). The
forward FFT takes discrete time samples od an arbitrary waveform and
provides you with the amplitude and phase of the waveform versus
frequency. The reverse FFT takes as its input complex frequency samples
of an arbitrary sample and provides to you the time based waveform that
would have produced that particular spectrum.

COMPFFT also allows you to print out the spectral response to a
printer or to display the results on the CRT display. A graphics display
capability is also provided by the program. The COMPFFT does not contain a
windowing feature which is sometimes useful to minimize frequency
aliasing (the aliasing caused by the sampling of waveforms that are not
truly repetitive in the sample window). A utility program FFTUTIL will be
provided at a later date which will allow you to generate arbitrary
waveforms that you can analyze with COMPFFT. This program will also allow
you to convolve your waveform spectra with that of a filter or another
signal spectrum. The program can be used directly with the outputs from
CHEBFILT.ARC and BESSEL.ARC ( programs to calculate the response of
Bessel filters).

The Forward FFT takes amplitude samples of an arbitrary wavefrom spaced
at a uniform sample rate DT. The total waveform is assumed to be
repetitive in a time interval of N*DT. The sampling clock rate is 1/DT.
The maximum value for N is set to 1024 by the program. The output of the
forward FFT is N complex frequency sample spaced at a frequency interval
of W3. The spectral amplitude response is symmetrical about frequency
W3*N/2. The Forward FFT thus provides you with the frequency spectrum of
the time waveform.

The Inverse FFT takes N complex frequency samples with a frequency
spacing of W3 and provides a complex time output of N samples spaced at a
uniform time differential of DT seconds. Thus the Inverse FFT allows you
to find the time response that corresponds to a given frequency
spectra. This is useful in analyzing the transient response of filters and
complex systems that have a known frequency spectra.

The programs included on this disk are :

COMPFFT.DOC - This program
COMPFFT.EXE - The functional FFT - REVERSE FFT PROGRAM
TEST.SPC - A 1 KHz (256 point) low pass Chebychef filter designed
with CHEBFILT to demonstrate COMPFFT operation.
COMPFFT was compiled using QB 4.0. QB 4.0 emulates the 8087 output.

Program Data Format - If you wish to write your own Basic waveform
generator program to provide input to the program the data must conform
to the following input file format :

N,W3,DT N = the number of data samples and must be a power of 2
W3 = 1/(N*DT) - the frequency sample spacing
DT = 1/(N*W3) - the data sample interval
DR(i),DI(i) N complex data samples sets.

Program operation : The program operation should be self explanatory. when
the following is evoked by the following menu is presented to you with
operational comments in parentheses :

********************************************************************************

----- FOURIER SPECTRUM ANALYSIS -----

by FBN Software


********************************************************************************


FILES INPUT WITH SPECTRUM SAMPLES MUST HAVE THE .SPC EXTENSION
OTHERWISE TIME DATA SAMPLES WILL BE ASSUMED.

TYPE INPUT FILE SPEC. (d:\path\Filename.Ext) ? a:test.spc
(This is the sample 1 KHz Low Pass filter provided on the disk)

OUTPUT TO (P)RINTER OR TO (C)RT ? c

(I like to look at functions before performing a transform)

SELECT PRINT/DISPLAY FORMAT

(1) COMPLEX DATA
(2) MAGNITUDE & PHASE DATA
(3) REAL DATA
(4) IMAGINARY DATA
?
(These are the display options available - choose one and see what happens.
After you have viewed the input data you will be returned to the input menu.
A graphical display is also available if your machine has CGA compatibility.)

CHOOSE FROM THE MENU :

(L)OAD DATA
(F)ORWARD FFT
(I)NVERSE FFT
(P)RINT DATA
(S)TORE DATA
(E)XIT PROGRAM

? I (You are performing an inverse FFT because the input data was in the
spectral format. When the Inverse FFT finishes you will return to the
main menu and you can display the results {P} or store the results {S} in
an output file for analysis at a later time.)

Hints : Backup the programs and data before running them. You are
responsible for the type of data you expect to get out of the program.
Spectral data files must be input (or saved) or saved with a .SPC
extension. If you input spectral data (.SPC) you must perform an INVERSE
FFT and the output should be saved with a .DTA extension. Likewise data
input with a .DTA extension should have a FORWARD FFT performed on it and
the output data should then be saved with a .SPC extension. A FORWARD FFT
on spectral data (.SPC) has no meaning or conversely an INVERSE FFT
performed on time data has no meaning. You can, however, convert the same
data set INVERSE and then FORWARD and you should come back (at least very
close to) the data set you started with.

Some calculations may exceed the mathematical limits of your computer
and cause the program to bomb. This can occur for filters with
attenuations approaching -400 dB. A rough estimate of the roll off of the
filter is to assume -20 dB of attenuation for each pole per decade of
frequency from the band edge of the filter. The program has not "Bombed"
on me, but this is not saying that it can't happen.


Problems & Freeware Pitch : I offer this program to the general public as
"Freeware". By this I mean you can make copies of the ARC file and give
them to your friends. Just be sure to include all files (Including
COMPFFT.DOC) in COMPFFT.ARC. If you have problems and want support, I'll
provide it to you for a negotiable fee (depending on the difficulty of the
problem). If you find a program bug or operational error please notify me
and I'll see if I can fix it. If you want to modify COMPFFT on your own
(or you're just curious) I'll provide you with the source code for
COMPFFT, on a 360k 51/4 inch disk, for a $10.00 fee.

Who am I and where do you send your money :

Send checks (no plastic) to :

William L. Gill
12713 Brunswick Lane
Bowie,Md. 20715

My qualifications : I am an Electrical Engineer with 27 years of
experience. My specialty is Signal Processing. I am a former
applications engineer for Westinghouse Integrated Circuits. I have
approximately 15 years of part time teaching experience (Application of
Digital Integrated Circuits, and the Application of Linear Integrated
Circuits). So I have a strong background in circuit analysis and
performance.

Why am I doing this ? I don't really expect to make money from this
program. It is an engineering program and should therefore have a
limited appeal. I think it provides a tool that some of you will want
to try. The fees that I am imposing are to prevent "nuisance calls".






 December 14, 2017  Add comments

Leave a Reply