<< Chapter < Page
  Digital signal processing - dsp     Page 13 / 24
Chapter >> Page >
Listing 4. Beginning of the ImgMod29 class.
class ImgMod29 extends Frame{ int dataWidth;int dataHeight; int blockSize;boolean axis; double[][] data;ImgMod29(double[][]dataIn,int blockSize, boolean axis,int display){//Get and save several important values this.blockSize = blockSize;this.axis = axis; dataHeight = dataIn.length;dataWidth = dataIn[0].length;boolean logPlot = false; int displayType = display;

The meaning and purpose of each of the constructor parameters was explained earlier, so I won't repeat that explanation here. The code in Listing 4 is straightforward and should not require further explanation.

Establish display format for log conversion

The code in Listing 5 uses the incoming value of the display parameter to establish the display format if the value of display is 3, 4, or 5.

Listing 5. Establish display format for log conversion.
if(display == 3){ displayType = 0;logPlot = true; }else if(display == 4){displayType = 1; logPlot = true;}else if(display == 5){ displayType = 2;logPlot = true; }else if((display>5) || (display<0)){ System.out.println("DisplayType input error, terminating"); System.exit(0);}//end if

The default display format is one of the three basic types without log conversion of the surface elevation data. (The value of logPlot is set to false in Listing 4 .) If the incoming parameter value is 3, 4, or 5, the code in Listing 5 establishes the display format as one of the three basic types with log conversion of the surface elevation data prior to plotting.

(Note that the code in Listing 5 sets the value of the variable named logPlot to true. The value stored in this variable will be used later to determine if log conversion of the elevation data isrequired.)

The three basic types

The three basic types are:

  • displayType = 0, Grayscale plot
  • displayType = 1, Color Shift plot
  • displayType = 2, Color Contour plot

These three basic types without log data conversion are shown from left to right in Figure 1 . The three basic types are shown with log conversion from left to right in the bottom rows of Figure 2 and Figure 3 .

Copy the input elevation data

Listing 6 makes a working copy of the input data to avoid damaging the original data. This is done to protect the data belonging to the program thatinstantiates an object of the class ImgMod29 .

Listing 6. Copy the input elevation data.
data = new double[dataHeight][dataWidth]; for(int row = 0;row<dataHeight;row++){ for(int col = 0;col<dataWidth;col++){ data[row][col] = dataIn[row][col];}//end loop on col }//end loop on row

Convert to log data if required

The code in Listing 7 uses the log10 method of the Math class to perform a log conversion of the surface elevation data if the value of logPlot is true.

Listing 7. Convert to log data if required
if(logPlot){//Convert to log base 10. for(int row = 0;row<dataHeight;row++){ for(int col = 0;col<dataWidth;col++){ //Change the sign on negative values// before converting to log values. if(data[row][col]<0){ data[row][col] = -data[row][col];}//end if if(data[row][col]>0){ //Convert value to log base 10. Log// of 0 is undefined. Just leave it // at 0.data[row][col]= Math.log10(data[row][col]);}//end if }//end col loop}//end row loop }//end if on logPlot

Get Jobilize Job Search Mobile App in your pocket Now!

Get it on Google Play Download on the App Store Now




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

Notification Switch

Would you like to follow the 'Digital signal processing - dsp' conversation and receive update notifications?

Ask