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

The class named Transform

Listing 2 presents the beginning of the class named Transform . Listing 2 also presents the beginning of an instance method of that class named doIt . The doIt method computes and returns the complex transform (via output parameters) of an incoming complex series.

Listing 2. The class named Transform.
class Transform{ void doIt(double[]realIn, double[]imagIn, double scale,double[] realOut,double[] imagOut){

The method parameters

The doIt method receives five incoming parameters. The first two parameters are references to two array objects of type double containing the real and imaginary parts of the input series.

The third parameter is a scale factor that is applied to the transform output in an attempt to keep the values in a range suitable for plotting if desired.

The last two parameters are references to array objects of type double . The results of performing the transform are used to populate these two arrays. This is the mechanism by which the object returns thetransform results to the calling program. It is assumed that all of the elements in these two array objects contain values of zero upon entry to the doIt method.

Performing the transform

The body of the doIt method is presented in Listing 3 . The code in Listing 3 iterates on the input arrays, passing each complex sample contained in those two arrays to a method named correctAndRecombine .

Listing 3. Performing the transform.
for(int cnt = 0;cnt<realIn.length;cnt++){ correctAndRecombine(realIn[cnt], imagIn[cnt], cnt,realIn.length, scale,realOut, imagOut);}//end for loop }//end doIt

The transforms of the complex input samples

Each complex value in the incoming arrays represents both a complex sample and the transform of that complex sample under the assumption that the complexsample appears at the origin of the input series.

Correct for actual position and recombine

The method named correctAndRecombine corrects the transform result for each of the complex samples in the series so as to reflect the actualposition of the complex sample in the original input series.

Then the method named correctAndRecombine adds the corrected transform result into a pair of accumulators, one for the real part and one forthe imaginary part. This accomplishes the recombination of the corrected transforms of the input samples in order to produce the transform of the entireoriginal complex input series.

The correctAndRecombine method

The correctAndRecombine method is shown in Listing 4 . Listing 4 also signals the end of the Transform class.

Listing 4. The correctAndRecombine method.
void correctAndRecombine(double realSample, double imagSample,int position, int length,double scale, double[]realOut, double[]imagOut){ //Calculate the complex transform values for// each sample in the complex output series. for(int cnt = 0; cnt<length; cnt++){ double angle =(2.0*Math.PI*cnt/length)*position; //Calculate output based on real inputrealOut[cnt] +=realSample*Math.cos(angle)/scale; imagOut[cnt]+= realSample*Math.sin(angle)/scale;//Calculate output based on imag input realOut[cnt]-= imagSample*Math.sin(angle)/scale;imagOut[cnt] +=imagSample*Math.cos(angle)/scale; }//end for loop}//end correctAndRecombine }//end class transform

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