在Ubuntu上使用FFTW(Fastest Fourier Transform in the West)庫,需要先安裝它,然后在你的程序中包含頭文件并鏈接到相應的庫
打開終端,輸入以下命令來安裝 FFTW 庫:
sudo apt-get update
sudo apt-get install libfftw3-dev
創建一個名為 fftw_example.c
的新文件,并將以下代碼復制到該文件中:
#include<stdio.h>
#include <stdlib.h>
#include<complex.h>
#include <math.h>
#include <fftw3.h>
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 庫的基本方法。你可以根據自己的需求修改示例程序,以實現不同的傅里葉變換和其他數學運算。