Ejemplo n.º 1
0
void fft2D(std::vector<complex>::iterator x, int n1, int n2, int flag)
{
   std::vector<complex> y(n2);
   int i, n;

   assert(1 == flag || -1 == flag);
   n = n1*n2;
   /*y = (complex *) malloc( n2*sizeof(complex) );
   assert(NULL != y);*/

   for(i=0; i < n; i += n2) {                                  /* FFT in y */
      stockham(x+i, n2, flag, 1, y.begin()); 
   }
   //free(y);
   cooley_tukey(x, n, flag, n2);                               /* FFT in x */
}
Ejemplo n.º 2
0
void fft2D(complex x[], int n1, int n2, int flag)
{
   complex *y;
   int i, n;

   assert(1 == flag || -1 == flag);
   n = n1*n2;
   y = (complex *) malloc( n2*sizeof(complex) );
   assert(NULL != y);

   for(i=0; i < n; i += n2) {                                  /* FFT in y */
      stockham(x+i, n2, flag, 1, y); 
   }
   free(y);
   cooley_tukey(x, n, flag, n2);                               /* FFT in x */
}