<< Chapter < Page
  Digital signal processing - dsp     Page 15 / 19
Chapter >> Page >
Listing 9. Dsp031a.java.
/* File Dsp031a.java Copyright 2004, R.G.BaldwinRevised 5/17/2004 Displays sinusoidal pulses identical to thoseprocessed by Dsp031. 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 a truncated sinusoid. Thefrequency of the sinusoid for all pulses is the same.All frequency values are specified as type double as a fraction of the sampling frequency. The frequency of all sinusoids is 0.0625 timesthe 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 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];public Dsp031a(){//constructor //Create the raw datafor(int x = 0;x<len/16;x++){ data1[x]= amp*Math.cos(2*pi*x*freq); }//end for loopfor(int x = 0;x<len/8;x++){ data2[x]= amp*Math.cos(2*pi*x*freq); }//end for loopfor(int x = 0;x<len/4;x++){ data3[x]= amp*Math.cos(2*pi*x*freq); }//end for loopfor(int x = 0;x<len/2;x++){ data4[x]= amp*Math.cos(2*pi*x*freq); }//end for loopfor(int x = 0;x<len;x++){ data5[x]= amp*Math.cos(2*pi*x*freq); }//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]*90.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]*90.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]*90.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]*90.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]*90.0/amp; }//end else}//end function }//end sample class Dsp031a

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