<< Chapter < Page | Chapter >> Page > |
The output produced by running Dsp030 using the input parameters shown in Figure 17 is shown in Figure 18 .
Figure 18. FFT of five sinusoids. |
---|
There is nothing special about this particular spectral analysis. I presented it here to illustrate the use of the FFT algorithm for spectral analysis. Youshould be able to produce the same results using the same program and the same parameters.
Figure 19 shows the parameters required for the program named Dsp028 to perform a DFT spectral analysis producing the same results as those producedby the FFT analysis shown in Figure 18 . Note that the data length has been set to 256 and the computational frequency range extends from zero to the samplingfrequency in Figure 19 .
Figure 19. Parameters for A matching DFT spectral analysis. |
---|
Data length: 256
Sample for zero time: 0Lower frequency bound: 0.0
Upper frequency bound: 1.0Number spectra: 5
Frequencies0.1
0.20.3
0.50.0050
Amplitudes90.0
90.090.0
90.090.0 |
The matching DFT output
The DFT output produced by running Dsp028 with the parameters shown in Figure 19 is shown in Figure 20 .
Figure 20. DFT of five sinusoids. |
---|
Hopefully you noticed that Figure 20 looks almost exactly like Figure 18 . This is how it should be. The DFT algorithm and the FFT algorithm are simply twodifferent algorithms for computing the same results. However, the DFT algorithm is much more flexible than the FFT algorithm while the FFT algorithm is muchfaster than the DFT algorithm.
I recommend that you repeat these two experiments several times increasing the data length to a higher power of two each time you run the experiments.
On my machine, the DFT algorithm used by Dsp028 becomes noticeably slow by the time the data length reaches 2048 samples. However, theFFT algorithm used by Dsp030 is still reasonably responsive at a data length of 131,072 samples.
(Performing the DFT on five input samples each having a data length of 131,072 samples would require an intolerably long time on my machine.)
If what you need is speed for long data lengths, the FFT is your best approach. On the other hand, if you need more flexibility than the FFT providesand the data length is not too long, then the DFT may be your best approach.
The ForwardRealToComplexFFT01 class containing the method that implements the FFT algorithm is provided in Listing 23 near the end of this module.
The FFT algorithm is based on some very complicated signal processing concepts. I'm not going to explain how this algorithm works in this modulebecause I haven't given you the proper background for understanding it. I plan to explain additional signal processing concepts in future modules that willprepare you to understand how the FFT algorithm works.
Fortunately, you don't have to understand the mechanics of the FFT algorithm works to be able to use it.
I encourage you to copy, compile, and run the programs provided in this module. Experiment with them, making changes and observing the results of yourchanges.
Notification Switch
Would you like to follow the 'Digital signal processing - dsp' conversation and receive update notifications?