<< Chapter < Page | Chapter >> Page > |
Therefore, noting the amplitude spectrum in the second plot of Figure 2 , phase angle results to the right of the fourth tick mark are probably useless.
The phase angle produced by performing a Fourier transform on a pulse of a given waveform is not unique. There are an infinite number of combinations ofreal and imaginary parts that can result from performing a Fourier transform on a given waveform, depending on how you define the origin of time. This meansthat there are also an infinite number of phase angle curves that can be produced from the ratio of those real and imaginary parts. I will explain thisin more detail later using simpler pulses.
In the case shown in Figure 2 , the frequency band of primary interest lies approximately between the first and the third tick marks. Most of the energy canbe seen to lie between those limits on the basis of the amplitude plot.
The phase angle curve goes from a little more than zero degrees to a little less than 180 degrees across this frequency interval. However, it is significantto note that the phase angle is not linear across this frequency interval. Rather the shape of the curve is more like an elongated S sloping to the right.
What is the significance of the nonlinear phase angle? If this plot represented the frequency response of your audio system, the existence of thenonlinear phase angle would be bad news. In particular, it would mean that the system would introduce phase distortion into your favorite music.
In an earlier module titled Spectrum Analysis using Java, Sampling Frequency, Folding Frequency, and the FFT Algorithm , I explained most of the code in the method named transform belonging to the class named ForwardRealToComplex01 . However, I skipped over that portion of the code that computes the phase angle on the basis of thevalues of the real and imaginary parts. I am going to explain that code in this module. For an explanation of the rest of the code in the transform method, go back and review the module titled Spectrum Analysis using Java, Sampling Frequency, Folding Frequency, and the FFT Algorithm .
The code in the transform method that computes the phase angle for a particular frequency is shown in Listing 1 . At this point in the execution of the transform method, the values of the real part (real) and the imaginary part (imag) of the Fourier transform at a particular frequency have been computed. Those valuesare used to compute the phase angle at that frequency.
Listing 1. Computation of the phase angle. |
---|
if(imag == 0.0&&real == 0.0){ang = 0.0;}
else{ang = Math.atan(imag/real)*180.0/pi;}if(real<0.0&&imag == 0.0){ang = 180.0;}
else if(real<0.0&&imag == -0.0){
ang = -180.0;}else if(real<0.0&&imag>0.0){
ang += 180.0;}else if(real<0.0&&imag<0.0){
ang += -180.0;}angleOut[i] = ang; |
Notification Switch
Would you like to follow the 'Digital signal processing - dsp' conversation and receive update notifications?