next up previous contents
Next: E.2 プログラムリスト : fft.c Up: 付録E 想起した曲をFFTするプログラム Previous: 付録E 想起した曲をFFTするプログラム

E.1 プログラムリスト : fftmain.c

/* 高速フーリエ変換(FFT) : fftmain.c */

#include <stdio.h>
#include <math.h>
#include "complex.h"
#include "fft.h"
#define  N  256
#define  NN 128
#define  M    8

int main(void)
{
  complex f[N], ww[N], *p;
  int jun[N], i;
  double j, r;

  for ( i = 0 ; i < N ; ++i ){
    scanf("%lf",&r);
    f[i] = cmplx(r, 0.0);
  }

  fft(f, ww, jun, M, 0);         /* フーリエ変換 */

  for ( i = 0, p = f ; i < N ; ++i, ++p ){
    j = (double)i / 16;
    printf("%f %f %f %f\n", j, cabso(p), real(p), aimag(p)); 
  }
}



Deguchi Toshinori
Thu Jul 13 11:47:42 JST 2000