/* plot_fft.c part of series, also .m .py */ /* uses execl to run gnuplot */ #include #include #include #include #include "fft16.h" #include "ifft16.h" int main(int argc, char * argv[]) { int nfft = 16; /* number of real values, number of complex values */ int i, j, stat; float b16[16], ub16[16]; float cxa16[32], cxb16[32], cxc16[32]; /* 16 complex values */ double a, b; float a16[] = {0.0, 0.3826, 0.7071, 0.9238, 1.0, 0.9238, 0.7071, 0.3826, 0.0,-0.3826,-0.7071,-0.9238,-1.0,-0.9238,-0.7071,-0.3826}; float aa[128], bb[128], ubb[128]; float cxbb[256]; /* 128 complex values */ FILE * outp, * inp; /* OK, this could have been just a file, generated here. */ char line1[] = {"set title \"16 sample wave amplitude\" "}; char line2[] = {"set xrange[0:15]"}; char line3[] = {"set xlabel \"sample number, time\" "}; char line4[] = {"set ylabel \"wave amplitude\" "}; char line5[] = {"set term jpeg "}; char line6[] = {"set output \"plot_fft_c0.jpg\" "}; char line7[] = {"plot \"temp.dat\" with lines"}; char line8[] = {"clear"}; char line9[] = {"set title \"FFT abs magnitude \" "}; char line10[] = {"set xrange[0:15]"}; char line11[] = {"set xlabel \"frequency bin\" "}; char line12[] = {"set ylabel \"abs spectrum\" "}; char line13[] = {"set term jpeg "}; char line14[] = {"set output \"plot_fft_c1.jpg\" "}; char line15[] = {"plot \"temp1.dat\" with lines"}; char line16[] = {"replot"}; char line17[] = {"clear"}; char line18[] = {"set title \"FFT magnitude, unambiguous \" "}; char line19[] = {"set xrange[0:15]"}; char line20[] = {"set xlabel \"frequency bin\" "}; char line21[] = {"set ylabel \"abs folded spectrum\" "}; char line22[] = {"set term jpeg "}; char line23[] = {"set output \"plot_fft_c2.jpg\" "}; char line24[] = {"plot \"temp2.dat\" with lines"}; char line25[] = {"replot"}; char line26[] = {"clear"}; char line27[] = {"set title \"tdoa_cwfm1.dat\" "}; char line28[] = {"set xrange[0:127]"}; char line29[] = {"set xlabel \"sample number, time\" "}; char line30[] = {"set ylabel \"wave amplitude\" "}; char line31[] = {"set term jpeg "}; char line32[] = {"set output \"plot_fft_c3.jpg\" "}; char line33[] = {"plot \"temp3.dat\" with lines"}; char line34[] = {"replot"}; char line35[] = {"clear"}; char line36[] = {"set title \"FFT tdoa abs magnitude \" "}; char line37[] = {"set xrange[0:127]"}; char line38[] = {"set xlabel \"frequency bin\" "}; char line39[] = {"set ylabel \"abs spectrum\" "}; char line40[] = {"set term jpeg "}; char line41[] = {"set output \"plot_fft_c4.jpg\" "}; char line42[] = {"plot \"temp4.dat\" with lines"}; char line43[] = {"replot"}; char line44[] = {"clear"}; char line45[] = {"set title \"FFT tdoa magnitude, unambiguous \" "}; char line46[] = {"set xrange[0:127]"}; char line47[] = {"set xlabel \"frequency bin\" "}; char line48[] = {"set ylabel \"abs folded spectrum\" "}; char line49[] = {"set term jpeg "}; char line50[] = {"set output \"plot_fft_c5.jpg\" "}; char line51[] = {"plot \"temp5.dat\" with lines"}; char line52[] = {"replot"}; printf("plot_fft.c running \n"); printf("a16=\n"); for(i=0; i<4; i++) printf("%f, %f, %f, %f \n", a16[4*i], a16[4*i+1], a16[4*i+2], a16[4*i+3]); outp = fopen("temp.dat", "w"); for(i=0; i<16; i++) fprintf(outp, "%f \n", a16[i]); fclose(outp); for(i=0; i