<< Chapter < Page
  Digital signal processing - dsp     Page 17 / 19
Chapter >> Page >
Listing 11. Dsp032a.java.
/* File Dsp032a.java Copyright 2004, R.G.BaldwinRevised 5/17/2004 Displays sinusoidal pulses identical to thoseprocessed by Dsp032. Creates and displays five separate time series,each 400 samples in length. Each time series contains a pulse and the pulsesare different lengths. Each pulse consists of the sum of two sinusoidsat closely spaced frequencies. The frequencies of the two sinusoids for all pulses are the same.All frequency values are specified as type double as a fraction of the sampling frequency.The frequencies of the two sinusoids are equidistant from 0.0625 times the samplingfrequency. The frequency of one sinusoid is(0.0625 - 2.0/len) times the sampling frequency. The frequency of the other sinusoid is(0.0625 + 2.0/len) times the sampling frequency. The lengths of the pulses are:25 samples 50 samples100 samples 200 samples400 samples Tested using J2SEE 1.4.2 under WinXP.************************************************/ import java.util.*;class Dsp032a implements GraphIntfc01{ final double pi = Math.PI;int len = 400;//data length int numberPulses = 5;//Frequencies of the sinusoids double freq1 = 0.0625 - 2.0/len;double freq2 = 0.0625 + 2.0/len; //Amplitude of the sinusoidsdouble amp = 160; //Following arrays will contain sinusoidal datadouble[] data1 = new double[len]; double[]data2 = new double[len];double[] data3 = new double[len]; double[]data4 = new double[len];double[] data5 = new double[len]; public Dsp032a(){//constructor//Create the raw data for(int x = 0;x<len/16;x++){ data1[x]= amp*Math.cos(2*pi*x*freq1) + amp*Math.cos(2*pi*x*freq2);}//end for loop for(int x = 0;x<len/8;x++){ data2[x]= amp*Math.cos(2*pi*x*freq1) + amp*Math.cos(2*pi*x*freq2);}//end for loop for(int x = 0;x<len/4;x++){ data3[x]= amp*Math.cos(2*pi*x*freq1) + amp*Math.cos(2*pi*x*freq2);}//end for loop for(int x = 0;x<len/2;x++){ data4[x]= amp*Math.cos(2*pi*x*freq1) + amp*Math.cos(2*pi*x*freq2);}//end for loop for(int x = 0;x<len;x++){ data5[x]= amp*Math.cos(2*pi*x*freq1) + amp*Math.cos(2*pi*x*freq2);}//end for loop }//end constructor//-------------------------------------------// //The following six methods are required by the// interface named GraphIntfc01. public int getNmbr(){//Return number of functions to process. // Must not exceed 5.return 5; }//end getNmbr//-------------------------------------------// public double f1(double x){int index = (int)Math.round(x); if(index<0 || index>data1.length-1){ return 0;}else{ //Scale the amplitude of the pulses to make// them compatible with the default // plotting amplitude of 100.0.return data1[index]*40.0/amp;}//end else }//end function//-------------------------------------------// public double f2(double x){int index = (int)Math.round(x); if(index<0 || index>data2.length-1){ return 0;}else{ return data2[index]*40.0/amp; }//end else}//end function //-------------------------------------------//public double f3(double x){ int index = (int)Math.round(x);if(index<0 || index>data3.length-1){ return 0;}else{ return data3[index]*40.0/amp; }//end else}//end function //-------------------------------------------//public double f4(double x){ int index = (int)Math.round(x);if(index<0 || index>data4.length-1){ return 0;}else{ return data4[index]*40.0/amp; }//end else}//end function //-------------------------------------------//public double f5(double x){ int index = (int)Math.round(x);if(index<0 || index>data5.length-1){ return 0;}else{ return data5[index]*40.0/amp; }//end else}//end function }//end sample class Dsp032a

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