网站大量收购独家精品文档,联系QQ:2885784924

[工学]第2章 离散傅里叶变换及其快速算法5.ppt

[工学]第2章 离散傅里叶变换及其快速算法5.ppt

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

2.4 关于FFT应用中的几个问题 1、IDFT的高效算法 上述FFT算法流图也可以用于离散傅里叶逆变换(Inverse Discrete Fourier Transform,简称IDFT)。比较DFT和IDFT的运算公式: 如果希望直接调用FFT子程序计算IFFT,则可用下面的方法: 由于 通过g(n)的FFT运算结果G(k),由上式也可得到X (k) 的值。 通过N点FFT运算可得到: Y(k)=X1(k)+jX2(k), N点 根据前面的讨论,得到 a.计算X(k)=FFT[x(n)] b. 求H(k)=FFT[h(n)] c. 求Y(k)=H(k)X(k) k=0~L-1 d. 求y(n)=IFFT[Y(k)] n=0~L-1 可见,只要进行二次FFT,一次IFFT就可完成线性卷积计算。 计算表明,L32时,上述计算线性卷积的方法比直接计算线卷积有明显的优越性,因此,也称上述循环卷积方法为快速卷积法。 (1)??? 重叠相加法——由分段卷积的各段相加构成总的卷积输出 计算步骤: a.? 事先准备好滤波器参数 H(k)=DFT[h(n)],N点 b.? 用N点FFT计算Xi(k)=DFT[xi(n)] c.? Yi(k)=Xi(k)H(k) d.? 用N点IFFT求 yi(n)=IDFT[Yi(k)] e.? 将重叠部分相加 (2)重叠保留 则可以证明,rxy(τ)的离散傅里叶变换为 Rxy(k)=X*(k)Y(k) 其中 X(k)=DFT[x(n)], Y(k)=DFT[y(n)], Rxy(k)=DFT[rxy(τ)] , 0≤k≤N-1 利用FFT求两个有限长序列的线性相关: x=[1 3 -1 1 2 3 3 1]; y=[2 1 -1 1 2 0 -1 3]; k=length(x); xk=fft(x,2*k); yk=fft(y,2*k); rm=real(ifft(conj(xk).*yk)); rm=[rm(k+2:2*k) rm(1:k)]; m=(-k+1):(k-1); stem(m,rm) xlabel(m); ylabel(幅度); 例9 -20 -10 0 10 20 -50 0 50 100 150 200 250 300 m -20 -10 0 10 20 -50 0 50 100 150 200 250 300 m 幅 度 幅 度 (a) (b) 延迟序列的互相关函数(a)和自相关函数(b) * * 图 DIT―IFFT运算流图 图 DIT―IFFT运算流图(防止溢出) 对上式两边同时取共轭,得 2、实数序列的FFT 以上讨论的FFT算法都是复数运算,包括序列x(n)也认为是复数,但大多数场合,信号是实数序列,任何实数都可看成虚部为零的复数,例如,求某实信号x(n)的复谱,可认为是将实信号加上数值为零的虚部变成复信号(x(n)+j0),再用FFT求其离散傅里叶变换。这种作法很不经济,因为把实序列变成复序列,存储器要增加一倍,且计算机运行时,即使虚部为零,也要进行涉及虚部的运算,浪费了运算量。合理的解决方法是利用复数据FFT对实数据进行有效计算,下面介绍两种方法。 ?(1)用 一个N点FFT同时计算两个N点实序列的DFT 设x (n)、y (n)是彼此独立的两个N点实序列,且 X (k)=DFT[x (n)] , Y (k)=DFT[y(n)] 则X (k)、Y(k)可通过一次FFT运算同时获得。 首先将x (n)、y(n)分别当作一复序列的实部及虚部,令 g(n)=x (n)+jy(n) ?通过FFT运算可获得g(n)的DFT值 ) 利用离散傅里叶变换的共轭对称性 通过g(n)的FFT运算结果G(k),由上式可得到X (k) 的值。 作一次N点复序列的FFT,再通过加、减法运算就可以 将X(k)与Y(k)分离出来。显然,这将使运算效率提高一倍。 ?(2)用一个N点的FFT运算获得一个2N点实序列的DFT 设x(n)是2N点的实序列,现人为地将x(n)

文档评论(0)

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

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

1亿VIP精品文档

相关文档