C语言实现离散傅里叶变换
时间: 2023-11-03 22:06:04 浏览: 104
实现离散傅里叶变换的C语言代码如下:
```c
#include <stdio.h>
#include <math.h>
#define PI 3.14159265358979323846
void DFT(double *x, double *X, int N)
{
int k, n;
double arg;
for (k = 0; k < N; k++) {
X[k] = 0;
for (n = 0; n < N; n++) {
arg = -2 * PI * k * n / N;
X[k] += x[n] * cos(arg) + sin(arg);
}
}
}
int main()
{
int N = 8; // 信号长度
double x[] = {1, 2, 3, 4, 3, 2, 1, 0}; // 信号
double X[N]; // 变换结果
int k;
DFT(x, X, N);
for (k = 0; k < N; k++) {
printf("X[%d] = %f + j%f\n", k, X[k], 0.0);
}
return 0;
}
```
其中,DFT函数实现离散傅里叶变换,x是原始信号,X是变换结果,N是信号长度。在主函数中,定义了一个长度为8的信号x,调用DFT函数计算变换结果,并输出结果。
阅读全文