chirp signal analysis
DESCRIPTION
CHIRP SIGNAL ANALYSIS. Cesar A Aceros Moreno. DCFT Definition. CHIRP Signal. OUTPUT OF THE DCFT. Dataflow of the DCFT. Structure of the datafiles. dataout.txt 128 -0.000000 real.x[0,0] -0.000000 imag.x[1,0] 0.000000 real.x[1,0] 0.000000 imag.x[1,0] …. - PowerPoint PPT PresentationTRANSCRIPT
42510011 0010 1010 1101 0001 0100 1011
CHIRP SIGNAL ANALYSIS
Cesar A Aceros Moreno
4251
0011 0010 1010 1101 0001 0100 1011
DCFT Definition
4251
0011 0010 1010 1101 0001 0100 1011
CHIRP Signal
4251
0011 0010 1010 1101 0001 0100 1011
OUTPUT OF THE DCFT
4251
0011 0010 1010 1101 0001 0100 1011
Dataflow of the DCFT
4251
0011 0010 1010 1101 0001 0100 1011
Structure of the datafiles• datain.txt
1281.000000 x[0]0.000000 x[1]0.555570 x[2]
….
0.831470 x[124]-0.195090 x[125]0.980785 x[126]-0.707107 x[127]
• dataout.txt
128-0.000000 real.x[0,0]-0.000000 imag.x[1,0]0.000000 real.x[1,0]0.000000 imag.x[1,0]
….
-0.000000 real.x[127,0]1.414215 imag.x[127,0]-1.414213 real.x[0,1]0.000000 imag.x[0,1]
….
-0.000000 real.x[127,1]0.000000 imag.x[127,1]1.913880 real.x[0,2]0.580570 imag.x[0,2]
4251
0011 0010 1010 1101 0001 0100 1011
DCFT IMPLEMENTATIONS
DCFT
PCIMPLEMENTATION
MatlabC
CLUSTERIMPLEMENTATION
PLANET LABSerial
Parallel
4251
0011 0010 1010 1101 0001 0100 1011
DCFT Serialmain(){ char temp[1]; float *data, *dataw; long int nn=0; int i=0,l=0; FILE *infile,*outfile; if ((infile = fopen("datain.txt", "r")) == NULL) fprintf(stderr,"Cannot open file"); fscanf(infile,"%d",&nn); printf("Valor size: %d\n",nn); data = malloc(sizeof(float)*nn*2); dataw = malloc(sizeof(float)*nn*2); for (i=1;i<2*nn+1;i++){ fscanf(infile,"%f",&data[i]); } fclose(infile);
outfile = fopen("dataout.txt", "w");fprintf(outfile,"%ld\n",nn); for (l=0;l<nn;l++){ printf("Layer %ld \n",l); for (i=1;i<2*nn+1;i++){ dataw[i]=data[i]; } haddamard(dataw,nn,l); four1(dataw,nn,1); for (i=1;i<2*nn+1;i++){ dataw[i]=dataw[i]/sqrt(nn); fprintf(outfile,"%f\n", dataw[i] ); }
} fclose(outfile);
}
4251
0011 0010 1010 1101 0001 0100 1011
Experiment Description: createdata
• For the experiment the sample size was limited to be within the set {6000, 7000, 8000}
• The sample size was varied from one experimental run to the next.
• The values of K0 and L0 where chosen randomly on each run.
4251
0011 0010 1010 1101 0001 0100 1011
Experiment Description: dcft
• Input:– Reads the file datain generated by createdata.
• Output:– Calculates the DCFT of the input data and
prints the results to a file named dataout.
4251
0011 0010 1010 1101 0001 0100 1011
Experiment Description
• Of the two programs dcft is the only one of interest.
• Utilized Paradyn to instrument and analyze the performance of dcft.
4251
0011 0010 1010 1101 0001 0100 1011
Analyzing Performance with Paradyn
4251
0011 0010 1010 1101 0001 0100 1011
Analyzing Performance with Paradyn: Process Specification
4251
0011 0010 1010 1101 0001 0100 1011
Analyzing Performance with Paradyn: Process Specification
4251
0011 0010 1010 1101 0001 0100 1011
Analyzing Performance with Paradyn: The Where Axis
4251
0011 0010 1010 1101 0001 0100 1011
Analyzing Performance with Paradyn: Metric Specification
4251
0011 0010 1010 1101 0001 0100 1011
Analyzing Performance with Paradyn: Metric Descriptions
• cpu – Each bin represents the percentage of cpu time spent during the corresponding time interval. Aggregation is total cpu time over an interval.
• cpu_inclusive – Same as cpu but includes called procedures in the process time calculation.
• exec_time - Each bin represents the elapsed wall clock time per unit during the corresponding time interval. Aggregation is the sum over the interval.
4251
0011 0010 1010 1101 0001 0100 1011
Analyzing Performance with Paradyn: Metric Descriptions
• io_bytes – This metric represents the number of bytes for Input/Output operations. Currently, only “read” and “write” are supported as input/output operations for UNIX, MPI, and PVM.
• io_ops – Number of Input/Output operations. IO operations are the same as for io_bytes.
• io_wait – Time spent during Input/Output operations. IO operations are the same as for io_bytes.
• io_wait_inclusive – Same as io_wait but includes called procedures in the process time calculation.
4251
0011 0010 1010 1101 0001 0100 1011
Analyzing Performance with Paradyn: Bottleneck Analysis
4251
0011 0010 1010 1101 0001 0100 1011
Analyzing Performance with Paradyn: Results
Sampling Size = 7000, K0 = 15, L0 =15
4251
0011 0010 1010 1101 0001 0100 1011
Analyzing Performance with Paradyn: Results
Sampling Size = 7000, K0 = 15, L0 =15
4251
0011 0010 1010 1101 0001 0100 1011
Analyzing Performance with Paradyn: Results
Sampling Size = 8000, K0 = 10, L0 =10
4251
0011 0010 1010 1101 0001 0100 1011
Analyzing Performance with Paradyn: Results
Sampling Size = 8000, K0 = 10, L0 =10
4251
0011 0010 1010 1101 0001 0100 1011
Analyzing Performance with Paradyn: Results
4251
0011 0010 1010 1101 0001 0100 1011
FFTW is a C subroutine library for computing the discrete Fourier transform (DFT) in one or more dimensions, of arbitrary input size, and of both real and complex data (as well as of even/odd data, i.e. the discrete cosine/sine transforms or DCT/DST). We believe that FFTW, which is free software, should become the FFT library of choice for most applications.
#include <fftw_mpi.h>
#include <fftw.h>
plan = fftw_mpi_create_plan(MPI_COMM_WORLD, NX , FFTW_FORWARD, FFTW_IN_PLACE);
fftw_mpi(plan, 1, datainC, dataout);
fftw_mpi_destroy_plan(plan);
4251
0011 0010 1010 1101 0001 0100 1011
Results of Execution Time.
CLUSTER IMPLEMENTATION OF THE DCFT
y = 5E-06x2 - 0.0016x + 0.374
050
100150200250
300350
0 2000 4000 6000 8000 10000
4251
0011 0010 1010 1101 0001 0100 1011
PLANET LAB
• CHIRP IMPLEMENTATION
4251
0011 0010 1010 1101 0001 0100 1011