⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 test12.c

📁 5402开发板附带的源程序
💻 C
字号:
#include <math.h>
#include <stdio.h>

#define pi 3.1415926
#define r  4
#define N  16

int k,i,j,bfsize,p,t;
float u_real,u_imag,v_real,v_imag;
float x1_real[16],x1_imag[16],x2_real[16],x2_imag[16];
float wk_real[16],wk_imag[16];
float y_real[16],y_imag[16],z_imag[16],z_real[16],x_real[16],x_imag[16];
float x[16];
main()
{
   for(i=0;i<N/2;i++)
   {
      wk_real[i]=cos(-2*pi*i/N);
      wk_imag[i]=sin(-2*pi*i/N);
   }

   for(i=0;i<N;i++)
   {
      x1_real[i]=exp(-i);
      x1_imag[i]=0;
   }

   for(i=0;i<N;i++)
   {
      y_real[i]=x1_real[i];
      y_imag[i]=x1_imag[i];
      z_real[i]=x2_real[i];
      z_imag[i]=x2_imag[i];
   }

   for(k=0;k<r;k++)
   {
      for(j=0;j<1<<k;j++)
      {
         bfsize=1<<(r-k);
         for(i=0;i<bfsize/2;i++)
         {
            p=j*bfsize;
            t=i*(1<<k);

            u_real=y_real[i+p]-y_real[i+p+bfsize/2];
            u_imag=y_imag[i+p]-y_imag[i+p+bfsize/2];

            v_real=u_real*wk_real[t]-u_imag*wk_imag[t];
            v_imag=u_real*wk_imag[t]+u_imag*wk_real[t];

            z_real[i+p]=y_real[i+p]+y_real[i+p+bfsize/2];
            z_imag[i+p]=y_imag[i+p]+y_imag[i+p+bfsize/2];

            z_real[i+p+bfsize/2]=v_real;
            z_imag[i+p+bfsize/2]=v_imag;
         }
      }

      for(i=0;i<N;i++)
      {
         x_real[i]=y_real[i];
         x_imag[i]=y_imag[i];
         y_real[i]=z_real[i];
         y_imag[i]=z_imag[i];
         z_real[i]=x_real[i];
         z_imag[i]=x_imag[i];
      }
   }

   for(j=0;j<N;j++)
   {
      p=0;

      for(i=0;i<r;i++)
      {
         if(j&(1<<i))
            p+=1<<(r-i-1);
      }

      x2_real[j]=y_real[p];
      x2_imag[j]=y_imag[p];
   }

   for(i=0;i<N;i++)
    x[i]=sqrt(pow(x2_real[i],2)+pow(x2_imag[i],2));
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -