<< Chapter < Page
  Digital signal processing - dsp     Page 12 / 25
Chapter >> Page >

When the constructor finishes execution, the new object of the class named Dsp002 has been created and occupies memory. The array objects contained in the new object have been populated with five different types ofdata. That data is available to be retrieved and plotted.

The getNmbr method

The class definition for the class named Dsp002 contains several more methods that I need to explain. For example, the getNmbr method for this class is exactly the same as for the class discussed earlier. Asbefore, it returns the integer value 5, telling the plotting program that there are five plots to be generated. This method is shown in Listing 15 .

Listing 15. The getNmbr method.
public int getNmbr(){ return 5;}//end getNmbr

The method named f1

The method named f1 is representative of all five of themethods named f1 through f5 in this class. Therefore, I will discuss only the first of the five methods in detail. Themethod named f1 is shown in its entirety in Listing 16 .

Listing 16. The method named f1.
public double f1(double x){ int index = (int)Math.round(x);if(index<0 || index>data.length-1){ return 0;}else{ return data[index]; }//end else}//end f1

In all five cases, the purpose of the method is to fetch and return a value from an array, where the incoming parameter will be converted to an array index.

Convert incoming parameter to an index

The incoming parameter is received as type double . However, an array must be indexed using type int . The first statement in the method calls the round method of the Math class to convert the double value to the nearest integer. That integer will be used as an array index.

Stay within array bounds

Following this, the method applies some logic to confirm that the index value is within the bounds of the array. If not, the method returns the value 0.

If the index is within the array bounds, the method retrieves and returns the value stored at that index location in the array.

And that's all there is to it.

Methods f2 through f5

Except for the scale factors applied to the data before returning it, the behavior of the methods named f2 through f5 is essentially the same as the behavior of the method named f1 . In each case, the method retrieves, scales, and returns a value previously storedin an array. Therefore, I won't discuss these other methods. You can view them in Listing 38 near the end of the module.

And that ends the definition of the class named Dsp002 .

The class named Convolve01

The entire class named Convolve01 is shown in Listing 17 .

If you already understand convolution, you will probably find the code in this class straightforward. If not, the code will probably still bestraightforward, but the reason for the code may be obscure.

Listing 17. The class named Convolve01.
class Convolve01{ public static void convolve(double[] data,int dataLen, double[]operator, int operatorLen,double[] output){//Apply the operator to the data, // dealing with the index// reversal required by // convolution.for(int i=0; i<dataLen-operatorLen;i++){ output[i]= 0; for(int j=operatorLen-1;j>=0; j--){output[i] +=data[i+j]*operator[j]; }//end inner loop}//end outer loop }//end convolve method}//end Class Convolve01

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