图5.2 程序大致框图
4.FFT通过C++的实现
4.1基2的DIT蝶形算法源代码及注释框图
图6.1蝶形运算示意图
/************FFT***********/ //整个程序输入和输出利用同一个空间x[N],节约空间
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#define N 1000 //定义输入或者输出空间的最大长度
typedef struct
{
double real;
double img;
}complex; //定义复数型变量的结构体
void fft(); //快速傅里叶变换函数声明
void initW(); //计算W(0)~W(size_x-1)的值函数声明
void change(); //码元位置倒置函数函数声明
void add(complex,complex,complex *); /*复数加法*/
void mul(complex,complex,complex *); /*复数乘法*/
void sub(complex,complex,complex *); /*复数减法*/
void divi(complex,complex,complex *); /*复数除法*/
void output(); /*输出结果*/
complex x[N],*W; /*输出序列的值*/
int size_x=0; /*输入序列的长度,只限2的N次方*/
double PI; //pi的值
int main()
{
int i;
system("cls");
PI=atan(1)*4;
printf("Please input the size of x:\n");
/*输入序列的长度*/
scanf("%d",&size_x);
printf("Please input the data in x[N]:(such as:5 6)\n"); (责任编辑:qin) |