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

毕业论文移动版

毕业论文 > 计算机论文 >

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


                x[j+k+l]=down;                     
                                       //down为蝶形单元右下方的值
            }   
         }
      }  
  }  
   
  void initW()                           //计算W的实现函数
  {  
      int i;  
      W=(complex *)malloc(sizeof(complex) * size_x);    /*申请size_x个复数W的空间(这部申请的空间有点多,实际上只要申请size_x/2个即可)*/
      for(i=0;i<(size_x/2);i++)                       /*预先计算出size_x/2个W的值,存放,由于蝶形算法只需要前size_x/2个值即可*/
      {  
         W[i].real=cos(2*PI/size_x*i);                 //计算W的实部
         W[i].img=-1*sin(2*PI/size_x*i);              //计算W的虚部
      }
  }   
  void   change()                      //输入的码组码位倒置实现函数
  {  
      complex temp;  
      unsigned short  i=0,j=0,k=0;  
      double t;  
      for(i=0;i<size_x;i++)  
      {  
         k=i;
   j=0;  
         t=(log(size_x)/log(2));  
         while((t--)>0)  
         {  
            j=j<<1;  
            j|=(k & 1);  
            k=k>>1;  
         }  
         if(j>i)  
        {  
           temp=x[i];  
           x[i]=x[j];  
           x[j]=temp;  
        }  
      }  
  }  
   

  void  output()                                  //输出结果实现函数 (责任编辑:qin)