当前位置:   article > 正文

FFTW库在Windows中的安装和使用_windows 编译fftw3

windows 编译fftw3

1. FFTW库的介绍

FFTW库是用于一维或多维快速傅里叶变换(FFT)的C函数库。


2. FFTW库在Windows中的安装和使用

2.1 下载FFTW 3.3.5版本

Windows 64位平台下载:FFTW Installation on Windows


2.2 预编译

将2.1中下载的压缩包解压;

打开VS的"x64 Native Tools Command Prompt for VS 2022"工具;

用该工具进入到解压的文件夹下,依次运行如下命令:

  1. lib /machine:x64 /def:libfftw3f-3.def
  2. lib /machine:x64 /def:libfftw3-3.def
  3. lib /machine:x64 /def:libfftw3l-3.def

如下图所示:


2.3 配置VS项目

打开Visual Studio,创建项目;

通过上方项目属性,打开项目的属性页

1. 在配置属性C/C++常规中的附加包含目录加入解压的FFTW文件夹的路径。(本质是将头文件fftw3.h的路径加入项目);

2. 在配置属性链接器常规中的附加库目录加入FFTW文件夹的路径。(本质是将lib库的路径加入项目);

3. 在配置属性链接器输入中的附加依赖项中追加FFTW文件夹中如下lib库文件的名字。

4. 在VS中右击项目,打开创建的VS项目文件夹的路径,将FFTW文件夹中如下的动态库文件直接拷贝到VS项目文件夹中。

FFTW文件夹中如下这三个动态库文件,

 拷贝至如下VS项目文件夹中:


3. 编码测试

代码如下:

  1. #include "fftw3.h"
  2. #include <stdio.h>
  3. #include <iostream>
  4. #include <vector>
  5. using namespace std;
  6. int main() {
  7. double array[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
  8. double* out;
  9. double* err;
  10. int i, size = 10;
  11. fftw_complex* out_cpx;
  12. fftw_plan fft;
  13. fftw_plan ifft;
  14. out_cpx = (fftw_complex*)fftw_malloc(sizeof(fftw_complex) * size);
  15. out = (double*)malloc(size * sizeof(double));
  16. if (out == NULL) {
  17. exit(1);
  18. }
  19. err = (double*)malloc(size * sizeof(double));
  20. if (err == NULL) {
  21. exit(1);
  22. }
  23. fft = fftw_plan_dft_r2c_1d(size, array, out_cpx, FFTW_ESTIMATE); //Setup fftw plan for fft
  24. ifft = fftw_plan_dft_c2r_1d(size, out_cpx, out, FFTW_ESTIMATE); //Setup fftw plan for ifft
  25. fftw_execute(fft);
  26. fftw_execute(ifft);
  27. for (i = 0; i < size; i++) {
  28. err[i] = (array[i] - out[i]);
  29. printf("%f\t%f\n", (array[i]), out[i] / size);//需要做归一化处理
  30. }
  31. fftw_destroy_plan(fft);
  32. fftw_destroy_plan(ifft);
  33. fftw_free(out_cpx);
  34. free(err);
  35. free(out);
  36. system("pause");
  37. return 0;
  38. }

运行结果:

成功。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/105064
推荐阅读
相关标签
  

闽ICP备14008679号