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

The DFT algorithm

Using my alternative notation described earlier in Figure 2 , the expressions that you must evaluate to determine the frequency spectral content of a target timeseries at a frequency F are shown in Figure 6 (note that I didn't bother to divide by N which is fairly common practice) .

Figure 6. Forward Fourier transform.
Real(F) = S(n=0,N-1)[x(n)*cos(2Pi*F*n)] Imag(F) = S(n=0,N-1)[x(n)*sin(2Pi*F*n)]ComplexAmplitude(F) = Real(F) - j*Imag(F) Power(F) = Real(F)*Real(F) + Imag(F)*Imag(F)

What does this really mean?

Before you panic, let me explain what this means in layman's terms. Given a time series, x(n), you can determine if that time series contains a cosinecomponent or a sine component at a given frequency, F, by doing the following:

  • Create one new time series, cos(n), which is a cosine function with the frequency F.
  • Create another new time series, sin(n), which is a sine function with the frequency F. (The methods needed to create the cosine and sine time series are available in the Math class in the standard Java library.)
  • Multiply x(n) by cos(n) and compute the sum of the products. Save this value, calling it Real(F). This is an estimate of the amplitude, if any, ofthe cosine component with the matching frequency contained in the time series x(n).
  • Multiply x(n) by sin(n) and compute the sum of the products. Save this value, calling it Imag(F). This is an estimate of the amplitude, if any, ofthe sine component with the matching frequency contained in the time series x(n).
  • Consider the values for Real(F) and Imag(F) to be the real and imaginary parts of a complex number.
  • Consider the sum of the squares of the real and imaginary parts to represent the power at that frequency in the time series.

It's that simple

That's all there is to it. For each frequency of interest, you can use this process to compute a complex number, Real(F) - jImag(F), whichrepresents the component of that frequency in the target time series.

(The mathematicians in the audience probably prefer to use the symbol i instead of the symbol j to represent the imaginary part. The use of j forthis purpose comes from my electrical engineering background.)

Similarly, you can compute the sum of the squares of the real and imaginary parts and consider that to be a measure of the power at that frequency in thetime series.

(This is typically the value that you would see being displayed by one of the dancing vertical bars on the front of the equalizer on your stereosystem.)

Normally we are interested in more than one frequency, so we would repeat the above procedure once for each frequency of interest.

(This would produce the set of values that you would likely see being displayed by all of the dancing vertical bars on the font of the equalizeron your stereo system.)

Why does this work?

This works because of the three trigonometric identities shown in Figure 7 .

Figure 7. Three trigonometric identities.
1. sin(a)*sin(b)=(1/2)*(cos(a-b)-cos(a+b)) 2. cos(a)*cos(b)=(1/2)*(cos(a-b)+cos(a+b))3. sin(a)*cos(b)=(1/2)*(sin(a+b)+sin(a-b))

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