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

As mentioned earlier, these values were chosen mainly to be compatible with this narrow publication format. You should feel free to change the defaultvalues to a set of values that is more consistent with your needs. For example, if you plan to plot and examine very large amounts of data, you might want toconsider setting the frameWidth and frameHeight to completely fill the screen on your computer. Then you can examine largeamounts of data without the need to skip from one page to the next.

The feedData method

The feedData method must be called on the plotting object once for each data value that is to be plotted. This method is shown in itsentirety in Listing 14 .

Listing 14. The feedData method.
void feedData(double val){ if((sampleCounter) == samplesPerPage){pageCounter++; sampleCounter = 0;pageLinks.add(new Page(title)); }//end ifpageLinks.get(pageCounter).putData( val,sampleCounter);sampleCounter++; }//end feedData

Scaling of data to be plotted

The feedData method receives an incoming data value of type double . This is probably a good time to point out that the data must be properly scaled for plotting before it is passed to this method.

The incoming double value will later be cast to type int . As you should already know, if the double value is too large to fit in type int , the value resulting from the cast will be indeterminate.

In reality, however, the cast shouldn't be a problem. I'm unaware of any computer monitor whose vertical dimension is greater than a few thousand pixels.Regardless of the size of the Page object, a data value whose magnitude is greater than a few thousand units will be completely off the screenwhen plotted. Therefore, depending on the resolution of the monitor, the maximum magnitudes of the incoming data values should probably have been scaled to 1000or less to be suitable for plotting.

Is the page full?

Listing 14 first checks to see if the current page is full before attempting to plot the new data value. If the page is full, Listing 14 increments the page counter, resets the sample counter, and instantiates a new Page object.

Save the data value for plotting later

All of the data values are stored in array objects of type double as they are fed to the plotting object. Later, when it is time to display theplotted version of the data, an overridden paint method accesses that data and produces the plot.

The MyCanvas class, a preview

Each Page object contains an object of a class named MyCanvas , which extends the Canvas class. Each MyCanvas object owns an array object in which the double data values to be plotted on that page are stored.

The MyCanvas class overrides the paint method to cause it to plot the data stored in the array whenever the overridden version of the paint method is called.

(If you are familiar with graphics in Java, you will already know that the overridden paint method can be called for a variety of reasons, such as covering and later uncovering the page. If you are not familiar withgraphics in Java, I discuss the overriding of the paint method in numerous earlier modules including several modules on animation in Java.)

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