<< Chapter < Page
  Digital signal processing - dsp     Page 20 / 27
Chapter >> Page >

The beginning of the class and an abbreviated version of the main method is provided in Listing 27 . Much of the code has been deleted from Listing 27 for brevity.

Listing 27. The class named PlotALot02 and the main method.
public class PlotALot02{ public static void main(String[]args){ PlotALot02 plotObjectA =new PlotALot02("A",158,237,36,5,4,4);for(int cnt = 0;cnt<275;cnt++){ double valBlack = (Math.random() - 0.5)*25;double valRed = -valBlack; //Feed pairs of values to the plotting// object by calling the feedData method // once for each pair of data values.if(cnt == 147){ plotObjectA.feedData(0,0);//...code deleted for brevity }else{plotObjectA.feedData(valBlack,valRed); }//end else}//end for loop //Cause the data to be plotted in the default// screen location. plotObjectA.plotData();}//end main

Two data values are required

The important thing to note in Listing 27 is that two data values must be passed to the feedData method each time it is called. This consists of one data value from each channel of data being plotted.

The feedData method

The modified feedData method is shown in its entirety in Listing 28 .

Listing 28. The feedData method.
void feedData(double valBlack,double valRed){ if((sampleCounter) == samplesPerPage){//if the page is full, increment the page // counter, create a new empty page, and// reset the sample counter. pageCounter++;sampleCounter = 0; pageLinks.add(new Page(title));}//end if //Store the sample values in the MyCanvas// object to be used later to paint the // screen. Then increment the sample// counter. The sample values pass through // the page object into the current MyCanvas// object. pageLinks.get(pageCounter).putData(valBlack,valRed,sampleCounter); sampleCounter++;}//end feedData

The most significant things to note about the modified version of the feedData method are:

  • The method receives two incoming data values as parameters instead of just one.
  • The method passes the two data values, along with the sample counter value to the putData method of the PlotALot02 class. Thus, the putData method has also been modified to require two incoming data values.

The putData method

The modified putData method is shown in its entirety in Listing 29 . This modified version of the method receives a pair of data values and stores each ofthe data values in a different array object belonging to the MyCanvas object.

Listing 29. The putData method.
void putData(double valBlack,double valRed, int sampleCounter){canvas.blackData[sampleCounter] = valBlack;canvas.redData[sampleCounter] = valRed;this.sampleCounter = sampleCounter; }//end putData

The MyCanvas class

The modified version of the MyCanvas class begins in Listing 30 .

Listing 30. Beginning of the MyCanvas class.
class MyCanvas extends Canvas{ double []blackData = new double[samplesPerPage]; double []redData = new double[samplesPerPage];

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