文章目录

  • 1、基2时间抽取FFT算法原理
  • 2、基2时间抽取FFT算法流图
    • 2.1、示例1 ~ 4点的序列表示成两个2点的DFT
    • 2.2、示例2 ~ 8点的序列表示成两个2点的DFT
    • 2.3、实例演示
  • 3、基2时间抽取FFT算法流图特点
    • 3.1、蝶形图的关系
    • 3.2、旋转因子的规律
    • 3.3、序列关系
    • 3.4、原位运算
  • 4、基2时间抽取FFT算法的复杂度

1、基2时间抽取FFT算法原理

将一个长序列的DFT,表达为2个短序列的DFT。按照奇偶下标进行拆分,原理如下图所示:

注意:采用基 2 时间抽取方法的 N 必须是2的整次幂。


上面推导不仅使用了周期性,还使用了对称性:

所以就可以得到短序列合成长序列的DFT:

对于基2的时间抽取,分解到最后一级,就是两点的时域序列,两点序列求DFT,用下面的表达式:

然后再不断合成,2点合成4点,4点合成8点,不断向回推。对于基2的时间抽取,只有一级是实现时域到频域的转化,剩下的其他运算,都是利用短序列的 DFT 来合成长序列的 DFT 。
上图的两个矩阵是一样的,为后面实现 DFT 的流图能够统一奠定了基础。右边的图是为了辅助理解的。

2、基2时间抽取FFT算法流图

2.1、示例1 ~ 4点的序列表示成两个2点的DFT

演示一个4点的序列 FFT 流图,如下图所示:
在上图中,只标注了-1的地方,凡是1的地方都没有标注,这样使得图更简洁。

2.2、示例2 ~ 8点的序列表示成两个2点的DFT

演示一个8点的序列 FFT 流图,如下图所示:
然后再将 4 点序列的 DFT 分解为2 个 2 点序列的DFT。

上图中只有 2点DFT 是实现从时域到频域的变换,后面都是短序列的DFT合成长序列的DFT。

由于时域上 2 点序列计算 DFT 和用两个短序列合成长序列的DFT的矩阵是一样的,

所以整个图看起来就非常对称,实际上就是完全对称的,如下所示:
将这个图完整地表达出来,就是这样的:
对于8点的序列来说,一共分为3级;

第一级是把时域的序列转化为它对应的DFT的值;
第二级是两个2点序列DFT合成一个4点序列DFT;
第二级是两个4点序列DFT合成一个8点序列DFT;

库利-图基的这个基二时间抽取FFT算法是一个非常精妙之处就在于它的这个算法结构非常对称。这个算法效率高,而且易于硬件实现。

2.3、实例演示


最终得出结果:

3、基2时间抽取FFT算法流图特点

3.1、蝶形图的关系

第一级的时候,蝶形图的间隔都是1;

3.2、旋转因子的规律

旋转因子到最后一级一定是N0,N1,N2,… N/2 - 1。

旋转因子的规律如下:

3.3、序列关系

这个图告诉我们,将原本的下标0,1,2,3,4,5,6,7二进制表示之后,将这个二进制序列倒一下个,就得到它对应的所要的下标。
所以FFT在实现的时候,我们都用这样倒序的方式来实现。

3.4、原位运算

FFT还有一个非常奇妙的地方,它可以实现原位运算。

原位预算就是后面一级的数据会自动覆盖前面一级的数据。
输入序列是8点序列,在整个运算过程中始终占着8个位置,无需存储中间计算结果。

4、基2时间抽取FFT算法的复杂度


复数乘法的次数变化:

当然这要求N应该等于2的M次,如果不满足,那就补0,补到满足为止。

可以通过具体的数据直观展示:

有了FFT算法之后,让本来难以实时完成的DFT运算,可以实时完成。

通过程序实际体验:

FFT算法只占DFT算法不到它原来的0.04%。这个效率是非常可观的。

