int main(void) { static REAL r1[N], i1[N], r2[N], i2[N], r3[N], i3[N]; czt_struct cztd; int i; for (i = 0; i < N; i++) { // r1[i] = r2[i] = 6 * sin(2*PI * i/N); // r1[i] = r2[i] = 6 * cos(1*PI * i/N); r1[i] = r2[i] = 9 * cos(2*2*PI * i/N) + 4 * sin(6*2*PI * i/N); i1[i] = i2[i] = 0; } if (czt_init(&cztd, N, N) != 0) return EXIT_FAILURE; /* 順変換 */ czt(&cztd, 0, r2, i2); for (i = 0; i < N; i++) { r3[i] = r2[i]; i3[i] = i2[i]; } /* 逆変換 */ czt(&cztd, 1, r3, i3); czt_end(&cztd); printf("\n"); printf(" | サンプリングデータ | フーリエ変換 | フーリエ逆変換\n"); printf("-----+-----------------------+-----------------------+-----------------------\n"); for (i = 0; i < N; i++) { printf("%4d | %10.5f %10.5f | %10.5f %10.5f | %10.5f %10.5f\n", i+1, r1[i],i1[i], r2[i],i2[i], r3[i],i3[i]); } printf("-----+-----------------------+-----------------------+-----------------------\n"); printf("\n"); printf(" サンプリング波形\n"); plot_graph(N, r1); printf("\n"); printf(" フーリエスペクトル(Re Axis)\n"); plot_graph(N, r2); printf("\n"); printf(" フーリエスペクトル(Im Axis)\n"); plot_graph(N, i2); printf("\n"); return EXIT_SUCCESS; }
//This plots a graph using gnuplot variable flux_plot_graph(opts o,interpreter *i) { variable v=init_variable(); int buffer=0; char *filename=NULL; if (i->cast_int(&buffer,o,0) && i->cast_string(&filename,o,1)) { plot_graph(buffer,filename); } return v; }
int plotsdlgraph() { params.caption_list = caption_list; params.coordinate_list = coordinate_list; int ret = plot_graph(¶ms); /*no need to free linked list, it has already been done in plot_graph()*/ caption_list = NULL; coordinate_list = NULL; if (ret == EXIT_FAILURE) { printf("plot_graph return with status %d\n",ret); return EXIT_FAILURE; } return EXIT_SUCCESS; }