OSDN Git Service

9a8aa047fc1fe7220956384733ef84d3f543e0ae
[bluetank/bluetank.git] / soft / ffttool / main.c
1 \r
2 #include <stdio.h>\r
3 #include <stdlib.h>\r
4 #include "wave.h"\r
5 #include "fft.h"\r
6 \r
7 int main(int argc, char **argv)\r
8 {\r
9     MONO_PCM pcm0;\r
10     int n, k, N;\r
11     double *x_real, *x_imag;\r
12 \r
13     if (argc != 2) {\r
14         printf("ffttool <wave file name>\n");\r
15         return 1;\r
16     }\r
17 \r
18     /* WAVE\83t\83@\83C\83\8b\82©\82ç\83\82\83m\83\89\83\8b\82Ì\89¹\83f\81[\83^\82ð\93ü\97Í\82·\82é */\r
19     mono_wave_read(&pcm0, argv[1]);\r
20 \r
21     N = 64;\r
22     x_real = calloc(N, sizeof(double));\r
23     x_imag = calloc(N, sizeof(double));\r
24 \r
25     for (n = 0; n < N; n++)\r
26     {\r
27         /* x(n)\82Ì\8eÀ\90\94\95\94 */\r
28         x_real[n] = pcm0.s[n];\r
29         /* x(n)\82Ì\8b\95\90\94\95\94 */\r
30         x_imag[n] = 0.0;\r
31     }\r
32 \r
33     /* FFT\82Ì\8cv\8eZ\8c\8b\89Ê\82Íx_real\82Æx_imag\82É\8fã\8f\91\82«\82³\82ê\82é */\r
34     FFT(x_real, x_imag, N);\r
35 \r
36     /* \8eü\94g\90\94\93Á\90« */\r
37     for (k = 0; k < N; k++) {\r
38         printf("%d %f+j%f\n", k, x_real[k], x_imag[k]);\r
39     }\r
40 \r
41     free(pcm0.s);\r
42     free(x_real);\r
43     free(x_imag);\r
44 \r
45     return 0;\r
46 }\r
47 \r