语言编写FFT程序.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
语言编写FFT程序.doc

DSP课程作业 用C语言编写FFT程序 1,快速傅里叶变换FFT简介 快速傅氏变换(FFT),是离散傅氏变换的快速算法,它是根据离散傅氏变换的奇、 偶、虚、实等特性,对离散傅立叶变换的算法进行改进获得的。它对傅氏变换的理论丼 没有新的发现,但是对于迕计算机系统或者说数字系统中应用离散傅立叶变换,对以说 是进了一大步。 我们假设x(n)为N项的复数序列,由DFT变换,任一 X(m)的计算都需要N次复 数乘法和N-1次复数加法,而一次复数乘法等于叫次实数乘法和两次实数加法,一次复 数加法等于两次实数加法,即使把一次复数乘法和一次fi数加法定义成一次“运算”(四 次实数乘法和四次实数加法),那么求HiN项S数序列的X (m),即N点DH变换大约就 需要N2次运算。当N=1024点甚至更多的时候,需要N2=1048576次运算,在FFT中, 利川WN的周期性和对称性,把一个N项序列(设N=2k,k为正整数),分为W个N/2项的 子序列,每个N/2点DH变换需要(N/2) 2次运算,再用N次运算把两个N/2点的DFT 变换组合成一个N点的变换。这样变换以总的运算次数就变成N+2(N/2)2=N+N2/2。 继续上而的例子,N=1024时,总的运算次数就变成了 525312次,节宵了人约50%的运算 堂。而如果我们将这种“一分为二”的思想不断进行下去,直到分成两两一组的DH运 算单元,那么^(的DFT变换就只需耍Nlog2N次的运算,N在1024点吋,运算量仅有 10240次,是先前的直接算法的1%,点数越多,运算景的节约就越人,这就是FFT的优 越性。 2, FFT算法的基本原理 FFT算法的基本思想:利川DFT系数的特性,合并DET运算屮的某些项,吧长序列的 DFT—〉短序列的DFT,从而减少其运兑量。 PFT算法分类:时间抽选法DTT: Decimation-Tn-Time :频率抽选法DTE: Decimation-In-Frequency 按时间抽选的基-2FH算法 1、算法原理 设序列点数N = 2L,L为整数。 若不满足,则补零。N为2的整数幂的FFT算法称基-2FFT算法。将序列x(n)按n 的奇偶分成W组:r = 0’l,…,普-1 的奇偶分成W组: r = 0’l,…,普-1 则 x(n)的 DFT: 则 x(n)的 DFT: x ⑷=+2( W ?/=() n=0 zj=() = f^(2r)W,+^(2r + l)’ /q0 r=04_, TOC \o 1-5 \h \z r=0 r=0 夸一 1 夸一 1 = $(02+吣乞 r=0 r=0 =^(幻 + 1%;12(/:)(以=(u”?.令—D 其中 ⑻=⑺ W = 5(2r) W r=() * r=() A?一 | !-i X,(k) = ^xSr)W^ =j42r) 什=0,1,…芷-1) r=0 r=0 2 X, = XAk) x/)t + — 2, A 2; 再利用周期性求X(k)的后半部分: ???芩(w2(幻是以I为周期的 久⑷ 又 w,:+* N N ?=-c X(k) = XSk) + W^X2(k) %(人 +争二 X|(KX2(幻 Xi⑻ \~~X側湖 ,’ A i (女 析伴令 X2A ) -1 图本1时苘抽迭法蝶彩运算流?符号 n为偶数 n为奇数 N_~2£ = _log N_ ~2 £ = _log2?/ 运算量xi0)~v(0 *Vi3)?rC6), 运算量 xi0)~v(0 * Vi3)?rC6), 3fz0-v(1), ,vt(1 )=v(3), 似2赚v(F ? ■, Ai(2) 1 ■尋 足,p , tV2(V mW A?hAX1)V2)Ml)M4)况5)Vfr)A7) A?h AX1) V2) Ml) M4) 况5) Vfr) A7) 側后的运算量: 城總 复 —W 2点 DFT j^/2(y/2-i) 两个及/ 2点DFT AP/2 -^蝶形 I 2 及/ 2个蝶麻 ff/2 If 总计 的2+#/2 ^N2/2 ?2^/2 运算量齡了近一半! 2)、运算量 当N = 2L时,共有L级蝶形,毎级N/2个蝶形, 坤 N N 复数乘注:mF=yL = ylog2A^ 比较DFT m F (D F T ) m F (FFT)2N 比较DFT m F (D F T ) m F (FFT) 2N N_ T log2/V 10^ 3)、算法特点 原位计算 蝶形运算两节点的第一个节点为k值,表示成L位二进制数,左移L-m位, 把右边空出的位置补零,结果为r的二进制数。 {xM = xt^)+xfaj)K ?V 图4-7按时闻抽逸蝶形运算结构 倒位序 x(n)打= (^2/^)2倒位序 自然序 ?0 ?1 0 0 0 000 0

文档评论(0)

ggkkppp + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档