Cooley-Tukey算法区别于其他FFT算法的一个重要事实就是N的因子可以任意选取。这样也就可以使用N=r S的Radix-r算法了。最流行的算法都是以r=2或r=4为基的,最简单的DFT不需要任何乘法就可以实现。例如:在S级且r=2的情形下,下列索引映射的结果是:

  S>2时的-个一般惯例是,在信号流程图中2点DFT是以蝶形图的形式绘出的,图1给出了8点变换的图示。信号流程图己经简化成用所有指向一个节点的箭头都代表加法的形式了,而常系数乘法则是在箭头上加一个因子表示。Radix-r算法具有logr(N)级,并且每组都有相同类型的旋转因子。

  图1 radix-2的长度为8的频率抽取算法

  从图的信号流程图可以看出,计算可以“就地”完成,也就是蝶形所使用的存储位置可以被重写,因为数据在下一步的计算中已不再需要了。Radix-2变换的旋转因子乘法总数是:

因为每两个箭头仅有一个旋转因子。

  由于图1中的算法在频域中开始将最初的DFT分成更短的DFT,所以这种算法就叫作频率抽取(decimatiON-in-frequency,DIF)算法。典型的输入值是按顺序出现的,而频率值的索引是按位逆序的。表给出了DIF Radix-2算法的特征值。

  表 频率抽取的Radix-2 FFT

  我们还可以用时间抽取(decimation h time,DIT)构造一种算法。在该情况下,首先将输入序列分开,就会发现所有频率值都是按顺序出现的。

  图2给出了索引41的radix-2和radix-4算法的必要索引变换。radix-2算法需要位顺序的反转,也就是位逆序。而radix-4需要首先构造一个2位的“数字”然后再反转这些数字,这种操作就称为数字逆序。

  图2 位逆序和数字逆序

Cooley-Tukey算法 (蝶形算法)相关推荐

  1. 【signal】傅里叶分析和FFT蝶形算法

    Date: 2018.10.31 下面两篇文章对傅里叶分析和FFT蝶形算法的分析很好,特转载. https://www.cnblogs.com/luoqingyu/p/5930181.html htt ...

  2. 20世纪最好的十大算法、算法笔记(2008-11-15 22:16:57、2011-04-21 19:29:05)

    Algorithm(算法)一词与9世纪的阿拉伯学者al-Khwarizmi有关,他写的书<al-jabr w'al muqabalah>(代数学)演变成为现在中学的代数教科书.Ad-Khw ...

  3. 算法总结---最常用的五大算法(算法题思路)

    算法总结---最常用的五大算法(算法题思路) 一.总结 一句话总结: [明确所求:dijkstra是求点到点的距离,辅助数组就是源点到目标点的数组] [最简实例分析:比如思考dijkstra:假设先只 ...

  4. 生成树的概念,最小生成树Prim算法 Kruskal算法

    求解最小生成树可以用Prim算法 Kruskal算法

  5. 期望最大化算法(Expectation-Maximum,简称EM)算法+EM算法+EM的应用

    期望最大化算法(Expectation-Maximum,简称EM)算法+EM算法+EM的应用 EM的应用 EM算法有很多的应用,最广泛的就是GMM混合高斯模型.聚类.HMM等等.具体可以参考Jerry ...

  6. 数据结构与算法:算法简介

    数据结构与算法:算法简介 雪柯 大工生物信息 提笔为写给奋进之人 已关注 你说呢 . shenwei356 等 70 人赞同了该文章 引用自算法图解,作者[美] Aditya Bhargava 译袁国 ...

  7. 社团发现算法-BGLL算法(附代码实现)

    一.社团发现算法 人们发现许多实际网络均具有社团结构, 即整个网络由若干个社团组成,社团之间的连接相对稀疏.社团内部的连接相对稠密.社团发现则是利用图拓扑结构中所蕴藏的信息从复杂网络 中解析出其模块化 ...

  8. javascript数据结构与算法---检索算法(二分查找法、计算重复次数)

    javascript数据结构与算法---检索算法(二分查找法.计算重复次数) /*只需要查找元素是否存在数组,可以先将数组排序,再使用二分查找法*/ function qSort(arr){if (a ...

  9. 【Java 虚拟机原理】垃圾回收算法 ( 标记-清除算法 | 复制算法 | 标记-整理算法 )

    文章目录 总结 一.标记-清除算法 二.复制算法 三.标记-整理算法 总结 常用的垃圾回收算法 : 标记-清除算法 ; 复制算法 ; 标记-整理算法 ; 这些算法没有好坏优劣之分 , 都有各自的 优势 ...

  10. 【算法】双指针算法 ( 双指针算法分类 | 相向双指针 | 有效回文串 )

    文章目录 一.双指针算法分类 二.相向双指针示例 ( 有效回文串 ) 一.双指针算法分类 面试时经常遇到 限制算法复杂度为 O(n)O ( n )O(n) 的情况 , 就需要使用以下算法 : 双指针算 ...

最新文章

  1. Excel,此文件中的某些文本格式可能已经更改,因为它已经超出最多允许的字体数。...
  2. TuShare获取K线数据
  3. 路飞学城Python-Day171
  4. python——asyncio模块实现协程、异步编程(三)
  5. Python使用系统聚类算法对随机元素进行分类
  6. 指针与数组的关系---初始化
  7. javascript学习之数组的使用二 forEach方法
  8. iapp退出软件按钮代码_还在为金蝶财务软件发愁吗?超详细!金蝶财务软件实操流程,速收...
  9. java actionsupport_ActionSupport与action区别
  10. 9008刷机教程oppo_OPPO手机解锁教程
  11. 路由交换技术(一)---- 网络基础概述
  12. HandlerSocket安装
  13. 锂电池容量电压对照表_商业化磷酸铁锂电池PK三元锂电池 谁更胜一筹?
  14. 安徽财贸职业学院计算机信息管理怎么样,让别人看看安徽财贸职业学院计算机系汪永涛辅导员如何对待我的!!...
  15. 亲测jupyter打不开浏览器
  16. PL2303HXD驱动
  17. 带着11名医生冲刺上市,清晰医疗能够对标希玛眼科吗?
  18. Canvas入门教学(4)动画与碰撞检测
  19. oa系统服务器什么意思,OA系统是什么意思
  20. 鞍山c语言培训,10_鞍山科技大学:C语言与数据结构_ppt_大学课件预览_高等教育资讯网...

热门文章

  1. 批量打印word文档_如何安排打印Word 2007+文档
  2. 基于java springboot仓库管理微信小程序源码
  3. 记各常见手机屏幕尺寸
  4. linux版本的pdf软件,3款可以注释标注的Linux版pdf阅读器评测
  5. MYSQL闪退的解决方法
  6. java8steam流 filler_做有机硅,不懂英文哪能行?——赶紧收藏,说不定哪天就用到了!...
  7. 【电脑配置】开发人员必备,黑苹果双系统安装教程
  8. WebView如何引用本地字体
  9. 如何将class文件反编译成java文件
  10. origin拟合曲线方法