<< Chapter < Page
  Digital signal processing - dsp     Page 18 / 24
Chapter >> Page >
  • Because it uses an FFT algorithm, Dsp030 is much less flexible than Dsp028 , particularly with respect to data length and selection of the frequencies of interest.
  • Because it uses an FFT algorithm, Dsp030 is much faster than Dsp028 , particularly when used to perform spectral analysis on long data lengths.

A complete listing of Dsp030 is provided in Listing 22 .

Description of the program named dsp030

This program uses an FFT algorithm to compute and display the magnitude of the spectral content for up to five sinusoids having different frequencies andamplitudes. (See the program named Dsp028 for a program that does not use an FFT algorithm.)

The input parameters

The program gets input parameters from a file named Dsp030.txt . If that file doesn't exist in the current directory, the program uses a set ofdefault parameters.

Each parameter value must be stored as characters on a separate line in the file named Dsp030.txt . The required input parameters are shown in Figure 16 . (Contrast this with the required input parameters for Dsp028 shown in Figure 12 .)

Figure 16. Required input parameters for Dsp030.
Data length as type int (must be a power of 2) Number of spectra as type int. Max value is 5.List of sinusoid frequency values as type double. List of sinusoid amplitude values as type double.

Note that in contrast with Figure 12 , the required input parameters for Dsp030 do not include the sample number representing zero time, the lower frequency bound for computation of the spectra, and the upperfrequency bound for computation of the spectra.

(The computational frequency range cannot be specified for the FFT algorithm. It always computes the spectra from zero to one unit less thanthe sampling frequency.)

Restrictions on the data length

Note also that the data length must always be a power of two. Otherwise, the FFT algorithm will fail to run properly.

(This restriction is an important contributor to the speed achieved by the FFT algorithm.)

The sinusoidal frequency values

As with Dsp028 , the number of values in each of the lists must match the value for the number of spectra.

All frequency values are specified as a double representing a fractional part of the sampling frequency.

Figure 17 shows the parameters used to produce the spectral analysis plots shown later in Figure 18 .

(Note that the data length is a power of two as required by the FFT.)

Figure 17. Example input parameters.
256 50.1 0.20.3 0.50.005 9090 9090 90

The plotting program

The plotting program that is used to plot the output data from this program requires that the program implement GraphIntfc01 . For example, the plotting program named Graph03 can be used to plot the data produced by this program. This requires that you enter the following at thecommand line prompt after everything is compiled:

java Graph03 Dsp030

The plotting program named Graph06 can also be used to plot the data produced by this program, requiring that you enter the following at thecommand line prompt:

java Graph06 Dsp030

The transform method

A static method named transform belonging to the class named ForwardRealToComplexFFT01 is used to perform the actual spectral analysis. The method named transform implements an FFT algorithm. As mentioned above, the FFT algorithm requires that the data lengthbe a power of two. This method will be discussed very briefly later.

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