<< Chapter < Page | Chapter >> Page > |
The variable names and the embedded comments should make the purpose of these variables self explanatory. If not, you will see how they are used later in theprogram.
Listing 2. The beginning of the Dsp034 class. |
---|
class Dsp034 implements GraphIntfc01{
final double pi = Math.PI;//for simplificationint dataLen;//data length
int pulseLen;//length of the pulseint zeroTime;//sample that represents zero time
//Low and high frequency limits for the// spectral analysis.
double lowF;double highF;
double[]pulse;//data describing the pulse
//Following array stores input data for the// spectral analysis process.
double[]data;
//Following arrays receive information back// from the spectral analysis process
double[]real;
double[]imag;
double[]angle;
double[]mag; |
The constructor
The constructor begins in Listing 3 . The code in the constructor either calls the getParameters method to get the operating parameters from the file namedDsp034.txt, or creates a set of operating parameters on the fly if that file does not exist in the current directory. In either case, many of the variablesdeclared in Listing 2 are populated as a result of that action.
Listing 3. Beginning of the constructor. |
---|
public Dsp034(){//constructor
//Get the parameters from a file named// Dsp034.txt. Create and use default
// parameters describing a damped sinusoidal// pulse if the file doesn't exist in the
// current directory.if(new File("Dsp034.txt").exists()){
getParameters();}else{
//Create default parametersdataLen = 400;//data length
pulseLen = 100;//pulse length//Sample that represents zero time.
zeroTime = 0;//Low and high frequency limits for the
// spectral analysis.lowF = 0.0;
highF = 0.5;//half the sampling frequencypulse = new double[pulseLen];double scale = 240.0;
for(int cnt = 0;cnt<pulseLen;cnt++){
scale = 0.94*scale;//damping scale factorpulse[cnt] =scale*Math.sin(2*pi*cnt*0.0625);
}//end for loop//End default parameters
}//end else |
For the case where the file named Dsp034.txt doesn't exist in the current directory, the code in the else clause in Listing 3 establishes default operating parameters, and creates the damped sinusoid pulse shown in the top plot of Figure 2 .
At this point in the process, the array referred to by the reference variable named pulse contains a set of samples that constitutes a pulse. The code in Listing 4 creates a data array containing the data upon which spectral analysis will be performed and stores the pulse in that array.
(All elements in the data array other than those elements occupied by values of the pulse have a value of zero.)
Listing 4. Store the pulse in the time series. |
---|
data = new double[dataLen];for(int cnt = 0;cnt<pulse.length;cnt++){
data[cnt]= pulse[cnt];}//end for loop |
Following this, code in the constructor prints the parameters and the values of the samples that constitute the pulse. You can view that code in Listing 6 near the end of the module.
Notification Switch
Would you like to follow the 'Digital signal processing - dsp' conversation and receive update notifications?