main.cpp

来自「信号处理的几种算法」· C++ 代码 · 共 38 行

CPP
38
字号
#include<stdio.h>
#include<math.h>
 
  void rlfft(double x[],int n);
  void main(void)
  {
	  int i,n;
	  double x[64];
	  n=64;
	  for(i=0;i<10;i++)
	  {
		  x[i]=0.0;
	  }
	  for(i=10;i<n;i++)
	  {
		  x[i]=exp(-(i-10)/15.0)*sin(6.2831853*(i-10)/16.0);
	  }
	  rlfft(x,n);
	  printf("\n discrete fourier transform\n");
	  printf("     %10.7f    ",x[0]);
	  printf("     %10.7f + j%10.7f\n",x[1],x[n-1]);
	  for(i=2;i<n/2;i+=2)
	  {
		  printf("     %10.7f + j%10.7f    ",x[i],x[n-i]);
		  printf("     %10.7f + j%10.7f    ",x[i+1],x[n-i-1]);
		  printf("\n");
	  }
	  printf("%10.7f",x[n/2]);
	  for(i=1;i<n/2;i++)
	  {
		  x[i]=sqrt(x[i]*x[i]+x[n-i]*x[n-i]);
	  }
	  x[n/2]=fabs(x[n/2]);
	  for(i=0;i<=n/2;i++)
	  {
		  printf("%10.7f\n",x[i]);
	  }
  }

⌨️ 快捷键说明

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