《快速傅里叶变换(FFT)-第四章》

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

N=8点DFT的二次时域抽取分解图
X1 (k)=X3(k)+WN/2kX4(k) X1 (k+N/4)=X3(k)WN/2kX4(k) X2(k) = X5(k)+ WN/2kX6(k) X2(k+N/4) = X5(k) WN/2kX6(k)
k=0,1,…,N/4-1 ;
4.2 基2FFT算法
1、直接DFT运算N点运算: 复数乘次数:N×N 复数加次数:N×(N-1) 2、 用DIT-FFT作N点运算: 复数乘次数:M×N/2=N/2×log2N; 复加次数: 2 ×N/2×M= N×log2N。 整个运算流图中 有 M 级蝶形,每 一级运算流图中 有 N/2 个 蝶 形 , 每个蝶形需一次 复乘和两次复数 加运算。
e e
[W [W
2 2 j j ( m m lN ) N N
NN m m NN
e W
2 j m m N N
m m N m W W NW N N
[
对称性: W W W W
NN 3、FFT算法思想 m m
m m NN
NN m m NN
] ] W W
k Nk 2 N 2
N=8点的DIT-2FFT(时域抽取图)一次分解图
4.2 基2FFT算法
(3)第二次分解: 将x1(r)按r取奇、偶可分解成2个长度为N/4的子序列 x3(l)= x1(2l)、 l=0,1,…,N/4-1; x4(l) = x1(2l+1), 根据上面推导可得:X1 (k)= X3(k)+ WN/2kX4(k), k=0,1,…,N/2-1 X1 (k)=X3(k)+WN/2kX4(k), k=0,1,…,N/4-1; X1 (k+N/4)=X3(k)WN/2kX4(k), k=0,1,…,N/4-1; 将x2(r)按r取奇、偶可分解成2个长N/4的子序列 x5(l)= x2(2l) , l=0,1,…,N/4 x6(l) = x2(2l+1) ; 同理得 X2(k) = X5(k)+ WN/2kX6(k), k=0,1,…,N/4-1 ;
0
X (1)
X (2) X (3) WN
0
W N2
x(1)
x(5)
X (4)
X (5)
WN
0
W N1 WN
0
x(3) x(7)
WN0
W N2
W N3
X (6)
WN2
L=1级
L=2 N=8点DIT-FFT运算流图
L=3
X (7)
4.2 基2FFT算法
4.2.3 DIT―FFT算法与直接计算DFT运算量的比较
x(1) x(3) x(5) x(7)
X1(0)
N/2 点DFT
X1(1) X1(2) X1(3) X2(0) X2(1) X2(2) X2(3)
X (0) X (1)
X (2) X (3)
W N0 W N1
N/2 点DFT
X (4) X (5)
X (6) X (7)
W N2 W N3

N N 1 X ( k ) X ( k ) W X ( k ) k 0,1, 1 X (k ) X 1 (k ) W X (k ) k 0,1, 2 1 2 N NN k N X kk kk )) W X ) ) kk 0,1, 11 1 (( Nk 2 (k X(( 2 )) X X W X ( k 0,1, 1 N 2 22 2
频域抽取法FFT(简称DIF―FFT)。 1、时域抽取法FFT的算法思想:
将序列 x(n) 按 n 为奇、偶数分为 x1(n) 、 x2(n) 两组序列;用 2 个N/2点DFT来完成一个N点DFT的计算。 设序列x(n)的长度为N,且满足: N 2 M ,
M 为自然数
N (1) 按n的奇偶把 x(n) 分解为两个 N/2点的子序列 x ( r ) x(2r ), r 0,1, 1
4.2 基2FFT算法
(2)用N/2点X1(k)和X2(k)表示序列x(n)的N点DFT X(k)
kn kn X (k ) x (n )WN x ( n ) W N kn kn X ( k ) x ( n ) W x ( n ) W kn kn 奇数 n 偶数 n kn kn N N X (k ) X ( x ( n ) W x ( n ) W k ) x ( n ) W x ( n ) W N N N n nN
第4章 快速傅里叶变换(FFT)
本章主要内容
引言
基2FFT算法 进一步减少运算量的措施
4.1 引言
DFT是信号分析与处理中的一种重要变换。但直接计算DFT的
计算量与变换区间长度N的平方成正比,当N较大时,计算量 太大,直接用 DFT 算法进行谱分析和信号的实时处理是不切 实际的。
1965年发现了DFT的一种快速算法,使DFT的运算效率提高1-2
4.2 基2FFT算法 方法:
分解N为较小值:把序列分解为几个较短的序列,分别计算
其DFT值,可使乘法次数大大减少; 利用旋转因子WNk的周期性、对称性进行合并、归类处理,
lN )
以减少2 DFT 的运算次数。 2
W 周期性: e W
N
j
m
m m lN N N
eW
j
( m lN ) m lN N N
N / 2 1 N / 2 1 n n n n1 2 kr k (2 r 1) N / 2 1 N / 2 N / 2 1 N / 2 1 N / 2 1 N / 2 1 N N 2 kr k (2 r 1) 2 kr k (2 r 1) k (2 r 1) kn kn r 0 r 0 2 kr N N N N N N N N r1 0 Nr/ 20 1 N /2 n r 0 r 0 2 r 0 r 0 2 kr kn j kr N / 2 1 N / 2 1 N /2 1 /2 N /N 2 11 N1 N N 2 N k N / 2 2 kr j 2 2 kr / 2 1 N /1 2 1 2 kr 2 kr 2 kr k r 0 k 2 2N kr Nkr k ( 2 r 1) 2 r 0 2 1 N N 1 N N 1 N N r 0 N 2 N 2 N r 0 r 0 r 0 r 0 r 0 r 0 r 0 N / 2 1 N / 2 1 k 2 kr N / 2 1 N / 2 1 kr N k k 1 2 Nkr 1 N /2 2 N /2 1 N r 0 rN 0 r 0 r 0
X2(k+N/4) = X5(k) WN/2kX6(k), k=0,1,…,N/4-1;
4.2 基2FFT算法
x(0) x(4)
N/4 点 X3(1) DFT
N/4 点 X4(1) DFT
X3(0) X4(0)
X1(0) X1(1)
X (0) X (1)
x(2) x(6) x(1) x(5) x(3) x(7)
X5(1)
X6(0) X6(1) WN/4
0
X2(1)
WN/2
0
W N1 W N2 W N3
X (5)
X (6) X (7)
X2(2) X2(3)
WN/21
L=1级
L=2 N=8点DIT-FFT运算流图
L=3
4.2 基2FFT算法
x(0) X (0)
x(4)
x(2) x(6)
W N0
W N0 WN
WN/20
WN/21
X1(2) X1(3)
X (2) X (3)
WN
X5(0) N/4 点 X5(1) DFT
X6(0) N/4 点 X (1) 6 DFT WN/2 WN/21
0
X2(0) X2(1) X2(2) X2(3)
W N1
W N2 W N3
0
X (4) X (5) X (6) X (7)
mm NN
WN
m
N 2
m WN
不断地把长序列的DFT分解成几个短序列的DFT,并利用旋转
因子的周期性和对称性来减少DFT的运算次数。
mm 22 W W W W NN NN
4.2 基2FFT算法
4.2.2 时域抽取法基2FFT基本原理 FFT算法基本上分为两大类:时域抽取法 FFT( 简称 DIT-FFT) 和
考虑x(n)为复数序列 的一般情况,对某一
个k值,直接按上式
计算X(k)值需要N次 复数乘法、(N-1)次复
2、减少运算量的思路和方法
数加法。
思路: N 点 DFT 的复乘次数等于 N2 。把 N 点 DFT 分解为几个
较短的 DFT ,可使乘法次数大大减少。另外,旋转因子 WmN
具有周期性和对称性。
再次分解,对N=8点,可分解三次。
x(0)
x(4) WN/40 X3(0) X3(1) X1(0)
X (0)
X (1)
X1(1)
WN/20
x(2) x(6)
x(1) WN/4
0
X4(0)
X4(1) X5(0)
X1(2) X1(3)
X2(0) WN
0
X (2)
X (3) X (4)
WN/2
1
x(5)
x(3) x(7) WN/40
X1(k) X2(k) W Nk X1(k)+ WNkX2(k) X1(k)WNkX2(k)
图:蝶形运算符号
完成一个蝶形运算需要 一次复数乘和两次复数 加法运算,经过一次分 解后,共需要复数乘和 复数加的次数为 2(N/2)2+N/2和N2/2
4.2 基2FFT算法
x(0) x(2) x(4) x(6)
W e
2 Biblioteka Baidu j 2 kr 2 kr N N /2

X (k ) W X 2 (k )
注意:这里的k的取值范围为0,1,…,N-1
4.2 基2FFT算法
由于X1(k)和X2(k)均以N/2为周期,且 W
k k N 2 N 2 k N 2 k k 1 N 2 1 N 2 k 1 N 2
k N N 2 k, X(k)又可表示为: WN
个数量级,为数字信号处理技术应用于各种信号的实时处理 创造了条件,推动了数字处理技术的发展。 1984年,提出了分裂基快速算法,使运算效率进一步提高;
4.2 基2FFT算法
4.2.1 直接计算DFT的特点及减少运算量的基本途径 1.直接计算DFT 长度为N的有限长序列x(n)的DFT为:
kn X (k ) x(n )WN , k 0,1, , N 1 n 0 N 1

N N X(( ()k )W W X (k ) k 0,1, 1 这样将N点DFT分 1 X kk )) XX ( k X ( k ) k 0,1, 1 1 N2 2 解为两个N/2点的 X (k ) X ( k ) W X ( k ) k 0,1, 1 1 N N 2 N N DFT X(( ) X ( k )W W X (kk ) 0,1, k 0,1, 1 X kk 2 ) X ( k ) X ( k ) 1 2 N N 2 ) X (k ) W X (k ) k 0,1, 2 1 X (k 2 2 对上式的运算用下图所示的流图符号来表示
x ( r ) W x ( r )W x ( r ) W x ( r ) W W x ( r ) W x ( r ) x (2 r ) W x (2 1)W e W W x (r re ) W x ( r ) W
x ( r ) W x ( r )W X (k ) x ( r )W W x (r )W
1

N 2 1 x1 ( r ) x(2r ), r 0,1, N x1 ( r ) x(2r ), r 0,1, 2N 1 x2 ( r ) x(2r 1), r 0,1, 2 1 N 2 1 x2 ( r ) x(2r 1), r 0,1, N x2 ( r ) x(2r 1), r 0,1, 2 1
x (2r )W x (2r 1)W x (2 r ) W x (2 r 1) W x (2 r ) W x (2 r 1) W X (k ) x ( n ) W x ( n ) W )W x (2 r 1)W x(2r
相关文档
最新文档