<< Chapter < Page | Chapter >> Page > |
The top-right image in Figure 4 is in a format that is not particularly good for viewing. In particular, the origin is at the top-left corner. Thehorizontal Nyquist folding wavenumber is near the horizontal center of the plot. The vertical Nyquist folding wave number is near the vertical center of theplot. It is much easier for most people to understand the plot when the wavenumber origin is shifted to the center of the plot with the Nyquist foldingwave numbers at the edges of the plot.
The method named shiftOrigin can be used to rearrange the data and shift the origin to the center of the plot.
Listing 10 shifts the origin to the center of the plot and displays:
The axes are displayed in all three cases.
Listing 10. Shift the origin and display the results. |
---|
double[][]shiftedRealSpect =
ImgMod30.shiftOrigin(realSpect);new ImgMod29(shiftedRealSpect,3,true,
displayType);double[][] shiftedImagSpect =ImgMod30.shiftOrigin(imagSpect);
new ImgMod29(shiftedImagSpect,3,true,displayType);double[][]shiftedAmplitudeSpect =
ImgMod30.shiftOrigin(amplitudeSpect);new ImgMod29(shiftedAmplitudeSpect,3,true,
displayType); |
Examples of the displays produced by the code in Listing 10 are shown in Figure 4 . The surface being transformed is shown in the top-left in Figure 4 and the result of the inverse transform (discussed later) is shown in the bottom-left in Figure 4 .
The real part of the shifted wavenumber spectrum is shown in the image in the top-center of Figure 4 . The imaginary part of the shifted wavenumber spectrum is shown in the bottom-center of Figure 4 .
The unshifted amplitude spectrum is shown in the top-right in Figure 4 and the shifted amplitude spectrum is shown in the bottom-right image in Figure 4 . The origin has been shifted to the center in the three cases shown in the top-center, bottom-center,and bottom-right.
(It would probably be constructive for you to compare the two rightmost images in Figure 4 in order to appreciate the result of shifting the origin to the center.)
Listing 11 performs an inverse Fourier transform to transform the complex wavenumber surface into a real surface in the space domain. Ideally, the resultshould exactly match the space domain surface that was transformed into the wavenumber domain in Listing 8 . However, because of small arithmetic errors that accumulate in the forward and inverse transform computations, it is unusual foran exact match to be achieved.
Listing 11. Perform an inverse transform. |
---|
double[][]recoveredSpatialData =
new double[rows][cols];ImgMod30.inverseXform2D(realSpect,imagSpect,
recoveredSpatialData); |
Listing 11 begins by preparing an array object to store the results of the inverse transform process.
Notification Switch
Would you like to follow the 'Digital signal processing - dsp' conversation and receive update notifications?