<< Chapter < Page | Chapter >> Page > |
The code in Listing 12 creates array objects to receive the results and calls the static transform method of the forwardRealToComplex01 class five times in succession to perform the spectral analysis on each of the five sinusoids.
(I will explain the transform method that performs the spectral analysis shortly.)
Only the magnitude data is displayed by this program. Therefore, the arrays that receive the other spectral analysis results from the transform method arediscarded each time a new spectral analysis is performed.
Listing 12. Perform the spectral analysis. |
---|
magnitude1 = new double[len];real = new double[len];imag = new double[len];angle = new double[len];ForwardRealToComplex01.transform(data1,real,
imag,angle,magnitude1,zeroTime,lowF,highF);magnitude2 = new double[len];real = new double[len];imag = new double[len];angle = new double[len];ForwardRealToComplex01.transform(data2,real,
imag,angle,magnitude2,zeroTime,lowF,highF);magnitude3 = new double[len];real = new double[len];imag = new double[len];angle = new double[len];ForwardRealToComplex01.transform(data3,real,
imag,angle,magnitude3,zeroTime,lowF,highF);magnitude4 = new double[len];real = new double[len];imag = new double[len];angle = new double[len];ForwardRealToComplex01.transform(data4,real,
imag,angle,magnitude4,zeroTime,lowF,highF);magnitude5 = new double[len];real = new double[len];imag = new double[len];angle = new double[len];ForwardRealToComplex01.transform(data5,real,
imag,angle,magnitude5,zeroTime,lowF,highF);}//end constructor |
Note that the magnitude results are saved in the array objects referred to by magnitude1 , magnitude2 , etc. This will be important later when I discuss the interface methods defined by Dsp028 .
Listing 12 also signals the end of the constructor. When the constructor terminates, the object has been instantiated and populated with spectralanalysis results for five sinusoids using the parameters specified by the file named Dsp028.tx t.
The getParameters method used in this program is the same as that used in Dsp029 , so I won't discuss it further.
The Dsp028 class must define the same six interface methods as the Dsp029 class, which I discussed earlier. The only difference in the interface methods is the identification of the array objectsfrom which the methods return data when the methods are called.
The code in Listing 13 is typical of the code for methods f1 through f5 . As you can see, these methods return the data stored in the magnitude arrays. These are the spectral analysis results that areplotted in Figure 9 , Figure 11 , and later in Figure 14 .
Listing 13. The method named f1. |
---|
public double f1(double x){
int index = (int)Math.round(x);if(index<0 ||
index>magnitude1.length-1){
return 0;}else{
return magnitude1[index];
}//end else}//end function |
The plots in Figure 9 and Figure 11 were produced by entering the following at the command line prompt:
Notification Switch
Would you like to follow the 'Digital signal processing - dsp' conversation and receive update notifications?