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

What if both values are zero?

The code begins by testing to see if both the real and imaginary parts are equal to zero. If so, attempting to form the ratio of the imaginary part to thereal part would be meaningless. In this case, the code in Listing 1 simply sets the phase angle to a value of zero.

The atan method of the math class

If both the real and imaginary parts are not zero, then the ratio of the imaginary value to the real value is formed and passed as a parameter to the atan method of the Math class.

The atan method returns the angle in radians whose tangent matches the value received as a parameter. The angle that is returned is in therange from -pi/2 to +pi/2 (-90 degrees to +90 degrees) . The code in Listing 1 multiplies that angle in radians by 180.0/pi to convert the angle from radians to degrees.

Correction required for the quadrant

Although we have an intermediate answer at this point, we're still not finished. There is more work to do. The atan method simply uses the sign of its incoming parameter to decide whether to report the angle aspositive or negative, and it only covers angles in two quadrants (-90 degrees to + 90 degrees) . We know that the angle can actually be in any one of four quadrants (-180 degrees to +180 degrees) .

The first and third quadrants

For example, a positive ratio can result from a positive imaginary value and a positive real value, or from a negative imaginary value and a negative realvalue. Both of these would be reported by the atan method as being between 0 and 90 degrees when in fact, the negative imaginary value andthe negative real value means that the angle is actually between -90 degrees and -180 degrees.

The second and fourth quadrants

Similarly, a negative ratio can result from a negative imaginary value and a positive real value or from a positive imaginary value and a negative realvalue. Both of these would be reported by the atan method as being between 0 and -90 degrees when in fact, the positive imaginary value andthe negative real value means that the angle is actually between 90 degrees and 180 degrees.

An exercise for the reader

I will leave it as an exercise for the reader to work through the remaining code in Listing 1 to see how this code determines the proper quadrant and adjusts the angle appropriately, all the while maintaining the angle between-180 degrees and +180 degrees.

The program named Dsp034

I will discuss the program named Dsp034 in fragments. A complete listing of the program is provided in Listing 6 near the end of the module.

Due to the similarity of this program to programs explained in previous modules in this series, this discussion will be rather brief. Following adiscussion of the code, I will provide and explain some more spectral analysis results obtained by running the program with parameters read from the file named Dsp034.txt .

The beginning of the Dsp034 class

The beginning of the class, along with the declaration of several variables is shown in Listing 2 .

(Note that the class implements the interface named GraphIntfc01.)

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