傅里叶变换 ~ 基 2 时间抽取 FFT 算法相关推荐

  1. 已知序列求蝶形运算_在N=32的基 2 时间抽取发 FFT 运算流图中,从 到 需______级蝶形运算过程。 (4.0分)_学小易找答案...

    [单选题]互相关函数性质正确的是: [计算题]两个有限长的复序列 x[n] 和 h[n] ,其长度分别为 N 和 M ,设两序列的线性卷积为 y[n]=x[n]*h[n] ,回答下列问题: (1) 序 ...

  2. 基2频率抽取实现FFT的Verilog程序

    这里以一个8点FFT设计为例作为介绍,整体电路架构如下图(可点击放大看),实现了一个数据串行输入,结果并行输出的FFT算法(data_in_real为输入值的实部,data_in_img为虚部): 上 ...

  3. czt算法c语言实现,基--2按频率抽取的FFT算法Decimation-in-Frequency(DIF).ppt

    基--2按频率抽取的FFT算法Decimation-in-Frequency(DIF) 第四节基--2按频率抽取的FFT算法Decimation-in-Frequency(DIF)(Sander-Tu ...

  4. matlab基2时间抽选法,按时间抽取的基2FFT算法分析及MATLAB实现

    电子技术研发ElectronicsR&D 电一子一技一术- 按时问抽取的基2FFT算法分析及MATLAB实现 张登奇李宏民李丹 (湖南理工学院信息与通信工程学院) 摘要:DFT是一种应用广泛的 ...

  5. 如何利用FFT(基2时间以及基2频率)信号流图求序列的DFT

    直接用两个例子作为模板说明: 利用基2时间抽取的FFT流图计算序列的DFT 1.按照序列x[k]序号的偶奇分解为x[k]和x2[k],即x1[k]={1,1,2,1}, x2[k]={-1,-1,1, ...

  6. 名词解释 算法的有限性_欲借助 FFT 算法快速计算两有限长序列的线性卷积,则过程中要调用 ( ) 次 FFT 算法_学小易找答案...

    [单选题]计算 N=2 L ( L 为整数)点的按时间抽取基 -2FFT 需要 ( ) 级蝶形运算 [单选题]Les étudiants chinois, une fois arrivés en Fr ...

  7. 基二FFT时间抽取和频域抽取算法

    目录: 一.理解离散傅立叶变换(FFT结果的物理意义(编程参考用)) 二.基二频域算法原理 三.基二FFT的C语言实现(时域) 四.基二FFT的C语言实现(频域) ------------------ ...

  8. 离散傅里叶变换及matlab实现(按时间抽选(DIT)的基-2 FFT算法(库利-图基算法))

    转,傅里叶变换,很好的解释 很好的文章,可惜水平太差,还没有完全理解. 快速傅里叶的matlab实现 按时间抽选(DIT)的基-2 FFT算法(库利-图基算法) 傅里叶要用到的nn个复数,不是随机找的 ...

  9. 傅里叶逆变换程序matlab,按时间抽取基2-快速傅里叶逆变换算法_MATLAB代码

    function x=MyIFFT_TB(y) %MyIFFT_TB:My Inverse Fast Fourier Transform Time Based %按时间抽取基2-傅里叶逆变换算法 %i ...

最新文章

  1. SQL Server中读取XML文件的简单做法
  2. 计算机专业英语06章在线测试,《计算机专业英语》第06章在线测试.doc
  3. 集合上二元关系性质判定的实现(python实现)
  4. uva 10692——Huge Mods
  5. Jsp+Ssm+Mysql实现的在线宠物商城系统
  6. SpringBoot之解决一对一、多对一、多对多等关联实体在JSON序列化/输出时产生的无限递归死循环问题(infinite recursion)
  7. 自己mini版jquery编写
  8. 如何用搜索引擎搜js css源码例子
  9. echar 数据显示在小圆点里
  10. android音乐播放器源代码,android音乐播放器源代码.doc
  11. css制作 平行四边形和梯形导航条
  12. c语言1 qnan,什么是 1.#QNAN?
  13. SourceTree安装教程
  14. 常用计算机字长,计算机字长是什么意思
  15. 宋词:一剪梅,雨打梨花深闭门。唐寅
  16. 【springboot整合多数据源】
  17. 负债业务,中间业务,表外业务,资产业务
  18. 马云购买第一台计算机,世界上第一台计算机、中国第一台计算机,运算速度都是多少?看完我震惊了。...
  19. Win10左下角搜索框无法搜索无反应的解决方案
  20. 炉石传说android手机版本,炉石传说安卓手机版

热门文章

  1. 视频消音还能这样玩???
  2. android拨号器(java版)
  3. python爬虫脚本入门——飞天秒杀脚本
  4. FIR滤波器学习设计笔记
  5. 区块链职业技术技能标准明确了人才培养的框架
  6. 云计算领域“集装箱”
  7. 百万CAD设计施工图全集素材大全免费获取!
  8. 博弈论入门(论和威佐夫、巴什、尼姆打牌被吊打是什么感受(╥﹏╥)
  9. 了解python语言的开发者_Python开发者
  10. 零售数字化转型DTC模式,只是投网红直播吗?