www.pudn.com > FFT.rar > FFT.c


#include "myapp.h" 
#include "csedu.h" 
#include "scancode.h" 
#include  
 
#define PI 3.1415926 
#define SAMPLENUMBER 128 
 
void InitForFFT(); 
void MakeWave(); 
 
int INPUT[SAMPLENUMBER],DATA[SAMPLENUMBER]; 
float fWaveR[SAMPLENUMBER],fWaveI[SAMPLENUMBER],w[SAMPLENUMBER]; 
float sin_tab[SAMPLENUMBER],cos_tab[SAMPLENUMBER]; 
 
main() 
{ 
	int i; 
	 
	InitForFFT(); 
	MakeWave(); 
	for ( i=0;i0 )  
		{ 
			b=b*2; i--; 
		} /* b= 2^(L-1) */ 
		for ( j=0;j<=b-1;j++ ) /* for (2) */ 
		{ 
			p=1; i=7-L; 
			while ( i>0 ) /* p=pow(2,7-L)*j; */ 
			{ 
				p=p*2; i--; 
			} 
			p=p*j; 
			for ( k=j;k<128;k=k+2*b ) /* for (3) */ 
			{ 
				TR=dataR[k]; TI=dataI[k]; temp=dataR[k+b]; 
				dataR[k]=dataR[k]+dataR[k+b]*cos_tab[p]+dataI[k+b]*sin_tab[p]; 
				dataI[k]=dataI[k]-dataR[k+b]*sin_tab[p]+dataI[k+b]*cos_tab[p]; 
				dataR[k+b]=TR-dataR[k+b]*cos_tab[p]-dataI[k+b]*sin_tab[p]; 
				dataI[k+b]=TI+temp*sin_tab[p]-dataI[k+b]*cos_tab[p]; 
			} /* END for (3) */ 
		} /* END for (2) */ 
	} /* END for (1) */ 
	for ( i=0;i