<< Chapter < Page
  Digital signal processing - dsp     Page 7 / 19
Chapter >> Page >

Description

This program performs spectral analyses on five separate time series, each 400 samples in length.

Each time series contains a pulse and the pulses are different lengths. (The lengths of the individual pulses match that shown in Figure 1 .) Each pulse consists of a truncated sinusoid. The frequency of the sinusoid for each pulseis the same.

All frequency values are specified as type double as a fraction of the sampling frequency. The frequency of all five sinusoids is 0.0625 times thesampling frequency.

The lengths of the pulses are:

  • 25 samples
  • 50 samples
  • 100 samples
  • 200 samples
  • 400 samples

If this sounds familiar, it is because the pulses are identical to those displayed in Figure 1 and discussed under Dsp031a above.

Uses a DFT algorithm

The spectral analysis process uses a DFT algorithm and computes the amplitude of the spectral energy at 400 equally spaced frequencies between zero and thefolding frequency.

(Recall from the module titled Spectrum Analysis using Java, Sampling Frequency, Folding Frequency, and the FFT Algorithm that the folding frequency is one-half the sampling frequency.)

This program computes and displays the amplitude spectrum at frequency intervals that are one-half of the frequency intervals for a typical FFTalgorithm.

Normalize the results

The results of the spectral analysis are multiplied by the reciprocal of the lengths of the individual pulses to normalize all five plots to the same peakvalue. Otherwise, the results for the short pulses would be too small to see on the plots.

Will discuss in fragments

Once again, this program is very similar to programs explained in the previous module titled Spectrum Analysis using Java, Sampling Frequency, Folding Frequency, and the FFT Algorithm . Therefore, this discussion will be very brief.

Beginning of the class named Dsp031

The code in Listing 3 declares and initializes some variables and creates the array objects that will contain the sinusoidal pulses.

In addition, the code in Listing 3 declares reference variables that will be used to refer to array objects containing results of the spectral analysisprocess that are not used in this program.

Finally, Listing 3 declares reference variables that will be used to refer to array objects containing the results plotted in Figure 2 and Figure 3 .

Given the names of the variables, the comments, and what you learned in the earlier modules, the code in Listing 3 should be self explanatory.

Listing 3. Beginning of the class named Dsp031.
class Dsp031 implements GraphIntfc01{ final double pi = Math.PI;int len = 400;//data length //Sample that represents zero time.int zeroTime = 0; //Low and high frequency limits for the// spectral analysis. double lowF = 0.0;double highF = 0.5; int numberSpectra = 5;//Frequency of the sinusoids double freq = 0.0625;//Amplitude of the sinusoids double amp = 160;//Following arrays will contain data that is // input to the spectral analysis process.double[] data1 = new double[len]; double[]data2 = new double[len];double[] data3 = new double[len]; double[]data4 = new double[len];double[] data5 = new double[len];//Following arrays receive information back // from the spectral analysis that is not used// in this program. double[]real; double[]imag; double[]angle;//Following arrays receive the magnitude // spectral information back from the spectral// analysis process. double[]mag1; double[]mag2; double[]mag3; double[]mag4; double[]mag5;

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