1 / 30

数字信号处理多媒体教学系统 版权所有: yuning 2003 。 3 第 2 版

第 4 章 快速傅氏变换 FFT. 数字信号处理多媒体教学系统 版权所有: yuning 2003 。 3 第 2 版. 数字信号处理. 快速傅立叶变换 FFT 是 DFT 计算的高效、快速算法。. 1 、 问题的提出: 直接计算 DFT 的计算量:. 计算 DFT 的一个值 X(k) 需要进行 N 次复数乘法(包括与 1 相乘)和 N-1 次复数加法,一共要计算 N 个值,所以要进行 N 2 和 N(N-1) 次复数加法. 所以直接计算的计算量为 N 2 数量级,需要改进算法提高计算效率。.

oakley
Download Presentation

数字信号处理多媒体教学系统 版权所有: yuning 2003 。 3 第 2 版

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第4章快速傅氏变换FFT 数字信号处理多媒体教学系统 版权所有:yuning 2003。3 第2版 数字信号处理

  2. 快速傅立叶变换FFT是DFT计算的高效、快速算法。快速傅立叶变换FFT是DFT计算的高效、快速算法。 1、问题的提出: 直接计算DFT的计算量:

  3. 计算DFT的一个值X(k)需要进行N次复数乘法(包括与1相乘)和N-1次复数加法,一共要计算N个值,所以要进行N2和N(N-1)次复数加法计算DFT的一个值X(k)需要进行N次复数乘法(包括与1相乘)和N-1次复数加法,一共要计算N个值,所以要进行N2和N(N-1)次复数加法

  4. 所以直接计算的计算量为N2数量级,需要改进算法提高计算效率。所以直接计算的计算量为N2数量级,需要改进算法提高计算效率。 1965年库利——图基发表DFT的快速算法FFT。使计算量降到(N/2)log2N。 计算量比较表

  5. 2、FFT算法的引入: (1)把长序列分解成短序列计算,然后再组合出结果。 (3)根据这两点提高计算效率的方法,提出了多种不同的算法。 如库利——图基算法(时间抽取基2FFT算法);桑德——图基算法(频率抽取基2FFT算法);WFTA算法(小N素数组合算法);CZT算法(线性调频Z变换算法);ZFFT算法(局部频谱细化算法)等等。

  6. 4.1 库利——图基算法(时间抽取基2FFT算法) 4.1.1 基本原理 为了便于分解,设序列的长度N为2的整数次方,N=2K。

  7. 基本蝶形运算 2点DFT运算

  8. x[0] X[0] X[1] x[4] W0 x[2] X[2] W0 x[6] X[3] W0 W2 x[1] X[4] W0 x[5] W1 X[5] W0 W2 x[3] X[6] W0 W3 x[7] W0 W2 X[7] N = 8基2时间抽取,可得出如下计算流程图:

  9. 4.1.2 计算量和算法特点 如: 序号 n和混序号 用3位二进制数表示,它们互为反转。 (1)以碟形运算为基础进行组合计算,计算因子WK的指数K与运算所在的级数和组内位置有关。 (2)中间数据的存储,可采用原位存储法。即每次碟形运算的结果可以存储在原数据的同一个存储单元。这样在高速硬件实现时,可节省存储器。 (3)输入序列的混序。因为DFT输入序列是顺序采样的,所以在计算FFT 之前需要进行序列按混序要求排序。排序算法很多,较常用的计算混序号的方法有二进制序号反转算法。

  10. n0 n1 n2 0 x(000) 0 x(100) 4 0 1 0 0 1 x(010) 2 x(110) 6 X(n2n1n0) 1 0 0 x(001) 1 x(101) 5 1 1 0 x(011) 3 x(111) 7 1 1 倒序重排的原理图--码位颠倒树状图(N=8) 首先将序列x(n)分为偶数取样和奇数取样,偶数项出现在上半部分,奇数项出现在下半部分,其实我们就可以通过考察样本标号的最低为二进值码n0,如果为0,就在上半部分,为1在下半部分。第二次分解按倒数第二位进行判断,逐次分解逐次判断直到全部判决完为止。

  11. 4.2 桑德——图基算法(频率抽取基2FFT算法)

  12. 基本蝶形运算 2点DFT运算

  13. x[0] X[0] x[1] X[4] W0 x[2] X[2] W0 x[3] X[6] W2 W0 x[4] X[1] W0 x[5] W1 X[5] W0 W2 x[6] X[3] W0 W3 x[7] X[7] W2 W0 N = 8基2频率抽取,可得出如下计算流程图:

  14. 4.2.2 计算量和算法特点 (1)以蝶形运算为基础进行组合计算,计算因子WK的指数K与运算所在的级数和组内位置有关。 (2)中间数据的存储,可采用原位存储法。即每次蝶形运算的结果可以存储在原数据的同一个存储单元。这样在高速硬件实现时,可节省存储器。 (3)输出序列为混序。因为DFT输出序列要求是顺序的,所以在计算FFT 之后需要进行序列按混序要求排序。输出序列混序与时间抽取方法的输入序列混序相同。所以排序算法相同。 两种FFT算法的计算量相同,计算过程也类似。所以,在实际应用中两种算法可以任意选用。FFT算法大大地减少了DFT的计算量,使计算机数字信号处理得以广泛应用。

  15. 4.3.1 FFT的实现方法: 抽样 A/D 窗口截断 FFT 频谱分析 抗混叠 滤波器 x(t) x[n] X[k] 4.3 FFT的实现方法与应用 (1)软件实现。用于各种多媒体系统。 (2)单片信号处理微机(DSP)实现。如著名的TMS320系列信号处理机。具有固化的FFT程序,计算1024点浮点数据只需2mS;128阶FIR数字滤波器可处理10MHz的信号。用于实时多媒体系统,如可视电话,语言识别系统等。 (3)阵列处理机实现。如信号处理阵列机;并行处理机等。用于大型图象信号处理,如气象卫星云图处理等。 4.3.2 FFT的应用 1、信号的频谱分析: 主要误差的处理:混叠误差(抗混叠滤波,提高采样频率);泄漏误差(窗口函数的修正);栅栏效应(采样点数N的选定,延长采样时间t=NT)。 A/D变换器的精度要求要根据实际情况,使频谱X(k)满足分析要求。

  16. |H(k)| tp -fs/2 fs/2 例:某FFT信号分析处理器采样频率为 5.12KHz。为了便于计算,取信号数据点数N是2的整数次方。问该处理器信号分析的频率范围是多少?若信号分析要求频谱的分辨率达10Hz,求信号采样持续时间至少为多长?信号数据点数应为多少?

  17. 2、快速卷积 FFT 计算(快速算法): 一般应用中,有M >> N。这时,可以采用分段计算方法,进一步减少计算量。 分段计算,可以用重叠相加法和重叠保留法。

  18. 4.4 线性调频Z变换算法 DFT频谱是序列的Z变换在单位圆上的等间隔取样。但在一些应用中,需要计算某一段范围的较密集取样点的频谱;或非等间隔取样点的频谱;甚至可能要求频谱的取样点不在单位圆上,而在某一条螺旋线上。对于这样一些频谱计算要求,DFT计算无法满足。在这些情况下,采用线性调频Z变换算法(Chirp Z Trasnation CZT)是很有效的。 4.4.1 CZT算法的基本原理

  19. (M-1) Z1 Z2 Z0 θ0 ZM-1 A0 Re 1.0

  20. CZT计算流程

  21. 4.4.2 CZT算法的快速算法:

  22. 4.4.2 CZT算法的快速算法计算步骤:

  23. 4.4.3 CZT算法的计算量:

  24. 4.5 实数序列的FFT高效算法和高效卷积: 4.5.1实数序列的FFT高效算法 FFT计算为复数运算,所以输入序列 x(n)在运算时可以为复数数据。如果是实序列一般是把虚部置0。如果利用虚部数据可以提高计算效率。 所以,通过组合后计算一次N点FFT可以得出2个N点实数序列的DFT频谱。

  25. 计算2N点的实序列 如果希望计算2N点实数序列的FFT,也可以采用组合方法提高计算效率。 将2N点的实序列分成两个N点实序列(按偶数项和奇数项分组),在组合成复数序列进行FFT运算。 即一个2N点的实序列的DFT可以用N点的FFT实现。

  26. 4.5.2 实数序列的FFT高效卷积算法 高效卷积可用于:一次快速卷积可计算两个信号分别输入一个LTI系统的两个输出;或一个信号分别输入两个LTI系统的输出。用于分段卷积可以一次计算两个分段。

  27. 结 束 数字信号处理多媒体教学系统 版权所有:yuning 2003。3 第2版

More Related