第4章节快速傅里叶变换.ppt

  1. 1、本文档共76页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第4章节快速傅里叶变换

第4章 快速傅里叶变换 (离散傅里叶变换的快速算法) 4.1 DFT的计算工作量 4.2 FFT的基本思想 (1)指数因子的特殊值 (2)指数因子的周期性 (3)指数因子的可约性 (4)指数因子的半对称性 (5)指数因子的共轭对称性 (6)指数因子的正交性 (7)序列的分解 4.3 FFT的基本形式 (1)基2时分法FFT 基2时分法FFT的运算特点 ①蝶形运算的计算工作量分析: ②原位计算技术: ③数据排列的规律: ④指数因子的规律: (2)基2频分法(2-DIF)FFT 4.4 FFT的逆变换算法 4.5 FFT的应用举例 4.5.1 快速卷积 4.5.2 快速相关分析和功率谱分析 相关分析的概念很重要。相关运算广泛应用于信号分析与统计分析(随机信号)。例如,通过相关函数峰值的检测,测量两个信号的时差。 两个长为N的实离散时间序列x(n)与y(n)的互相关函数定义为 序列x(n)和y(n)的互相关函数定义为: 序列x(n)和y(n)的卷积和: 互相关函数与卷积的关系: 当x(n)=y(n)时,得到x(n)的自相关函数为: 维纳-辛钦(Wiener-Khintchine)定理: 信号的自相关函数与功率谱为傅立叶变换对。 例:计算白噪声信号的自相关函数和功率谱密度函数 %MATLAB: fft( ) N=128; x1=randn(N,1); rxt1=xcorr(x1,x1); RXw1=fft(rxt1)/N; RXw1_Magnitude=abs(RXw1); subplot(3,1,1);plot(x1);grid; subplot(3,1,2);plot(rxt1);grid; subplot(3,1,3);plot(RXw1_Magnitude);grid; 将上述公式(1)和公式(2)放在一起,就是FFT的迭代公式: 说明: 公式(1)和公式(2)只是相差一个符号。 X(k)的前半部分(k=0,1,…,N/2-1)用公式(1)计算。 X(k)的后半部分(k=N/2, N/2+1,…,N-1)用公式(2)计算,不再用公式(1)计算,可以节省计算工作量,因为二者只是相差一个符号。实际上无需进行计算。 将上述迭代公式用信号流图来表示,称为蝶形运算(Butterfly Computation): (1)向上的支路为加法运算,向下的支路为减法运算。 (2)在乘法运算的支路上标注箭头和系数。 (3)蝶形运算的计算工作量:一次乘法,两次加法(一次加法和一次减法)。 依此类推,X1(k)和X2(k)可以继续分解下去。这种按时间抽取的FFT算法,在输入序列分解为越来越小的子序列上执行DFT运算,最后再合成为N点DFT。由于这种方法的每一步分解都是按输入时间序列是属于偶数还是奇数来抽取的,所以称为“按时间抽取法”或“时间抽取法”。 最后剩下的是2点DFT,可以用一个蝶形运算来表示: 下面以N=8=23为例,介绍按时间抽取的FFT算法的迭代过程。 例:按时间抽取的FFT算法的迭代过程,N=8=23, 将一个N=8点DFT分解为两个N/2=4点的DFT 例:按时间抽取的FFT算法的迭代过程,N=8=23, 将一个N/2=4点DFT分解为两个N/2/2=2点的DFT 例:按时间抽取的FFT算法的迭代过程,N=8=23, 将一个N/2/2=2点DFT分解为两个N/2/2/2=1点的DFT 两点序列的DFT可以用一个蝶形运算来表示。 单点序列的DFT就是其本身,即X(0)=x(0)。 x(0) x(1) X(0) X(1) -1 例:按时间抽取的FFT算法的迭代过程的运算流图, N=8=23,将一个N=8点DFT分解3级蝶形运算, 每级的蝶形运算的个数为N/2=4个。 第1级 第2级 第3级 基2时分法FFT的运算特点: ①蝶形运算的计算工作量分析: ②原位(in-place)计算技术: ③数据排列的规律: ④指数因子的规律: 设序列的点数为N=2M,总是可以通过M=log2N级的分解,最后成为2点的DFT运算。这样就构成了从x(n)到X(k)的M=log2N级运算过程。 从上述的信号流图可以看到,每一级运算都由N/2个蝶形运算构成。而每个蝶形运算的计算工作量为一次复数乘法和两次复数加法(实际为一次复数加法和一次复数减法)。因此,每一级运算都需要进行N/2次复数乘法和N次复数加法。这样经过时间抽取后,M=log2N级运算总共需要的计算工作量为: 复数乘法的次数: 复数加法的次数: 下面以复数乘法的次数为例,说明FFT算法的效率。 直接运算DFT的复数乘法次数为: 采用FFT计算DFT的复数乘法次数为: 二者复数乘法次数的比值为: 当序列的点数N越大时,与DFT相比较,FFT的效率越高。 例:FFT与DFT的计算工作量的比较

文档评论(0)

ctuorn0371 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档