1、西北大学信息科学与技术学院 2007年,4.3 IDFT的快速算法,IDFT的计算公式重写如下:可以看到,除了常数 和 外,IDFT 和DFT是完全一样的,因此,只要将FFT算法 中的旋转因子(W因子)改为共轭,所有支路 乘以 ,就得到了一种IDFT的快速算法。,西北大学信息科学与技术学院 2007年,由于 ,可以将 分配到M级中 的每一个蝶形的输出支路上,如图所示,这种 算法的好处是在一 定程度上可以防止算法运算 过程中发生溢出。,西北大学信息科学与技术学院 2007年,如果希望直接调用FFT模块来计算 IDFT,可以采用如下第二种方法:这种算法是先将输入的 取共轭,然 后直接调用FFT算法
2、,对结果再取共轭,最 后乘以1/N,结果就是 。,西北大学信息科学与技术学院 2007年,4.4 基4-FFT算法,除了基2-FFT算法外,基4-FFT算法也是 应用非常广泛的FFT算法。类似于基2算法, 基4算法要求的点数 ,序列DFT的计算 最终分解成N/4个4点序列的DFT计算,4点序 列的DFT实际上也没有乘法。,西北大学信息科学与技术学院 2007年,首先,将序列按下标分为4组: 4r,4r+1,4r+2,4r+3,r=0,1,2,,N/4-1,分别记 为所以,西北大学信息科学与技术学院 2007年,将分成4部分: 和 , ,利用 的周 期为N/4,可得,西北大学信息科学与技术学院
3、2007年,可以看到,N点 的计算可以分成四部 分,分别由四个N/4点序列的DFT线性组合而 得。每一个N/4点序列的DFT实际上不需要求解,仍可以按照此思路继续分解,直到分为N/4 个4点序列,4点序列的DFT可以直接计算,不 需要乘法运算。根据以上算法的原理,可以画出一个N=8 的基4-FFT算法流图,如图4-5所示。,西北大学信息科学与技术学院 2007年,西北大学信息科学与技术学院 2007年,4.5 实序列的FFT算法,在实际中,数据一般都是实序列,而FFT 算法一般针对复序列,直接处理实序列时,是 将序列的虚部看成零,将会浪费很多运算时间 和存储空间,因此设计了专门用于实序列的 F
4、FT算法。本节介绍的2种算法都是以复数FFT 算法为基础,利用了DFT的对称性和FFT算法 特点而设计的,有较大的实用价值。,西北大学信息科学与技术学院 2007年,算法一:是用一次N点FFT完成两个N点实序列的DFT计算。设 和 是两个N点实 序列,以 作实部, 作虚部,构成一个复序列 ,求出 的DFT ,然后根据DFT的对称性中序列实部的DFT等于序列DFT的共轭偶对称部分,序列虚部的DFT等于序列DFT的共轭奇对称部分,即可求出和 的DFT了,具体步骤如下:,西北大学信息科学与技术学院 2007年,(1)构造复序列(2)求 的N 点FFT,记为 (3)根据对称性求出 和,西北大学信息科学
5、与技术学院 2007年,算法二:N点实序列 ,可以把序列分成两个N/2的实序列,分别记为 和 ,然后仿造第一种算法,得到 和 ,最后根据所采用分解方法和实序列DFT的共轭对称性,求出 ,具体步骤如下:(1)将N点实序列分解成两个N/2点的实序列,分解方法采用时间抽取方法;,西北大学信息科学与技术学院 2007年,(2)构造复序列 ;(3)求 的N /2点FFT,记为 ;(4)根据对称性求出 和 ;,西北大学信息科学与技术学院 2007年,(5)按时间抽取算法的蝶形公式求出 。,西北大学信息科学与技术学院 2007年,4.6 FFT的软件实现,数字信号处理包括数字信号处理的理 论、分析方法、算法
6、与数字信号处理的实 现,即数字信号处理的软件及硬件实现方 法。实现数字信号处理的方法有三种。,西北大学信息科学与技术学院 2007年,1.采用计算机或者微机通过程序,用软件的方法来完成数字信号 处理任务。这一实现方法的优点是可适用于各 种数字信号处理的应用场合,很灵活,缺点是 不能实时处理。由于数字信号处理算法中有大 量重复的运算,它只需要利用计算机的一部分 运算系统,没有充分发挥计算机的能力,造成 不必要的浪费。,西北大学信息科学与技术学院 2007年,2.采用专用的信号处理器针对某种信号处理的特有运算,用专用的 硬件或专用信号处理芯片组成专用的数字信号 处理器。它对于大量经常重复进行某一相
7、同信 号处理运算的场合,是很方便且很经济的,可 做到实时处理。但是运用场合改变或处理方法 改变时,这种专用信号处理器就不适用了。,西北大学信息科学与技术学院 2007年,3.采用通用的信号处理器通用的信号处理器也是一种计算机,但它 和通用的计算机在体系结构上有所不同。差别 在于:(1)信号处理器具有适应数字信号处理算 法的基本运算的指令;(2)信号处理器具有适应信号处理数据结 构的寻址机构;(3)信号处理器能充分利用算法的并行性。,西北大学信息科学与技术学院 2007年,数字信号处理的运算特点有以下两个方面:(1)最常出现的是以下运算:其中, 为系数, 为数据或中间结果。(2)其输入输出运算数
8、小于算术运算数。专 用或通用数字信号处理器也正是适应这些要 求而设计的,因而有可能做到快速实时处理。,西北大学信息科学与技术学院 2007年,下面介绍FFT的软件实现方法。本节以时 间抽选的基2-FFT 算法为例,讨论离散傅里叶 变换的FFT算法的计算机软件实现。这里采用 输入倒位序、输出自然顺序。FFT程序包括变 址和L级递推计算两大部分,以下对L级递推计 算进行说明。 设 ,则有:,西北大学信息科学与技术学院 2007年,1.每级有 个蝶形结,第一级的 蝶形 结都是同一种蝶形运算,也就是说,其系数都 相同,为 。第二级的 个蝶形结共有两种 蝶形运算,一种系数为 ,一种系数为 ,每 种各有
9、个蝶形结。这样,第L级的 个蝶 形结共有 种蝶形运算。即有 个不 同的系数,分别为 。,西北大学信息科学与技术学院 2007年,2.由最后一级向前每推进一级,则系数取 后级系数中偶数序号部分。3.蝶形结两个节点的间距为 ,M为所 在的级数,也就是每向前推进一级,间距就 变成原间距的 。,西北大学信息科学与技术学院 2007年,本章要点,本章从傅里叶变换复因子的周期性和对称 性推导出了傅里叶变换的快速算法FFT,并且用 信号流图说明了FFT的计算过程。主要介绍了按 时间抽取基2-FFT算法、按频率抽取基2-FFT算 法、IDFT的快速算法、基4-FFT算法、实序列的 FFT算法等内容。FFT算法可以编成FFT算法程 序在计算机上运行,也可以通过硬件实现。,