# Category : Science and Education

Archive : COMPFFT.ZIP

Filename : COMPFFT.DOC

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

Very nice! Thank you for this wonderful archive. I wonder why I found it only now. Long live the BBS file archives!

This is so awesome! 😀 I’d be cool if you could download an entire archive of this at once, though.

But one thing that puzzles me is the “mtswslnkmcjklsdlsbdmMICROSOFT” string. There is an article about it here. It is definitely worth a read: http://www.os2museum.com/wp/mtswslnk/