<< Chapter < Page
  Digital signal processing - dsp     Page 16 / 24
Chapter >> Page >

Compute the complex energy at each frequency

That is all there is to it. For each frequency of interest, you can use this process to compute a complexnumber, Real(F)-jImag(F), which represents the complex energy corresponding to that frequency in the target time series.

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. The square root of the power is the amplitude of the energy at that frequency.

Nested for loops

Normally we are interested in more than one frequency, so we would repeat the above procedure once for each frequency of interest. This suggests the use ofnested for loops in the algorithm. The outer loop specifies the frequency of interest. The inner loop computes the sum of the products at a particularfrequency.

Description of the transform method

The static method named transform performs a real to complex Fourier transform. The method does not implement the FFT algorithm. Rather, itimplements a straightforward sampled data version of the continuous Fourier transform defined using integral calculus. (See ForwardRealToComplexFFT01 for an FFT algorithm.)

The return values

The method returns the following:

  • Real part of the spectral analysis result
  • Imaginary part of the spectral analysis result
  • Magnitude of the spectral analysis result
  • Phase angle of the spectral analysis result in degrees

The transform method parameters

The method parameters are:

  • double[] data - incoming real data
  • double[] realOut - outgoing real data
  • double[] imagOut - outgoing imaginary data
  • double[] angleOut - outgoing phase angle in degrees
  • double[] magnitude - outgoing amplitude spectrum
  • int zero - the index of the incoming data sample that represents zero time
  • double lowF - low frequency limit for computation as a fraction of sampling frequency
  • double highF - high frequency limit for computation as a fraction of sampling frequency

Frequency increment, magnitude spectrum, and number of returned values

The computational frequency increment is the difference between the high and low limits divided by the length of the magnitude array.

The magnitude or amplitude is computed as the square root of the sum of the squares of the real and imaginary parts. This value is divided by the incomingdata length, which is given by data.length .

The method returns a number of points in the frequency domain equal to the incoming data length regardless of the high and low frequency limits.

The beginning of the transform method

The class and the transform method begin in Listing 14 . The code in Listing 14 is described above.

Listing 14. The beginning of the transform method.
public class ForwardRealToComplex01{ public static void transform(double[] data,double[] realOut,double[] imagOut,double[] angleOut,double[] magnitude,int zero, double lowF,double highF){ double pi = Math.PI;//for convenienceint dataLen = data.length; double delF = (highF-lowF)/data.length;

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