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