Ejemplo n.º 1
0
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;
}
Ejemplo n.º 2
0
//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;
}
Ejemplo n.º 3
0
int plotsdlgraph() {

	params.caption_list = caption_list;
	params.coordinate_list = coordinate_list;

	int ret = plot_graph(&params);

	/*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;
}