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

📄 testfft.cpp

📁 用于进行一维和二维的傅利叶变换及其逆变换
💻 CPP
字号:
#include <stdio.h>#include <stdlib.h>#include <math.h>#include <time.h>#include "FFT.h"const int len = 8192;const int tests = 200;main(){  int t0, t1;  float *in = new float[len];  float *outr = new float[len];  float *outi = new float[len];  float *outr2 = new float[len];  float *outi2 = new float[len];  float *outs = new float[len];  for(int x=0; x<len; x++) {	in[x] = sin(x/(float)len) + 1.3*cos(x/(float)len);  }  // Warm it up  FFT(len, 0, in, NULL, outr, outi);  RealFFT(len, in, outr2, outi2);  PowerSpectrum(len, in, outs);  printf("Testing FFT(%d):\n\n", len);  int i;  t0 = clock();  for(i=0; i<tests; i++) {	FFT(len, 0, in, NULL, outr, outi);  }  t1 = clock();  printf("Complex FFT Time: %d us\n", int((t1-(double)t0)/tests+0.5));  t0 = clock();  for(i=0; i<tests; i++) {	RealFFT(len, in, outr2, outi2);  }  t1 = clock();  printf("Real FFT Time:  %d us\n", int((t1-(double)t0)/tests+0.5));  t0 = clock();  for(i=0; i<tests; i++) {	PowerSpectrum(len, in, outs);  }  t1 = clock();  printf("Spectrum Time:  %d us\n", int((t1-(double)t0)/tests+0.5));  printf("\n");  printf("Accuracy:\n");  printf("\n");  printf("     n   FFT            RealFFT         PowerSpectrum\n");  for(i=0; i<len/2; i++) {	printf("%6d:  %10e   %10e    %10e\n",		   i,		   outr[i]*outr[i] + outi[i]*outi[i],		   outr2[i]*outr2[i] + outi2[i]*outi2[i],		   outs[i]);  }}

⌨️ 快捷键说明

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