请写一个长度为1024的FFT C语言函数代码
时间: 2023-02-12 17:48:17 浏览: 126
用C语言编FFT的程序
4星 · 用户满意度95%
以下是一个使用 C 语言实现的快速傅里叶变换(FFT)的代码,输入的数组长度为 1024。
```
#include <stdio.h>
#include <math.h>
#define PI 3.14159265358979323846
void fft(double *x, double *y, int n) {
for (int i = 0; i < n; i++) {
y[i] = 0;
for (int j = 0; j < n; j++) {
y[i] += x[j] * cos(2 * PI * j * i / n) + y[i] * sin(2 * PI * j * i / n);
}
}
}
int main() {
int n = 1024;
double x[n], y[n];
// 输入数据
for (int i = 0; i < n; i++) {
scanf("%lf", &x[i]);
}
fft(x, y, n);
// 输出结果
for (int i = 0; i < n; i++) {
printf("%.2lf + %.2lfi\n", y[i], y[i]);
}
return 0;
}
```
需要注意,这是一个简单的复数值的 FFT 算法,如果要用于实际应用中,可能需要进行进一步的优化。
阅读全文