<< Chapter < Page | Chapter >> Page > |
A complete listing of Dsp030 is provided in Listing 22 .
This program uses an FFT algorithm to compute and display the magnitude of the spectral content for up to five sinusoids having different frequencies andamplitudes. (See the program named Dsp028 for a program that does not use an FFT algorithm.)
The program gets input parameters from a file named Dsp030.txt . If that file doesn't exist in the current directory, the program uses a set ofdefault parameters.
Each parameter value must be stored as characters on a separate line in the file named Dsp030.txt . The required input parameters are shown in Figure 16 . (Contrast this with the required input parameters for Dsp028 shown in Figure 12 .)
Figure 16. Required input parameters for Dsp030. |
---|
Data length as type int (must be a power of 2)
Number of spectra as type int. Max value is 5.List of sinusoid frequency values as type double.
List of sinusoid amplitude values as type double. |
Note that in contrast with Figure 12 , the required input parameters for Dsp030 do not include the sample number representing zero time, the lower frequency bound for computation of the spectra, and the upperfrequency bound for computation of the spectra.
(The computational frequency range cannot be specified for the FFT algorithm. It always computes the spectra from zero to one unit less thanthe sampling frequency.)
Note also that the data length must always be a power of two. Otherwise, the FFT algorithm will fail to run properly.
(This restriction is an important contributor to the speed achieved by the FFT algorithm.)
As with Dsp028 , the number of values in each of the lists must match the value for the number of spectra.
All frequency values are specified as a double representing a fractional part of the sampling frequency.
Figure 17 shows the parameters used to produce the spectral analysis plots shown later in Figure 18 .
(Note that the data length is a power of two as required by the FFT.)
Figure 17. Example input parameters. |
---|
256
50.1
0.20.3
0.50.005
9090
9090
90 |
The plotting program that is used to plot the output data from this program requires that the program implement GraphIntfc01 . For example, the plotting program named Graph03 can be used to plot the data produced by this program. This requires that you enter the following at thecommand line prompt after everything is compiled:
java Graph03 Dsp030
The plotting program named Graph06 can also be used to plot the data produced by this program, requiring that you enter the following at thecommand line prompt:
java Graph06 Dsp030
A static method named transform belonging to the class named ForwardRealToComplexFFT01 is used to perform the actual spectral analysis. The method named transform implements an FFT algorithm. As mentioned above, the FFT algorithm requires that the data lengthbe a power of two. This method will be discussed very briefly later.
Notification Switch
Would you like to follow the 'Digital signal processing - dsp' conversation and receive update notifications?