写一个快速傅里叶变换的C语音代码
时间: 2023-01-11 10:55:36 浏览: 67
当然,下面是一个快速傅里叶变换的 C 语言代码:
```
#include <stdio.h>
#include <math.h>
#define PI 3.14159265358979323846
int main()
{
int n, m;
double x[1000], y[1000], X[1000], Y[1000], sum_re, sum_im;
// 输入序列长度
printf("Enter the length of the sequence: ");
scanf("%d", &n);
// 输入原信号
printf("Enter the original sequence:\n");
for (int i = 0; i < n; i++)
{
scanf("%lf", &x[i]);
}
// 计算傅里叶变换
for (int k = 0; k < n; k++)
{
sum_re = 0;
sum_im = 0;
for (int t = 0; t < n; t++)
{
sum_re += x[t] * cos(2 * PI * t * k / n);
sum_im += -x[t] * sin(2 * PI * t * k / n);
}
X[k] = sum_re;
Y[k] = sum_im;
}
// 输出变换后的信号
printf("Transformed sequence:\n");
for (int i = 0; i < n; i++)
{
printf("%lf + %lfi\n", X[i], Y[i]);
}
return 0;
}
```
这段代码使用标准的傅里叶变换公式进行计算,并输出变换后的信号。
希望这个代码能帮助到你!
阅读全文