#include "fft.h" #include "mtxutl.h" #define SWAP( a, b ) tempr=( a ); ( a ) = ( b ); ( b ) = tempr; void four1( float *data, int nn, int isign ) { unsigned long n, mmax, m, j, istep, i; double wtemp, wr, wpr, wpi, wi, theta; float tempr, tempi; n = nn << 1; j = 1; for( i=1; i i ) { SWAP( data[j], data[i] ); SWAP( data[j+1], data[i+1] ); } m = n >> 1; while( m >= 2 && j > m ) { j -= m; m >>= 1; } j += m; } mmax = 2; while( n > mmax ) { istep = mmax << 1; theta = isign * ( 2 * PI / mmax ); wtemp = sin( 0.5 * theta ); wpr = -2.0 * wtemp * wtemp; wpi = sin( theta ); wr = 1.0; wi = 0.0; for( m=1; m /dev/tty " ); } #endif four1( x, m, sign ); #if 0 if( disp ) { FILE *fp; fp = fopen( "outputOfFft", "w" ); for( i=0; i /dev/tty " ); } #endif for( i=0; iR = (double)x[i]; (in+i)->I = (double)y[i]; } free( x ); free( y ); } #endif