在Ubuntu上使用FFTW(Fastest Fourier Transform in the West)库,需要先安装它,然后在你的程序中包含头文件并链接到相应的库
- 安装 FFTW:
打开终端,输入以下命令来安装 FFTW 库:
sudo apt-get update sudo apt-get install libfftw3-dev
- 编写一个简单的 FFTW 示例程序:
创建一个名为 fftw_example.c
的新文件,并将以下代码复制到该文件中:
#include#include #include #include #include int main() { int n = 64; // 数据点数量 fftw_complex *in, *out; fftw_plan p; int i; in = (fftw_complex*) fftw_malloc(sizeof(fftw_complex) * n); out = (fftw_complex*) fftw_malloc(sizeof(fftw_complex) * n); // 生成输入数据 for (i = 0; i < n; i++) { in[i] = sin(2 * M_PI * i / n) + I * cos(2 * M_PI * i / n); } // 创建 FFTW 计划 p = fftw_plan_dft_1d(n, in, out, FFTW_FORWARD, FFTW_ESTIMATE); // 执行 FFT fftw_execute(p); // 输出结果 printf("FFT 结果:\n"); for (i = 0; i < n; i++) { printf("%d: %g + %gi\n", i, creal(out[i]), cimag(out[i])); } // 释放资源 fftw_destroy_plan(p); fftw_free(in); fftw_free(out); return 0; }
- 编译和运行示例程序:
在终端中,导航到包含 fftw_example.c
的目录,并输入以下命令来编译程序:
gcc -o fftw_example fftw_example.c -lfftw3 -lm
然后,运行编译后的程序:
./fftw_example
你将看到程序输出了一个 64 点的 DFT 变换结果。
这就是在 Ubuntu 上使用 FFTW 库的基本方法。你可以根据自己的需求修改示例程序,以实现不同的傅里叶变换和其他数学运算。