并行计算PC11
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
串行FFT递归算法
蝶式递归计算原理
令 ~=e2 i /(n/ 2)为n/2次单位元根,则有~= 2.
将b向量的偶数项(b0 , b2 ,..., bn2 )和T 奇数项(b1,b3,..., bn1)T分别记为
(b0
,
b1,..
.
,bn
2
1
)T和
(b0,
b1,..
.
n
2
1
(2l
1)
an
2
1
a a a n 2
(
2l
1)
n
2
n 2
1
(2l
1)
n 2
1
n1(2l 1)
n1
a0
2la1
4l 2a2
2l
n 2
1
a n
2
1
n 2
1
an
2
2la
n 2
1
2l
代码1
for j=0 to n-1 do b[j]=0 for k=0 to n-1 do b[j]=b[j]+ωk*ja[k] end for
end for
注:代码1需要计算ωk*j
代码2的复杂度为O(n2)
代码2
w=ω0 for j=0 to n-1 do
b[j]=0, s=ω0 for k=0 to n-1 do
0 j n 1
k 0
这里=e2i/n为n次单位元根,i 1; 写成矩阵形式为
b0 0 0 0 0 a0
b1
0
1
2
n1
a1
bn1
0
n1
a ) n
2
2
2l
n 2
1
(a
n 2
1
an1
)
(a0
an
2
)
~l
(a1
a ) n
2
1
~ 2l
(a2
an
2
2
)
~
l
n 2
1(a
n 2
1
an1
)
n 2
1
~
k
l
(ak
a
n 2
k
)
k 0
l
0,1,,
n 2
1
因此,向量(b0 , b2 ,...,bn2
偶数时:bl b2l 2lk ak
k 0
a0
2l a1
4la2
a 2
l
n 2
1
n 2
1
an
2
a 2l
n 2
1
a 4l
n 2
2
2l
n 2
1an
1
(a0
an
2
)
2l
(a1
a ) n
2
1
4l
(a2
11.1.1 离散傅里叶变换(DFT) 11.1.2 DFT的顺序代码 11.1.3 串行FFT递归算法 11.1.4 串行FFT非递归算法
离散傅里叶变换(DFT)
定义
给定向量A=(a0,a1,…,an-1)T,DFT将A变换为B=(b0,b1,…,bn-1)T
n1
即
bj ak kj
b[j]=b[j]+s*a[k] s=s*w end for w=w*ω end for
国家高性能计算中心(合肥)
2019/9/26
7
11.1 快速傅里叶变换(FFT)
11.1.1 离散傅里叶变换(DFT) 11.1.2 DFT的顺序代码 11.1.3 串行FFT递归算法 11.1.4 串行FFT非递归算法
国家高性能计算中心(合肥)
2019/9/26
11
串行FFT递归算法
FFT的蝶式递归计算图(由计算原理推出)
a0
a1
. .
.
a
n 2
-1
an 2
a
n 2
+1
.
.
.
a n-1
+
a
0+a
n 2
+
a 1+a
n 2
+1
.
.
.
+
an 2
-1+a n-1
1 -
ω -
n
ω2
-1
-
a
0-a
n 2
ω(a1-a
n 2
+
_
_
1
b5
a6
ω2
1
+
_
_
b3
a7
ω3 _
ω2 _
_
1
b7
图11.4
国家高性能计算中心(合肥)
n 2
1
n 2
a 1 n1
(a0
an
2
)
பைடு நூலகம்
2l(a1
a ) n
2
1
4l 2 (a2
an
2
2
)
2l
n 2
1
(a n
2
1
n 2
1
an 1 )
(a0
an
2
)
~ l (a1
a ) n
2
1
~2l 2 (a2
a ) n
2
2
~
l
n 2
1
(a n
2
1
n 2
1
an 1 )
n 2
1
~
k
l
k
(
ak
a
n 2
k
)
k 0
l
0,1,,
n 2
1
因此,向量(b1, b3,...,bn1)T 是((a0
an
2
),(a1
a
n 2
1
)
,
.
.
.
,
(a n
2
1
n 2
1
an 1 ) )T 的DF T
并行计算
中国科学技术大学计算机科学与技术系 国家高性能计算中心(合肥)
2004年12月
第三篇 并行数值算法
第八章 基本通讯操作 第九章 稠密矩阵运算 第十章 线性方程组的求解 第十一章 快速傅里叶变换
第十一章 快速傅里叶变换
11.1 快速傅里叶变换 11.2 并行FFT算法
11.1 快速傅里叶变换(FFT)
,bn21
)T
注意推导中反复使用 n 1, n/ 2 1, ln 1, sn p p ,
ω2 =( 0,i)
ω3
ω1
ω4 =(-1,0)
ω8 =(1,0)
ω5
ω7
国家高性能计算中心(合肥) ω6 =(0,-i) 2019/9/26
9
串行FFT递归算法
n1
)T 是(a0
an
2
,
a1
a
n 2
1
,
.
.
.
,a
n 2
1
an 1 )T 的DF T
国家高性能计算中心(合肥)
2019/9/26
10
串行FFT递归算法
n1
奇数时:bl b2l1
a (2l1)k k
k 0
a0
2l1a1
a 2(2l 1) 2
+1
)
.
.
.
n
ω2
-1(a n 2
-1-an-1)
. DFT(n/2) .
.
DFT(n/2)
. .
.
国家高性能计算中心(合肥)
2019/9/26
12
串行FFT递归算法
特别地,n=8的FFT蝶式计算图(展开的)
a0
+
+
+
b0
a1
+
+
_
1
b4
a2
+
1
+
_
b2
a3
+
ω2 _
_
1
b6
a4
1
+
_
+
b1
a5
ω
2(n1)
(
n1)(n1)
an1
国家高性能计算中心(合肥)
2019/9/26
5
11.1 快速傅里叶变换(FFT)
11.1.1 离散傅里叶变换(DFT) 11.1.2 DFT的顺序代码 11.1.3 串行FFT递归算法 11.1.4 串行FFT非递归算法
DFT的顺序代码