- 1、本文档共70页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第四章 快速傅里叶变换 FFT: Fast Fourier Transform 1965年,Cooley, Tukey 《机器计算傅里叶级数的一种算法》 一、直接计算DFT的问题及改进途径 运算量 FFT算法分类: 时间抽选法 DIT: Decimation-In-Time 频率抽选法 DIF: Decimation-In-Frequency 二 、按时间抽选的基-2FFT算法 1、算法原理 设序列点数 N = 2L,L 为整数。 若不满足,则补零 则x(n)的DFT: 再利用周期性求X(k)的后半部分 分解后的运算量: 这样逐级分解,直到2点DFT 当N = 8时,即分解到X3(k),X4(k),X5(k),X6(k),k = 0, 1 FFT算法中一些概念 (1)“级”概念 将N 点DFT先分成两个N/2点DFT,再是四个N/4点DFT…直至N/2个两点DFT.每分一次称为“一”级运算。 因为N=2L所以N点DFT可分成L级 如上图所示依次m=1,m=2….L共L级 (2)“组”概念 2、运算量 当N = 2L时,共有L级蝶形,每级N / 2个蝶形,每个蝶形有1次复数乘法2次复数加法。 3、算法特点 1)原位计算 2)倒位序 3)蝶形运算 对N = 2L点FFT,输入倒位序,输出自然序, 第m级运算每个蝶形的两节点距离为 2m–1 第m级运算: 因子的确定方法 蝶形运算两节点的第一个节点为k值,表示成L位二进制数,左移L – m位,把右边空出的位置补零,结果为r的二进制数。 4)存储单元 输入序列x(n) : N个存储单元 4、DIT算法的其他形式流图 输入倒位序输出自然序 输入自然序输出倒位序 输入输出均自然序 相同几何形状 输入倒位序输出自然序 输入自然序输出倒位序 三 、按频率抽选的基-2FFT算法 1、算法原理 按k的奇偶将X(k)分成两部分: 令 N /2仍为偶数,进一步分解:N /2 N /4 逐级分解,直到2点DFT 2、算法特点 1)原位计算 2)蝶形运算 对N=2L点FFT,输入自然序,输出倒位序, 两节点距离:2L-m=N / 2m 方法二: 蝶形运算两节点的第一个节点为k值,表示成L位二进制数,左移m-1位,把右边空出的位置补零,结果为r的二进制数。 3、DIT与DIF的异同 基本蝶形不同 四 、IFFT算法 比较: 五、线性卷积的FFT算法 1、线性卷积的FFT算法 FFT法:以圆周卷积代替线性卷积 比较直接计算和FFT法计算的运算量 1)重叠相加法 重叠相加法例子 2)重叠保留法 重叠保留法(1) 重叠保留法例子 2、线性相关的FFT算法 若L点x(n),M点y(n),计算线性相关: 设序列点数N=2L,L为整数。 将X(k)按k的奇偶分组前,先将输入x(n)按n的顺序分成前后两半: 则X(2r)和X(2r+1)分别是x1(n)和x2(n)的 N / 2点DFT,记为X1(k)和X2(k) x1(0) x1(1) -1 x1(2) x1(3) -1 x2(0) x2(1) -1 x2(2) x2(3) -1 N/2点 DFT N/2点 DFT x(0) x(7) x(1) x(2) x(3) x(4) x(5) x(6) X1(0)=X(0) X2(0)=X(1) X1(1)=X(2) X1(2)=X(4) X1(3)=X(6) X2(1)=X(3) X2(2)=X(5) X2(3)=X(7) x3(0) x3(1) -1 -1 x4(0) x4(1) N/4点 DFT N/4点 DFT x1(0) x1(1) x1(2) x1(3) X3(0)=X1(0)=X(0) X4(0)=X1(1)=X(2) X3(1)=X1(2)=X(4) X4(1)=X1(3)=X(6) 同理: 其中: 当N=8时,即分解到x3(n),x4(n),x5(n),x6(n),n=0,1 -1 L级蝶形运算,每级N/2个蝶形,每个蝶形结构: m表示第m级迭代,k,j表示数据所在的行数 第m级运算: DIT: 先复乘后加减 DIF: 先减后复乘 运算量相同 都可原位运算 DIT和DIF的基本蝶形互为转置 m=1 m=2 m=3 IDFT: DFT: 共轭 FFT 共轭 乘1/ N 直接调用FFT子程序计算IFFT的方法: 需运算量: 若系统满足线性相位,即: 则需运算量: 若L点x(n),M点h(n), 则直接计算其线性卷积y(n) 1) H(k) = FFT [h(n)]
文档评论(0)