<< Chapter < Page | Chapter >> Page > |
Each pulse consists of a cosine wave that has been truncated at a different length. The frequency of the cosine wave is the same for every pulse. As youwill see when we examine the code, the frequency of the cosine wave is 0.0625 times the sampling frequency. If you do the arithmetic, you will conclude thatthis results in 16 samples per cycle of the cosine wave.
In all five cases, the length of the time series upon which spectral analysis will be performed is 400 samples. For those four cases where the length of thepulse is less than 400 samples, the remaining samples in the time series have a value of zero.
When the spectral analysis is performed later, the number of individual frequencies at which the amplitude of the spectral energy will be computed willbe equal to the total data length. Therefore, the amplitude of the spectral energy will be computed at the same 400 frequencies for each of the five timeseries. That makes it convenient for us to stack the spectral plots up vertically and compare them (as in Figure 2 ) . This makes it easy for us to compare the distribution of energy across the frequency spectrum for pulsesof different lengths.
The plots in Figure 1 were produced using the program named Graph03 . Other plots in this module will be produced using the program named Graph06 . I explained those programs in earlier modules, and I provided the source code for both programs in the previous module titled Spectrum Analysis using Java, Sampling Frequency, Folding Frequency, and the FFT Algorithm . Therefore, I won't repeat those explanations or provide the source code for those programs in this module.
A complete listing of the program named Dsp031a is provided in Listing 9 near the end of the module.
This program displays sinusoidal pulses identical to those processed by the program named Dsp031 , which will be discussed later.
The program named Dsp031a creates and displays five separate time series, each 400 samples in length. Each time series contains a pulse andthe pulses are different lengths.
Each pulse consists of a truncated sinusoid. The frequency of the sinusoid for each of the pulses is the same.
Frequency values are specified as type double as a fraction of the sampling frequency. The frequency of each sinusoid is 0.0625 times thesampling frequency.
The lengths of the five pulses are:
This program is very similar to programs that I explained in previous modules in this series, so my explanation will be very brief. As usual, I will explainthe program in fragments.
The beginning of the class, along with the declaration and initialization of several variables is shown in Listing 1 . The names of the variables along with the embedded comments should make the code self explanatory.
Listing 1. Beginning of the class named Dsp031a. |
---|
class Dsp031a implements GraphIntfc01{
final double pi = Math.PI;int len = 400;//data length
int numberPulses = 5;//Frequency of the sinusoids
double freq = 0.0625;//Amplitude of the sinusoids
double amp = 160;//Following arrays will contain sinusoidal data
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]; |
Notification Switch
Would you like to follow the 'Digital signal processing - dsp' conversation and receive update notifications?