c语言离散傅里叶变换代码

时间: 2023-11-25 19:07:39 浏览: 37
离散傅里叶变换(Discrete Fourier Transform,DFT)是一种将时域离散信号转换为频域离信号的方法。下面是一个简单的C语言离散傅里叶变换代码: ```c #include <stdio.h> #include <math.h> #define PI 3.14159265358979323846 void DFT(double *x, double *y, int N) { int k, n; double re, im; for (k = 0; k < N; k++) { re = 0.0; im = 0.0; for (n = 0; n < N; n++) { re += x[n] * cos(2 * PI * k * n / N); im -= x[n] * sin(2 * PI * k * n / N); } y[k] = sqrt(re * re + im * im); } } int main() { double x[] = {1, 2, 3, 4, 5, 6, 7, 8}; double y[8]; int i; DFT(x, y, 8); for (i = 0; i < 8; i++) { printf("%f\n", y[i]); } return 0; } ``` 这个代码实现了一个简单的离散傅里叶变换,输入信号为x,输出信号为y。其中N为信号的长度,re和im分别为实部和虚部。在循环中,计算每个频率的幅度,最后将结果存储在y数组中。

相关推荐