第4章 快速傅里叶变换(FFT)--补充
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(n)10 nL 1 (r2 r3 ...rL ) nL 2 (r3r4 ...rL ) ... n1 (rL ) n0
二进制数倒位序
源自文库
[ p(n)]rL rL1 ...r2r1 (n0 n1...nL 2 nL 1 )rL rL1 ...r2r1
[ p(n)]10 n0 (rL 1rL 2 ...r2 r1 ) L1 n1 (rL 2 rL 3 ...r2 r1 ) L2 ... nL 2 r1 nL 1
N / 4 1
l 0
lk 3K x2 (l )WN W /4 N
N / 41
l 0
lk x3 (l )WN /4
3K X 1 (k ) WNK X 2 (k ) WN X 3 (k )
X 1 (k ) X 2 (k ) X 3 (k )
N / 2 1
r 0 l 0
nL 1 0
x( nL 1 , nL 2 ,...n1 , n0 )W
k0 4 L1 nL 1 N
nL1 0
3
x(nL 1 , nL 2 ,...n1 , n0 )W4k0 nL1
第4章 快速傅里叶变换
X 2 (k0 , k1 ,...n1 , n0 )
nL 2 0
L 1
X (k ) x(n)WNnk
n 0
N 1
3
n0 1 n1 1
nk ... x ( n , n ,... n , n ) W L1 L2 1 0 N , 0 k N 1 nL1 1
3
3
第4章 快速傅里叶变换
nk ( ni 4i )( ki 4i )
第4章 快速傅里叶变换
第4章 快速傅里叶变换
第4章 快速傅里叶变换
• Bb11-14
第4章 快速傅里叶变换 二、 N r1r2 的快速算法原理
nk X (k ) x(n )WN n 0 N 1
k=0, 1, …, N-1
N为一个复合数 N r1r2
第4章 快速傅里叶变换
nLM 0
3
3
4
L m
m 2
(
[ X m1 (k0 , k1 ,...km2 , nL m ...n1 , n0 )WN
L 2
ki 4i ) nLm
i 0
]W4km1nLm
X L (k0 , k1 ,...k L 1 )
nLM 0
(
[ X L 1 (k0 , k1 ,...k L 2 , n0 )WN i0
频率也由fs/30的整数倍变为fs/32的整数倍。在许多场合这种处理是
可接受的,不适应对某些特殊频率点有特别要求的场合。
第4章 快速傅里叶变换 (2)若N是一个复合数,即它可以分解成一些因子的乘积, 则可以用 FFT 的一般算法,即混合基 FFT 算法,如库利 - 图基
(CooleyTukey)算法,而基 -2 算法只是这种一般算法的特
X (k1 , k0 )
n0 0
r2 1
{[ x(n1 , n0 )WNr2 n1k0 ] WNn0 k0 } WNr1n0 k1
n1 0
r1 1
n0 0
r2 1
{[ x(n1 , n0 )Wr1n1k0 ] WNn0 k0 } Wr2n0 k1
3
X 1 ( k0 , nL 2 ,...n1 , n0 )W
k 0 4 L 2 nL 2 N
k1 4 L1 nL2 N
W
k 0 4 L 2 nL 2 N
nL 2 0
3
[ X 1 (k0 , nL 2 ,...n1 , n0 )W
]W4k1nL2
X m (k0 , k1 ,...km1 , nL m1...n1 , n0 )
第4章 快速傅里叶变换
4.8 分裂基FFT算法
当 时, 采 用 分 裂 基 算 法 可 进 一 步 降 低 运 算 量, n 为 偶 数 部 分 直 接 采 用 基---2 FFT 算 法 而 n 为 奇 数 部 分 则 用 基- 4 FFT 算 法.
第4章 快速傅里叶变换
X (k )
第4章 快速傅里叶变换 2. r进制( N r L )数n< r L
(n)r (nL1nL 2 ...n1n0 )r
(n)10 nL1r L1 nL2 r L2 ... n1r n0
r进制数倒位序
[ p(n)]r (n0 n1...nL 2 nL 1 )r
i 0 i 0
L 1
L 1
W
nk N
WN i0
L 1
(
L 1
ni 4 )(
i
i 0
L 1
ki 4i )
L 1 L 1 L 1
( ki 4i )4 n1 ( ki 4i )n0 ki 4i )4L1 nL1 ( ki 4i )4L2 nL2 WN i0 WN i0 ...WN i0 WN i0 (
N / 2 1
n 0
N 1
nk x(n )WN N / 4 1
r 0
x(2r )WN2 rk
l 0
(4 l 1) k x (4r 1)WN
N / 41
l 0
(4 l 3) k x (4r 3)WN
N / 2 1
r 0
rk K x1 (r )WN W /2 N
第4章 快速傅里叶变换
基-4的4点DFT
例。 总之,不管采用什么方法,计算DFT的高效算法是把计算长度 为N的序列的DFT逐次分解成计算长度较短序列的 DFT。这是 很多高效算法的标准方法和基本原理。
第4章 快速傅里叶变换
(3)若N为一个素数,要求准确的求出N点DFT
可用线性调频Z变换(Chirp-Z变换)算法
第4章 快速傅里叶变换
一、整数的多基多进制表示形式
第4章 快速傅里叶变换
第4章 快速傅里叶变换 补充
N为复合数的FFT算法
第4章 快速傅里叶变换
4.6 N为复合数的FFT算法
上面讨论的是序列的点数N为2的幂次(即N=2M)情况下,按时
间抽取和按频率抽取的基 -2FFT算法的基本原理。这种基-2FFT 算法在实际中使用得最多,因为它的程序简单,效率高,使用方
第4章 快速傅里叶变换
X1(0)
N/2点 DFT
X(0) X(N/4) X(N/2) -1 X(3N/4)
X1(N/4) X2(0)
N/4点 DFT
N/4点 DFT
-1 X3(0)
-J
-1
第4章 快速傅里叶变换
接 着N/2 点 DFT 可 以 按 以 上 同 样 办 法 分 解 成 三 部
分( 一 个N/4 点, 两 个 N/8 点DFT) 第 一 次 的 两 个N/4 点 DFT 也 分 别 可 同 样 分 成 三 个 部 分( 每 个 N/4 点 可 分 成 一 个 N/8 点, 两 个 N/16 点DFT ) 如 此 进 行 到 不 能 再 分 解 为 止.
ki 4i ) n0
]W4kL1n0
X (k ) X (kL1 ,...k1 , k0 ) X (k0 , k1 ,...k L1 )
第4章 快速傅里叶变换 步骤
第4章 快速傅里叶变换
第4章 快速傅里叶变换
第4章 快速傅里叶变换
第4章 快速傅里叶变换
第4章 快速傅里叶变换
W
k0 4 L1 nL1 N
W
(4 k1 k0 )4 L2 nL2 N
(
...WN i0
L2
ki 4 )4 n1
i
(
WN i0
L 1
ki 4i )n0
第4章 快速傅里叶变换
X (k )
3
n0 0 3
3
n1 0 3
nk ... x ( n , n ,... n , n ) W L1 L2 1 0 N nL1 0 k0 4 L1 nL1 N
3、
n0 k0 X 1' (k0 , n0 ) X 1 (k0 , n0 )WN
r2 1
4、利用 X 2 (k0 , k1 )
n0 0
X 1' (k0 , n0 )Wr2n0 k1
5、利用 X (k1 , k0 ) X 2 (k0 , k1 )
第4章 快速傅里叶变换
第4章 快速傅里叶变换 计算量
第4章 快速傅里叶变换
4.7 基 - 4 FFT 算 法
在
N r1r2 r3 ...rL
的 特 殊 情 况 下, ,混合基算法变
即当时 成 基-4 FFT 算 法
n ni 4i (ni 0,1, 2,3)
i 0 L 1
k ki 4i (ki 0,1, 2,3)
i 0
[ p(n)]10 n0 r L1 n1r L2 ... nL 2 r nL 1
第4章 快速傅里叶变换 3.多基多进制(混合基 N r1r2 r3 ...rL )数n< r1r2 r3 ...rL
(n)r1r2r3 ...rL (nL 1nL 2 ...n1n0 )r1r2r3 ...rL
1.二进制( N 2L)数n< 2 L
(n)2 (nL1nL2 ...n1n0 )2
(n)10 nL1 2 L1 nL2 2 L2 ... n1 2 n0
二进制数倒位序
[ p(n)]2 (n0 n1...nL2 nL1 )2
[ p(n)]10 n0 2 L1 n1 2 L2 ... nL2 2 nL1
n1 0 r1 1 1 0
r2 1
r1 1
r2 n1k0 N
W
r1n0 k1 N
W
n0 k0 N
W
r1r2 n1k1 N
n0 0
r2 1
n1 0
r2 n1k0 r1n0 k1 n0 k0 x ( n , n ) W W W 1 0 N N N
r1r2 n1k1 WN 1
第4章 快速傅里叶变换
X ( K ) X (r1k1 k0 ) X (k1 , k0 ) x(n)WNnk
i 0 N 1 n0 0
r2 1
n1 0
( r2 n1 n0 )( r1k1 k0 ) x ( r n n ) W 21 0 N
r1 1
n0 0
x(n , n )W
便。但实际上无法保证总是处理长度为2的整数幂次的序列。
若不满足N=2M,处理方法有以下几种:
(1)可将x(n)增补一些零值点,以使N增长到最邻近的一个2M
数值。
第4章 快速傅里叶变换
有限长序列补零之后,并不影响其频谱X(ejω),只不过其频谱的抽
样点数增加了,所造成的结果是增加了计算量而已。 但是,有时计算 量增加太多,浪费较大。例如, x(n)的点数N=300,则须补到N=29=512, 要补212个零值点,因而人们才研究N≠2M时的FFT算法。 有限长度序列补零后并不影响其频谱x(ejw),只是频谱的采样点数 增加了,当然,采样点的位置也有相应的变化。上例中由30点增加到 32点,采样点则由2π /30的整数倍变为2π /32的整数倍,对应的绝对
3
3
n0 0
...
n1 0
nL1 0
x( nL 1 , nL 2 ,...n1 , n0 )W
(
W
(4 k1 k0 )4 L2 nL2 N
...WN i0
ki 4
3
L2
i
)4 n1
(
WN i0
ki 4i )n0
L 1
X 1 (k0 , nL 2 ,...n1 , n0 )
n1 0
r1 1
r2 1
n0 0 r2 1
[ X 1 (k0 , n0 )WNn0 k0 ]Wr2n0 k1 X 1' (k0 , n0 )Wr2n0 k1 X 2 (k0 , k1 )
n0 0
第4章 快速傅里叶变换 1、
r1 1
n1k0 X ( k , n ) x ( n , n ) W 2、利用 1 0 0 1 0 r1 n1 0
x1 (r )W
rk N /2
N / 2 1
r 0 l 0
x(2r )WN2 rk x(4r 1)WN4lk x(4r 3)WN4lk
N / 4 1
l 0
x2 (l )W x3 (l )W
lk N /4
N / 4 1
l 0
N / 4 1
lk N /4
N / 4 1
二进制数倒位序
源自文库
[ p(n)]rL rL1 ...r2r1 (n0 n1...nL 2 nL 1 )rL rL1 ...r2r1
[ p(n)]10 n0 (rL 1rL 2 ...r2 r1 ) L1 n1 (rL 2 rL 3 ...r2 r1 ) L2 ... nL 2 r1 nL 1
N / 4 1
l 0
lk 3K x2 (l )WN W /4 N
N / 41
l 0
lk x3 (l )WN /4
3K X 1 (k ) WNK X 2 (k ) WN X 3 (k )
X 1 (k ) X 2 (k ) X 3 (k )
N / 2 1
r 0 l 0
nL 1 0
x( nL 1 , nL 2 ,...n1 , n0 )W
k0 4 L1 nL 1 N
nL1 0
3
x(nL 1 , nL 2 ,...n1 , n0 )W4k0 nL1
第4章 快速傅里叶变换
X 2 (k0 , k1 ,...n1 , n0 )
nL 2 0
L 1
X (k ) x(n)WNnk
n 0
N 1
3
n0 1 n1 1
nk ... x ( n , n ,... n , n ) W L1 L2 1 0 N , 0 k N 1 nL1 1
3
3
第4章 快速傅里叶变换
nk ( ni 4i )( ki 4i )
第4章 快速傅里叶变换
第4章 快速傅里叶变换
第4章 快速傅里叶变换
• Bb11-14
第4章 快速傅里叶变换 二、 N r1r2 的快速算法原理
nk X (k ) x(n )WN n 0 N 1
k=0, 1, …, N-1
N为一个复合数 N r1r2
第4章 快速傅里叶变换
nLM 0
3
3
4
L m
m 2
(
[ X m1 (k0 , k1 ,...km2 , nL m ...n1 , n0 )WN
L 2
ki 4i ) nLm
i 0
]W4km1nLm
X L (k0 , k1 ,...k L 1 )
nLM 0
(
[ X L 1 (k0 , k1 ,...k L 2 , n0 )WN i0
频率也由fs/30的整数倍变为fs/32的整数倍。在许多场合这种处理是
可接受的,不适应对某些特殊频率点有特别要求的场合。
第4章 快速傅里叶变换 (2)若N是一个复合数,即它可以分解成一些因子的乘积, 则可以用 FFT 的一般算法,即混合基 FFT 算法,如库利 - 图基
(CooleyTukey)算法,而基 -2 算法只是这种一般算法的特
X (k1 , k0 )
n0 0
r2 1
{[ x(n1 , n0 )WNr2 n1k0 ] WNn0 k0 } WNr1n0 k1
n1 0
r1 1
n0 0
r2 1
{[ x(n1 , n0 )Wr1n1k0 ] WNn0 k0 } Wr2n0 k1
3
X 1 ( k0 , nL 2 ,...n1 , n0 )W
k 0 4 L 2 nL 2 N
k1 4 L1 nL2 N
W
k 0 4 L 2 nL 2 N
nL 2 0
3
[ X 1 (k0 , nL 2 ,...n1 , n0 )W
]W4k1nL2
X m (k0 , k1 ,...km1 , nL m1...n1 , n0 )
第4章 快速傅里叶变换
4.8 分裂基FFT算法
当 时, 采 用 分 裂 基 算 法 可 进 一 步 降 低 运 算 量, n 为 偶 数 部 分 直 接 采 用 基---2 FFT 算 法 而 n 为 奇 数 部 分 则 用 基- 4 FFT 算 法.
第4章 快速傅里叶变换
X (k )
第4章 快速傅里叶变换 2. r进制( N r L )数n< r L
(n)r (nL1nL 2 ...n1n0 )r
(n)10 nL1r L1 nL2 r L2 ... n1r n0
r进制数倒位序
[ p(n)]r (n0 n1...nL 2 nL 1 )r
i 0 i 0
L 1
L 1
W
nk N
WN i0
L 1
(
L 1
ni 4 )(
i
i 0
L 1
ki 4i )
L 1 L 1 L 1
( ki 4i )4 n1 ( ki 4i )n0 ki 4i )4L1 nL1 ( ki 4i )4L2 nL2 WN i0 WN i0 ...WN i0 WN i0 (
N / 2 1
n 0
N 1
nk x(n )WN N / 4 1
r 0
x(2r )WN2 rk
l 0
(4 l 1) k x (4r 1)WN
N / 41
l 0
(4 l 3) k x (4r 3)WN
N / 2 1
r 0
rk K x1 (r )WN W /2 N
第4章 快速傅里叶变换
基-4的4点DFT
例。 总之,不管采用什么方法,计算DFT的高效算法是把计算长度 为N的序列的DFT逐次分解成计算长度较短序列的 DFT。这是 很多高效算法的标准方法和基本原理。
第4章 快速傅里叶变换
(3)若N为一个素数,要求准确的求出N点DFT
可用线性调频Z变换(Chirp-Z变换)算法
第4章 快速傅里叶变换
一、整数的多基多进制表示形式
第4章 快速傅里叶变换
第4章 快速傅里叶变换 补充
N为复合数的FFT算法
第4章 快速傅里叶变换
4.6 N为复合数的FFT算法
上面讨论的是序列的点数N为2的幂次(即N=2M)情况下,按时
间抽取和按频率抽取的基 -2FFT算法的基本原理。这种基-2FFT 算法在实际中使用得最多,因为它的程序简单,效率高,使用方
第4章 快速傅里叶变换
X1(0)
N/2点 DFT
X(0) X(N/4) X(N/2) -1 X(3N/4)
X1(N/4) X2(0)
N/4点 DFT
N/4点 DFT
-1 X3(0)
-J
-1
第4章 快速傅里叶变换
接 着N/2 点 DFT 可 以 按 以 上 同 样 办 法 分 解 成 三 部
分( 一 个N/4 点, 两 个 N/8 点DFT) 第 一 次 的 两 个N/4 点 DFT 也 分 别 可 同 样 分 成 三 个 部 分( 每 个 N/4 点 可 分 成 一 个 N/8 点, 两 个 N/16 点DFT ) 如 此 进 行 到 不 能 再 分 解 为 止.
ki 4i ) n0
]W4kL1n0
X (k ) X (kL1 ,...k1 , k0 ) X (k0 , k1 ,...k L1 )
第4章 快速傅里叶变换 步骤
第4章 快速傅里叶变换
第4章 快速傅里叶变换
第4章 快速傅里叶变换
第4章 快速傅里叶变换
第4章 快速傅里叶变换
W
k0 4 L1 nL1 N
W
(4 k1 k0 )4 L2 nL2 N
(
...WN i0
L2
ki 4 )4 n1
i
(
WN i0
L 1
ki 4i )n0
第4章 快速傅里叶变换
X (k )
3
n0 0 3
3
n1 0 3
nk ... x ( n , n ,... n , n ) W L1 L2 1 0 N nL1 0 k0 4 L1 nL1 N
3、
n0 k0 X 1' (k0 , n0 ) X 1 (k0 , n0 )WN
r2 1
4、利用 X 2 (k0 , k1 )
n0 0
X 1' (k0 , n0 )Wr2n0 k1
5、利用 X (k1 , k0 ) X 2 (k0 , k1 )
第4章 快速傅里叶变换
第4章 快速傅里叶变换 计算量
第4章 快速傅里叶变换
4.7 基 - 4 FFT 算 法
在
N r1r2 r3 ...rL
的 特 殊 情 况 下, ,混合基算法变
即当时 成 基-4 FFT 算 法
n ni 4i (ni 0,1, 2,3)
i 0 L 1
k ki 4i (ki 0,1, 2,3)
i 0
[ p(n)]10 n0 r L1 n1r L2 ... nL 2 r nL 1
第4章 快速傅里叶变换 3.多基多进制(混合基 N r1r2 r3 ...rL )数n< r1r2 r3 ...rL
(n)r1r2r3 ...rL (nL 1nL 2 ...n1n0 )r1r2r3 ...rL
1.二进制( N 2L)数n< 2 L
(n)2 (nL1nL2 ...n1n0 )2
(n)10 nL1 2 L1 nL2 2 L2 ... n1 2 n0
二进制数倒位序
[ p(n)]2 (n0 n1...nL2 nL1 )2
[ p(n)]10 n0 2 L1 n1 2 L2 ... nL2 2 nL1
n1 0 r1 1 1 0
r2 1
r1 1
r2 n1k0 N
W
r1n0 k1 N
W
n0 k0 N
W
r1r2 n1k1 N
n0 0
r2 1
n1 0
r2 n1k0 r1n0 k1 n0 k0 x ( n , n ) W W W 1 0 N N N
r1r2 n1k1 WN 1
第4章 快速傅里叶变换
X ( K ) X (r1k1 k0 ) X (k1 , k0 ) x(n)WNnk
i 0 N 1 n0 0
r2 1
n1 0
( r2 n1 n0 )( r1k1 k0 ) x ( r n n ) W 21 0 N
r1 1
n0 0
x(n , n )W
便。但实际上无法保证总是处理长度为2的整数幂次的序列。
若不满足N=2M,处理方法有以下几种:
(1)可将x(n)增补一些零值点,以使N增长到最邻近的一个2M
数值。
第4章 快速傅里叶变换
有限长序列补零之后,并不影响其频谱X(ejω),只不过其频谱的抽
样点数增加了,所造成的结果是增加了计算量而已。 但是,有时计算 量增加太多,浪费较大。例如, x(n)的点数N=300,则须补到N=29=512, 要补212个零值点,因而人们才研究N≠2M时的FFT算法。 有限长度序列补零后并不影响其频谱x(ejw),只是频谱的采样点数 增加了,当然,采样点的位置也有相应的变化。上例中由30点增加到 32点,采样点则由2π /30的整数倍变为2π /32的整数倍,对应的绝对
3
3
n0 0
...
n1 0
nL1 0
x( nL 1 , nL 2 ,...n1 , n0 )W
(
W
(4 k1 k0 )4 L2 nL2 N
...WN i0
ki 4
3
L2
i
)4 n1
(
WN i0
ki 4i )n0
L 1
X 1 (k0 , nL 2 ,...n1 , n0 )
n1 0
r1 1
r2 1
n0 0 r2 1
[ X 1 (k0 , n0 )WNn0 k0 ]Wr2n0 k1 X 1' (k0 , n0 )Wr2n0 k1 X 2 (k0 , k1 )
n0 0
第4章 快速傅里叶变换 1、
r1 1
n1k0 X ( k , n ) x ( n , n ) W 2、利用 1 0 0 1 0 r1 n1 0
x1 (r )W
rk N /2
N / 2 1
r 0 l 0
x(2r )WN2 rk x(4r 1)WN4lk x(4r 3)WN4lk
N / 4 1
l 0
x2 (l )W x3 (l )W
lk N /4
N / 4 1
l 0
N / 4 1
lk N /4
N / 4 1