可计算任意序列长度的高效精炼快速傅里叶变换算法 FFT

时间:2023-08-13 15:34:36
【文件属性】:

文件名称:可计算任意序列长度的高效精炼快速傅里叶变换算法 FFT

文件大小:2KB

文件格式:RAR

更新时间:2023-08-13 15:34:36

C++ STL 离散傅里叶变换 源码 FFT

快速傅立叶算法,采用时域抽取法FFT(Decimation-In-Time FFT, 简称 DIT - FFT),完全采用标准C++语言编写,算法上采用了蝶形运算原理,数据结构采用 STL 模板库存储动态数组,采用 complex 类处理复数运算。代码简单,容易理解,只有输入,输出的vector 数组。总共 90 多行代码。不同于一般的 FFT 算法,本算法没有对输入序列作任何条件限制,可以是任意长度。调试中经测试,对一个2^19=52万左右个数据点的输入数组,算法在5秒时间可给出结果,输出结果是所有频率值的模值,而不是单独的实部与虚部(当然也可以单独给出实部虚部计算其相位)。


【文件预览】:
CCalculate.cpp
CCalculate.h

网友评论

  • 名不副实!不要下了! #标题与内容不符
  • 大家不要下了,FFT用的还是2基,输出截取出来的,根本不是matlab那样输入任意长度序列的,白瞎积分
  • 所谓的“任意序列长度”,是从中截取前面的2^N个数据,后面的数据直接扔掉了