實現傅里葉變換的C語言程序可以使用庫函數或者自己編寫代碼來實現。以下是一個使用庫函數的示例代碼:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <fftw3.h>
int main() {
int N = 8; // 采樣點數
double *in = (double*) fftw_malloc(sizeof(double) * N);
fftw_complex *out = (fftw_complex*) fftw_malloc(sizeof(fftw_complex) * N);
fftw_plan p;
p = fftw_plan_dft_r2c_1d(N, in, out, FFTW_ESTIMATE);
// 初始化輸入信號
for (int i = 0; i < N; i++) {
in[i] = sin(2 * M_PI * i / N);
}
// 執行傅里葉變換
fftw_execute(p);
// 輸出變換結果
for (int i = 0; i < N; i++) {
printf("out[%d] = %f + %f*I\n", i, out[i][0], out[i][1]);
}
fftw_destroy_plan(p);
fftw_free(in);
fftw_free(out);
return 0;
}
在上面的示例代碼中,首先使用fftw庫函數進行了傅里葉變換的初始化,然后生成了一個正弦波信號作為輸入信號,在執行傅里葉變換后輸出了變換結果。通過這種方式可以很方便地實現傅里葉變換的計算。