<< Chapter < Page | Chapter >> Page > |
Listing 6. Create and save the test surface. |
---|
int rows = 41;
int cols = 41;double[][]spatialData =
getSpatialData(switchCase,rows,cols); |
I will discuss the method named getSpatialData in detail later. For now, just assume that the 2D array object referred to by spatialData contains the test surface when this method returns.
Listing 7 instantiates an object of the class named ImgMod29 to display the test surface in the display format indicated by the value of displayType .
Listing 7. Display the test surface. |
---|
new ImgMod29(spatialData,3,false,displayType); |
The value of false in the third parameter indicates that the axes should not be displayed.
(See the module titled Plotting 3D Surfaces using Java for an explanation of the second parameter. Basically, this parameter is used to control the overallsize of the plot on the screen.)
The top-left image in Figure 4 is an example of the output produced by the code in Listing 7 for a displayType value of 0.
( Figure 4 shows the grayscale format. See the module titled Plotting 3D Surfaces using Java for an explanation of the three available non-logarithmic display formats.)
Figure 4. An example test surface plot. |
---|
Figure 4 shows the results for a test surface switchCase value of 2. I will discuss the particulars of this case in detail later.
Listing 8 performs the forward Fourier transform to transform the test surface into the wavenumber domain.
Listing 8. Perform the forward Fourier transform. |
---|
double[][]realSpect = //Real part
new double[rows][cols];double[][]imagSpect = //Imaginary part
new double[rows][cols];double[][]amplitudeSpect = //Amplitude
new double[rows][cols];ImgMod30.xform2D(spatialData,realSpect,
imagSpect,amplitudeSpect); |
Listing 8 begins by preparing some array objects to receive the transform results. The forward transform receives an incoming surface array and returnsthe real and imaginary parts of the complex wavenumber spectrum along with the amplitude spectrum by populating three array objects passed as parameters to themethod.
Then Listing 8 calls the static xform2D method of the ImgMod30 class to perform the forward transform, returning the results by way of the parameters to the method.
The top-right image in Figure 4 is an example of the type of display produced by the code in Listing 9 . This is a plot of the amplitude spectrum without the wavenumber origin being shifted to place it at the center.
(The wavenumber origin is in the top-left corner of the top-right image in Figure 4 .)
This image also shows the result of passing true as the third parameter causing the red axes to be plotted on top of the spectral data.
Listing 9. Display unshifted amplitude spectrum. |
---|
new ImgMod29(amplitudeSpect,3,true,
displayType); |
Notification Switch
Would you like to follow the 'Digital signal processing - dsp' conversation and receive update notifications?