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

4.7 Java1491-2d fourier transforms using java, part 2  (Page 9/21)

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.

Display the test surface

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.)

An example test surface plot

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.

Perform the forward Fourier transform

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);

Prepare array objects to receive the transform results

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.

Perform the forward transform

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.

Display unshifted amplitude spectrum

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);
<< 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.