• 大小: 2KB
    文件类型: .cpp
    金币: 1
    下载: 0 次
    发布日期: 2021-01-09
  • 语言: C/C++
  • 标签: FFT  C++  

资源简介

一维快速傅里叶变换FFT的C++实现,里面是FFT1.cpp函数,用于进行一维数组的FFT。有详细的注释和说明。

资源截图

代码片段和文件信息

bool FFT1(complex * TD complex * FD int r) {
//一维快速傅里叶变换。
//TD:指向时域数组的指针数组(输入); 
//FD:指向频域数组的指针数组(输出); 
//r:2的幂数,即迭代次数,也即sqrt(length(TD))
    LONG count; // Fourier变换点数
    int ijk; // 循环变量
    int bfsizep; // 中间变量
    double angle; // 角度
    complex *W*X1*X2*X;
    count = 1 << r; // 计算Fourier变换点数为1左移r位
    W = new complex[count / 2];
    X1 = new complex[count];
    X2 = new complex[count]; // 分配运算所需存储器
// 计算加权系数(旋转因子w的i次幂表)
    for(i = 0; i < count / 2; i++) {
        angle = -i * PI * 2 / count;
        W[ i ] = complex (cos(angle) sin(angle));
    }
// 将时域点写入X1
    memcpy(X1 TD sizeof(complex) * coun

评论

共有 条评论