www.pudn.com > 二维傅立叶算法fft2D.rar > fft.cpp


#include "iostream.h" 
#include "math.h" 
#include "memory.h" 
#include "conio.h" 
 
#define pi 3.1415926 
 
 
typedef struct tagNumber 
{ 
    double re; 
	double im; 
}Number; 
 
Number Add(Number a,Number b) 
{    
	Number c={a.re+b.re,a.im+b.im}; 
	return c; 
} 
 
Number Sub(Number a,Number b) 
{ 
	Number c={a.re-b.re,a.im-b.im}; 
	return c; 
} 
 
Number Mul(Number a,Number b) 
{ 
	Number c={a.re*b.re-a.im*b.im,a.re*b.im+a.im*b.re}; 
	return c; 
} 
 
 
 
void fft(Number* t,Number* f,int r) 
{ 
	long count;//傅立叶变换点数 
	int i,j,k,p,bfsize; 
	Number *w,*x,*a,*b;//复数结构类型的指针变量,其中w指向加权系数 
	double angle;//计算加权系数所用的角度值 
	count=1<