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 18/21)

Case 7

Now we are going to make a major change in direction. All of the surfaces from cases 0 through 6 consisted of a few individual points located in specificgeometries in the space domain. All of the remaining points on the surface had a value of zero. This resulted in continuous (but sampled) surfaces in the wavenumber domain.

Now we are going to generate continuous (but sampled) surfaces in the space domain. We will generate these surfaces as sinusoidal surfaces (similar to a sheet of corrugated sheet metal) or the sums of sinusoidal surfaces.

Performing Fourier transforms on these surfaces will produce amplitude spectra consisting of a few non-zero points in wavenumber space with theremaining points in the spectrum having values near zero.

Need to change the surface plotting scale

In order to make these amplitude spectra easier to view, I have modified the program to cause the square representing each point in the amplitude spectrum to be five pixels on each side instead of three pixels on each side. To keep theoverall size of the images under control, I reduced the width and the height of the surfaces from 41 points to 23 points.

Display fewer results

I suspect that you have seen all the real parts, imaginary parts, and unshifted amplitude spectra that you want to see. Therefore, at this point, Iwill begin displaying only the input surface, the amplitude spectrum, and the output surface that results from performing an inverse Fourier transform on thecomplex spectrum.

A zero frequency sine wave

The first example in this category is shown in Figure 12 . The input surface for this example is a sinusoidal wave with a frequency of zero. This results ina perfectly flat surface in the space domain as shown in the leftmost image in Figure 12 . This surface is perfectly flat and featureless.

Figure 12. Graphic output for Case 7.

The code for this case

The code that was used to generate this surface is shown in Listing 18 . For the case of a sinusoidal wave with zero frequency, every point on the surfacehas a value of 1.0.

Listing 18. Code for Case 7.
case 7: for(int row = 0; row<rows; row++){ for(int col = 0; col<cols; col++){ spatialData[row][col] = 1.0;}//end inner loop }//end outer loopbreak;

A single point at the origin

As shown by the center image in Figure 12 , the Fourier transform of this surface produces a single point at the origin in wavenumber space. This isexactly what we would expect.

The inverse transform output is ugly

The result of performing an inverse Fourier transform on the complex spectrum is shown in the rightmost image in Figure 12 . As was the case earlier in Figure 6 , the ugliness of this plot is an artifact of the 3D plotting schemeimplemented by the class named ImgMod29 . The explanation that I gave there applies here also.

A very small error

Once again, the total error is very small. The numeric output shows that the final output surface matches the input surface to within an error that is lessthan about one part in ten to the thirteenth power. Thus, the program produces the expected results for this test case.

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