<< Chapter < Page | Chapter >> Page > |
This program performs each of the processes listed above. However, it does not perform those processes in the special order used by an FFT algorithm thatcauses the FFT algorithm to be able to perform those processes at very high speed.
The decomposition process in this program takes the complex samples in the order that they appear in the input complex series. The transform of eachcomplex sample is simply the sample itself. This is the result that would be obtained by actually computing the transform of the complex sample if the samplewere the first sample in the series.
The transform result for each complex sample (the sample itself) is then corrected for position by applying sine and cosine curves to reflect the actual position of the complex sample within the original complex series.
In order to accomplish the recombination of the corrected transform results, the real and imaginary parts of the correctedtransform are added to accumulators. These accumulators are used to accumulate the corrected real and imaginary parts from the corrected transforms for all ofthe individual complex samples.
Once the real and imaginary parts have been accumulated for all of the complex samples, the real part of the accumulatorrepresents the real part of the transform of the original complex series. The imaginary part of the accumulator represents the imaginary part of the transformof the original complex series. However, an actual transform was never performed on the original complex series.
This program creates three separate complex series, applies the processes listed above to each of those series, and displaysthe results on the screen.
No attempt is made to manage the decomposition and the subsequent recombination in the manner of a true FFT algorithm. Therefore, this program isdesigned to illustrate the processes involved, and is not designed to provide the speed of a true FFT algorithm.
This program was tested using JDK 1.8 under Windows 7.
Will discuss in fragments
As is my usual approach, I will discuss and explain this program in fragments. A complete listing of the program is provided in Listing 9 near the end of the module.
The program begins in Listing 1 , which shows the beginning of the controlling class named Fft02 and the beginning of the main method.
Listing 1. Beginning of the program named Fft02? |
---|
class Fft02{
public static void main(String[]args){
Transform transform = new Transform(); |
The first statement in the main method instantiates an object of the Transform class. This object implements the processes used in an FFT, but does not implement those processes in the special order required by an FFT algorithm.
The purpose of an object of the Transform class is to illustrate the processes commonly used in an FFT in a manner that is more easily understoodthan is often the case with an actual FFT algorithm.
I will put the main method on the back burner for the moment and explain the class named Transform .
Notification Switch
Would you like to follow the 'Digital signal processing - dsp' conversation and receive update notifications?