Cooley-Tukey算法 (蝶形算法)

Cooley-Tukey算法 (蝶形算法)

大家好,又见面了,我是全栈君,祝每个程序员都可以多学几门语言。

Cooley-Tukey算法差别于其它FFT算法的一个重要事实就是N的因子能够随意选取。这样也就能够使用N=r
S的Radix-r算法了。最流行的算法都是以r=2或r=4为基的,最简单的DFT不须要不论什么乘法就能够实现。比如:在S级且r=2的情形下,下列索引映射的结果是:

Cooley-Tukey算法 (蝶形算法)

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

Cooley-Tukey算法 (蝶形算法)

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

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

Cooley-Tukey算法 (蝶形算法)

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

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

  表 频率抽取的Radix-2 FFT

Cooley-Tukey算法 (蝶形算法)

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

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

Cooley-Tukey算法 (蝶形算法)

  图2 位逆序和数字逆序

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/118669.html原文链接:https://javaforall.net

(0)
上一篇 2021年12月2日 下午11:00
下一篇 2021年12月2日 下午11:00


相关推荐

  • tree树形结构_什么是树形结构

    tree树形结构_什么是树形结构一、树的基本概念(1)树(Tree)的概念:树是一种递归定义的数据结构,是一种重要的非线性数据结构。树可以是一棵空树,它没有任何的结点;也可以是一棵非空树,至少含有一个结点。(2)根(Root)

    2022年8月3日
    8
  • 查看linux执行的命令记录_linux删除history记录

    查看linux执行的命令记录_linux删除history记录前言我们每次敲打linux命令的时候,有时候想用之前用过的命令,一般情况下,我们都会按↑↓箭头来寻找历史的命令记录,那如果我想用1天前执行的某条命令,难道还要按↑100次?显示这样是不现实的,我们可

    2022年7月31日
    6
  • 如何传输大文件(GB级别)

    如何传输大文件(GB级别)一、拆分:压缩工具,压缩并拆分为多个小文件。二、QQ离线传输QQ离线文件有限制条件:1.离线传送的文件,为用户保存7天,逾期接收方不接收文件,系统将自动删除该文件;2.离线传送的文件,单个文

    2022年7月4日
    24
  • 缓存穿透、缓存击穿、缓存雪崩的理解和解决方案[通俗易懂]

    缓存穿透、缓存击穿、缓存雪崩的理解和解决方案[通俗易懂]目录一、缓存穿透二、缓存击穿三:缓存雪崩在生产环境中,会因为很多的原因造成访问请求绕过了缓存,都需要访问数据库持久层,虽然对Redsi缓存服务器不会造成影响,但是数据库的负载就会增大,使缓存的作用降低一、缓存穿透1、缓存穿透理解缓存穿透是指查询一个根本不存在的数据,缓存层和持久层都不会命中。在日常工作中出于容错的考虑,如果从持久层查不到数据则不写入缓存层,缓存穿透将导致不存在的数据每次请求都要到持久层去查询,失去了缓存保护后端持久的意义。缓存穿透示意图:缓存穿透问…

    2022年6月20日
    42
  • Java Eclipse下载安装教程[通俗易懂]

    Java Eclipse下载安装教程[通俗易懂]一、下载:(1)Eclipse是一个开放源代码的项目,其官方网站是www.eclipse.org(2)从首页中单击DOWNLOAD按钮,进入图2所示的页面。(3)点击DownloadPackages,进入Eclipse下载页面。从EclipseIDEforJavaEEDevelopers后面选择适合当前系统的版本,这里单击64bit按钮,…

    2022年5月2日
    39
  • 面试又给我问到MySQL索引【索引的使用策略及优化】「建议收藏」

    面试又给我问到MySQL索引【索引的使用策略及优化】

    2022年2月15日
    26

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号