VC++的FFT快速傅里叶变换编程设计+流程图+源代码(13)_毕业论文

毕业论文移动版

毕业论文 > 计算机论文 >

VC++的FFT快速傅里叶变换编程设计+流程图+源代码(13)


   图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)