串行FFT递归算法(蝶式递归计算原理)求傅里叶变换

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

串行FFT递归算法(蝶式递归计算原理)求傅里叶变换

摘要

FFT,即为快速傅氏变换,是离散傅氏变换的快速算法,它是根据离散傅氏变换的奇、偶、虚、实等特性,对离散傅立叶变换的算法进行改进获得的。它对傅氏变换的理论并没有新的发现,但是对于在计算机系统或者说数字系统中应用离散傅立叶变换,可以说是进了一大步。

设x(n)为N项的复数序列,由DFT变换,任一X(m)的计算都需要N次复数乘法和N-1次复数加法,而一次复数乘法等于四次实数乘法和两次实数加法,一次复数加法等于两次实数加法,即使把一次复数乘法和一次复数加法定义成一次“运算”(四次实数乘法和四次实数加法),那么求出N项复数序列的X(m),即N点DFT变换大约就需要N^2次运算。当N=1024点甚至更多的时候,需要N2=1048576次运算,在FFT中,利用WN的周期性和对称性,把一个N项序列(设N=2k,k为正整数),分为两个N/2项的子序列,每个N/2点DFT变换需要(N/2)^2次运算,再用N次运算把两个N/2点的DFT变换组合成一个N点的DFT变换。这样变换以后,总的运算次数就变成N+2(N/2)^2=N+N^2/2。继续上面的例子,N=1024时,总的运算次数就变成了525312次,节省了大约50%的运算量。而如果我们将这种“一分为二”的思想不断进行下去,直到分成两两一组的DFT运算单元,那么N点的DFT变换就只需要Nlog(2)(N)次的运算,N在1024点时,运算量仅有10240次,是先前的直接算法的1%,点数越多,运算量的节约就越大,这就是FFT的优越性。

关键字:FFT 蝶式计算傅里叶变换

目录

一.题目及要求 (1)

1.1题目 (1)

二.设计算法、算法原理 (1)

2.1算法原理与设计 (1)

2.2设计步骤 (2)

三.算法描述、设计流程 (4)

3.1算法描述 (4)

3.2流程图 (6)

四.源程序代码及运行结果 (8)

4.1源程序代码 (8)

4.2运行结果 (13)

五.算法分析、优缺点 (15)

5.1算法分析 (15)

5.2优缺点 (16)

六.总结 (17)

七.参考文献 (18)

一.题目及要求

1.1题目

对给定的)23,27,16,8,30,74,22,21(--=α,利用串行FFT 递归算法(蝶式递归计算原理)计算其傅里叶变换的结果。 1.2要求

利用串行递归与蝶式递归原理,对给定的向量求解傅里叶变换的结果。

二.设计算法、算法原理

2.1算法原理与设计

蝶式递归计算原理:令 为n/2次单位元根,则有 , 将b 向量的偶数项 和奇数项 分别记

为 和 。 注意推导中反复使用: 。

图2.1 公式图形

)

2//(2~

n i e πω=2

~

ωω=

T

n b b b ),...,,(220-T

n b b b ),...,,(1

31-T

n

b b b ),...,,(1

102-'''T n

b b b ),...,,(1102

-''''''p

p

sn n n

ωωωωω==-==+,1,1,1ln

2

/

2.2设计步骤

DFT a a a a a a b b b T n T n n n n 的是因此,向量),...,,(),...,,(111102202

2

2

--+-+++

DFT a a a a a a b b b T n T

n n n n n 的是因此,向量))(),...,(),((),...,,(111

1101312

2

2

2

---+----ω

ω

()

()

()()1

,,1,0)(~)

(~)(~)(~)()

()()()(210

1112

22110111222411201

122

412112241201

222

2

2

22

2

2

2

2

2

2

2

22

2

2

2

2-=+=++++++++=++++++++=+++++

++++==='∑∑-=+---++---++--++---=n k k

k l k n l l l n l

l l n l

l

l l

l

l

n k k

lk l l l a a a a

a a a a a a a a a a a a a a a a a a a a a a a

b b n

n n

n n n n n n n n n n n n n n n ωωωωω

ωωωωωωωωω偶数时:()()()()()()()1

,,1,0)(~)

(~)(~)(~)()

()()()(210

1111222211011112222

411201

11212111222

41201

)12(11)12(1)12(1)12(12)

12(211

201

)12(122

2

2

222

2

2

2

222

2

2

22

2

2

2

22

2

2

2

2

2

2

-=-=-++-+-+-=-++-+-+-=----

++++=++++

++++===''∑∑-=+----++----++---+----+-++++-+-++-=++n k k

k k l k n l l l n l

l

l

n l

l

l

l

l

n l n l l l l l n k k k l l l l a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a b b n n n n n n n n n n n n n n n n n n n n n n n n n

n n ωωωωωωωωωωωωωωωωωωωωωωωωωω

ω

ω

ω

ω

ω奇数时:

相关文档
最新文档