This page is optimized for mobile devices, if you would prefer the desktop version just click here

4.1 Java1482-spectrum analysis using java, sampling frequency,  (Page 14/24)

Perform the spectral analysis

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

The spectral magnitude results

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 .

The end of the constructor

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

The getParameters method used in this program is the same as that used in Dsp029 , so I won't discuss it further.

The interface methods

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 program named Graph03

The plots in Figure 9 and Figure 11 were produced by entering the following at the command line prompt:

<< Chapter < Page Page > Chapter >>

Read also:

OpenStax, Digital signal processing - dsp. OpenStax CNX. Jan 06, 2016 Download for free at https://legacy.cnx.org/content/col11642/1.38
Google Play and the Google Play logo are trademarks of Google Inc.
Jobilize.com uses cookies to ensure that you get the best experience. By continuing to use Jobilize.com web-site, you agree to the Terms of Use and Privacy Policy.