- 1、本文档共36页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数字信号课件-5第四章快速傅里叶变换
4.1 引言 4.2 基2FFT算法 ☆ 直接计算DFT的特点及减少运算量的基本途径 ☆ 时域抽取法基2FFT算法 ☆ DIT-FFT的运算量 ☆ DIT-FFT的运算规律 ☆ 按频域抽取的基2FFT算法 ☆ IDFT的高效算法 * 第四章 快速傅里叶变换 西南交大峨眉校区电气系 DSP * * 第四章 快速傅里叶变换(FFT) 4.1 引言 DFT是数字信号处理中一种很有用的方法,但通常要处理的序列比较长,DFT的运算量很大,应用受到很大限制。因此必须寻求DFT的各种快速有效算法,由此便产生FFT(Fast Fourier Transforms)。 FFT是DFT的一种快速算法。 4.2 基2FFT算法 4.2.1 直接计算DFT的特点及减少运算量的基本途径 DFT的定义 ① ② 正变换的运算量 均为复数 每计算一个X(k)需要: N次复数乘法,(N-1)次复数加法 N个X(k)需要: N2次复数乘法,N(N-1)次复数加法 ① 观察①式: ① ② 观察②式: 运算量与①式相同,差别在于 指数的符号 总结 DFT或IDFT的运算量为: N2次复数乘法,N(N-1)次复数加法 当N↑,运算量剧烈增加;N很大时,难于做到实时信号处理,故迫切需要改进DFT的计算方法,设法减小运算量,FFT就是DFT的一种快速算法。 FFT的基本思想 1.将大点数的DFT分解为若干个小点数的DFT的组合,使整个DFT的计算过程变成一系列迭代运算过程。 2.利用 的周期性和对称性: 周期性: 对称性: 或 FFT算法的分类 时域抽取法(DIT) 频域抽取法(DIF) 4.2.2 时域抽取法基2FFT算法 算法原理 设N点序列x(n), , M为自然数 按n的奇偶将x(n)分组: 则: 则: 则: ③ 此时:r、k=0,1,…, 怎么样表达后一部分的X(k)呢? ③ 此时:r、k=0,1,…, 同理: 故: k=0,1,…, ④ ③ k=0,1,…, 结论 只要求出0~(N/2-1)区间的所有X1(k)和X2(k)值, 即可求出0~(N-1)区间的所有X(k)值,大大节省了运算量。 ③ ④ k=0,1,…, 将此运算用蝶形信号流图符号表示: 计算一个蝶形,需要一次复乘,两次复加。 N点DFT一次时域抽取分解图(N=8) N/2点 DFT N/2点 DFT 计算一个N点DFT需要计算两个N/2点DFT和N/2个蝶形运算 计算一个N点DFT需要 次复乘、N(N-1)次复加; (计算一个N/2点DFT需要(N/2)2次复乘、N/2(N/2-1)次复加。) 计算一个蝶形,需要一次复乘,两次复加。 即计算一个N点DFT需要[2(N/2)2+N/2]=N(N+1)/2≈N2/2次复乘;[N(N/2-1)+N]=N2/2次复加。 经过一次分解,就使运算量减少一半,则运用这种 方法可以对N/2点DFT进一步分解,一直到左侧为两点 DFT为止。 N点DFT一次时域抽取分解图(N=8) N/2点 DFT N/2点 DFT N/4点 N/4点 N/4点 N/4点 N点DIT―FFT运算流图(N=8) 当 时,可分解为M级蝶形,每级都有N/2个蝶形运算。 则每一级:N/2次复数乘、N次复数加。 计算一个蝶形,需要一次复乘,两次复加。 则M级: 次复数乘 次复数加 4.2.3 DIT-FFT的运算量 复乘次数 N N 2 算法的计算复杂度 例如,N=210 =1024时 4.2.4 DIT-FFT的运算规律 1. 原位计算(就地算法) 用同一地址既存输入序列又存输出序列的算法。 2.旋转因子 的变化规律 级(L):从左到右的运算级数。(L=1,2,…M) 旋转因子与级数(L)的关系? L=1 L=2 L=3 推广到一般情况 ,第 L 级的旋转因子为 3.序列的倒序 按原位计算时,FFT的输出X(k)是按自然顺序存储的,但输入序列却不是按自然顺序存储的。 若 是三位二进制数, 则 就是它的倒位序。 x(0) 000 0 000 x(1) 001 4 100 x(2) 010 2 010 x(3) 011 6 110 x(4) 100 1 001 x(5) 101 5 101 x(6) 110 3 011 x(7) 111 7 111 x(n) n 输入序列是按倒位序存储的。 造成倒位序的原因是输入序列x(n),按标号n的奇偶不断地分组造成的。 n 4.编程规律 N=2M ① 共M级蝶形运算,级数用L表示,即L=1,2,…,M。 ② 每一级中
文档评论(0)