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

合集下载

快速傅里叶变换FFT

快速傅里叶变换FFT
第4章 迅速傅里叶变换(FFT)
本章主要内容
▪ 引言 ▪ 基2FFT算法 ▪ 进一步降低运算量旳措施
4.1 引言
▪ DFT是信号分析与处理中旳一种主要变换。但直接计算DFT旳 计算量与变换区间长度N旳平方成正比,当N较大时,计算量 太大,直接用DFT算法进行谱分析和信号旳实时处理是不切 实际旳。
▪ 1965年发觉了DFT旳一种迅速算法,使DFT旳运算效率提升1-2 个数量级,为数字信号处理技术应用于多种信号旳实时处理 发明了条件,推动了数字处理技术旳发展。
r 0
x2 ( r )WN2 kr
X (k) x(n)WNkn x(n)WNkn
n
n
X(k) x(n)WNkn x(n)WNkn
n
n
X (k )
x(n)WNkn
x(n)WNkn
N / 21
N / 21
N / 21
N / 21
n
n
x(2r)WN2kr
x(2r 1)WNk(2r1) x(2r)WN2kr x(2r1)WNk(2r1)
4.2 基2FFT算法
2.旋转因子旳变化规律
N点DIT―FFT运算流图中,每个蝶形都要乘以旋转因子WpN,p 称为旋转因子旳指数。N=8 =23 时各级旳旋转因子
第一级:L=1, 有1个旋转因子:WNp =WN/4J =W2LJ J=0 第二级:L=2,有2个旋转因子:WNp =WN/2J =W2LJ J=0,1 第三级:L=3,有4个旋转因子:WNp =WNJ =W2LJ J=0,1,2,3 对于N=2M 旳一般情况,第L级共有2L-1个不同旳旋转因子:
▪ 1984年,提出了分裂基迅速算法,使运算效率进一步提升;
4.2 基2FFT算法

第4章 快速傅里叶变换(FFT)1资料

第4章  快速傅里叶变换(FFT)1资料
设序列x(n)的N长度2M为, NM,为自且然满数 足
按n的奇偶把x(n)分解为两个N/2点的子序列
x1(r) x(2r),
r 0,1, N 1 2
x2(r) x(2r 1),
r 0,1, N 1 2
则x(n)的DFT为
X (k ) x(n)WNkn x(n)WNkn
n
n
N / 21
DFT的FFT运算量
N=8点的直接DFT的计算量为:N2次(64次)复数 相乘,N(N-1)次(8*(8-1)=56次)复数相加.共计120 次。
(b)求 一个蝶形结需要的运算量
要运算一个蝶形结,需要一次乘 法 WNk X 2 (k) , 两次加法。
X (k) X1(k) WNk X 2 (k) X (k N / 2) X1(k) WNk X 2 (k)
运算。
X
2
(k)及2
N 2
次(8次)加法
所以8点FFT求X (k)共需 N 2 N N (N 1) N 2 36次复数乘法,
22
2
2
N ( N 1) N N 2 32次复数加法,共计为68次。看出仅做一次
2
2
分解就可以节省约一半计算量。
(e)将N=8点分解成2个4点的DFT
的信号流图
x1(r)
i0
N / 41
x4(k)
x4 (l)WNkl/ 4 DFT [x4 (l)]
i0
同理,由X3(k)和X4(k)的周期性和Wm N/2的对称
性 Wk+N/4 N/2=-Wk N/2 最后得到:
X X
1 1
(k (k
) X3(k N / 4)
) WNk / 2 X 4 (k ) X 3(k ) WNk /

《快速傅里叶变换》PPT课件

《快速傅里叶变换》PPT课件
然后计算圆周卷积
此时y(n)能代表线性卷积结果。
用FFT计算y(n)步骤如下: (1)求
,N点
(2)求
,N点
(3)计算

(4)求
,N点
工作量分析 FFT计算工作量
(4.105)
用线性相位滤波器来比较直接计算线性卷积和FFT法 计算线性卷积时比值
(4.106)
运算量分析:
(1)x(n)与h(n)点数差不多,设M=L,
2
X1 k
x1
r
W rk N2
x
2r
W rk N2
r0
r0
(4.6)
N 1
N 1
2
2
X2 k
x2
r
W rk N2
x
2r
1
W rk N2
(4.7)
r 0
r0
应用系数的周期性
可得
N 1
X1
N 2
k
2 r 0
x1
r
W x r
N 2
k
N2
N 1 2
1
r0
比较可知,只要把DFT运算中的每一个系数
变成
,最后再乘常数1/N,则以上所有
按时间抽选或按频率抽选的FFT都可以拿来运算
IDFT。
不改FFT的程序计算IFFT方法: 对4.29式取共轭
因而
4.6 N为复合数的FFT算法 --混合基算法
当N不满足
时,可有以下几种办法
(1)将x(n)补一些零值点的办法
y(n)也是有限长序列,其点数为L+M-1。 2. 线性卷积运算量 乘法次数
线性相位滤波器满足条件
运算结构如图5.26,5.27所示 线性相位FIR滤波器的乘法运算量

数字信号处理 第4章 快速傅里叶变换(FFT)-资料

数字信号处理  第4章  快速傅里叶变换(FFT)-资料

x[0]
x[2]
W20
x[1]
x[3] W20
X1[0]
2点DFT X1[1] 1 X2[0]
2点DFT X2[1] 1
W40
1
W41
1
X [0] X [1] X [2] X [3]
4点基2时间抽取FFT算法流图
x[0]
x[2]
W40
x[1]
x[3]
W40
X1[0]
X1[1] 1
X2[0]
W40 1
W80 W80
2点DFT XX111[11[]1]
1 X4X1点21[20[]D0W] FW80T40
2点DFT XX121[21[]1W] W82411
1
1
xx[[11]]
XX212[10[]0]
xx[[35]] xx[[53]] xx[[77]]
W80 W80
2点DFT XX212[11[]1]
X2[1]
W41
1
1
X[0] X[1] X[2] X[3]
X[8mX点[m4基]]2X时X11[[间mm]]抽WW取88mmFXXF22[[Tmm算]],, 法mm流 00图,,11,,22,,33
x[0]
X1[0]
X [0]
x[2]
X1[1]
X [1]
x[4]
4点DFT
X1[2]
X [2]
x[6]
N=2
x[k]={x[0], x[1]}
X[0] x[0] W20 x[1] X [1] x[0] W21x[1] x[0] W20 x[1]
x[0]
X [0]
x[1] W20
-1
X [1]

课后习题及答案第4章快速傅里叶变换习题答案.pdf

课后习题及答案第4章快速傅里叶变换习题答案.pdf

和共轭反对称分量, 即
F(k)=X(k)+jY(k)=Fep(k)+Fop(k) 计算一次 N 点 IFFT 得到
f(n)=IFFT[F(k)]=Re[f(n)]+j Im[f(n)] 由 DFT 的共轭对称性可知
Re[f(n)]=IDFT[Fep(k)]=IDFT[X(k)]=x(n) j Im[f(n)]=IDFT[Fop(k)]=IDFT[jY(k)]=jy(n)
X (k + N ) = X1(k) −W2kN X 2 (k)
k = 0,1,L, N −1
由上式可解出
X1(k)
=
1 2
[
X
(k)
+
X
(k
+
N )]
X
2
(k)
=
1 2
[X
(k)
+
X
(k
+
N
)]W2−Nk
k = 0,1, 2,L, N −1
由以上分析可得出运算过程如下:
(1)由 X(k)计算出 X1(k)和 X2(k):
Xk=conj(Xk);
%对 Xk 取复共轭
xn=conj(fft(Xk, N))/N; %按照所给算法公式计算 IFFT
分别对单位脉冲序列、 长度为 8 的矩形序列和三角序列进行 FFT, 并调
用函数 ifft46 计算 IFFT 变换, 验证函数 ifft46 的程序 ex406.m 如下:
%程序 ex406.m
Tc = 2TF +1024 次复数乘计算时间 = 2 × 0.1536×10−3 +10×10−9 ×1024
= 0.317 44 ms 可实时处理的信号最高频率 fmax 为

第4章:快速傅里叶变换

第4章:快速傅里叶变换

2次复数乘,1组
令:X 0 (0) x(0) X 0 (1) x(2) X 0 (2) x(1) X 0 (3) x (3)
X 0 (0) DFT {x(0)} x(0); X 0 (1) DFT {x(2)} x(2); X 0 (2) DFT {x(1)} x(1); X 0 (3) DFT {x(3)} x(3);
X 1 (0) X 1 (1) X 1 (2) X 1 (3)
W40
W41
W40
W41
-1
-1
X 2 (0) X 1 (0) W40 X 1 (2) X 2 (1) X 1 (1) W41 X 1 (3) X 2 (2) X 1 (0) W40 X 1 (2) X 2 (3) X 1 (1) W41 X 1 (3)
X 1 (0) X 0 (0) W20 X 0 (1) x(0) x(2) X 1 (1) X 0 (0) W20 X 0 (1) x(0) x(2) X 1 (2) X 0 (2) W20 X 0 (3) x(1) x(3) X 1 (3) X 0 (2) W20 X 0 (3) x(1) x(3)
输入端输出端仅取少数点的Pruning算法 频谱细化的ZoomFFT技术——CZT算法 简单细化要付出巨大代价。快速算法
时间抽取(DIT)基2 FFT算法
1 X (0) 1 1 X (1) 1 1 W 1 4 X (2) 1 1 1 X (3) 1 1 W41 1 x(0) [ x(0) x(2)] [ x(1) x(3)] W41 x(2) [ x(0) x(2)] [ x(1) x(3)]W41 1 x(1) [ x(0) x(2)] [ x(1) x(3)] 1 1 W4 x(3) [ x(0) x(2)] [ x(1) x(3)]W4

第四章 快速傅里叶变换(FFT)_肖太龙

第四章 快速傅里叶变换(FFT)_肖太龙

分解为两个N/2点的子序列
X (k )
n 奇数 N /2 1

kn x(n)WN
n 偶数 N /2 1

kn x(n)WN

r 0
2 kr x(2r )WN

r 0
k (2 r 1) x(2r 1)WN
N /2 1

r 0
k x1 (r ) WN
N /2 1
• 首先我们根据奈奎斯特定律得到:Fs 2 fc
fc

为连续信号的截至(最高)频率(因为它可能有很多频率
成分)。现在问题就是取样点N的选取?现在我们从序列的
FT说起!
• FT完成的任务就是对时域连续信号抽样之后通过序列的傅
里叶变换得到的频谱关系,我们知道这个谱是连续的。此
时的谱是一个周期谱,那么周期是多少呢?是不是与时域 采样频率有关系呢?答案是肯定的,此时的周期就是 Fs
WN
WN
3
2
W
2 N
8点DIT-FFT运算流图
从上面的蝶形算法,当 N 2M
时,其运算应该有
M级蝶形,每一级都由N/2个蝶形运算构成。因此每一级运算 都需要N/2次复数乘法和N次复数加法,所以M级蝶形运算的乘 法次数为: 加法次数:
N N N CM = M log 2 2 2
CA N M N log
N 2 N N ( N 1) N2 2( ) 2 2 2 2 N 1
复数加法次数为
N N N2 N ( 1) 2 2 2 2
类似地,我们将 x1 (r )
x 序列 3 (l )和x4 (l )
按奇偶分解成两个N/4点子
x3 ( l ) x1 (2l ) N ,其表达式分别如下: , l 0,1, , 1 x4 (l ) x1 (2l 1) 4

第4章 快速傅里叶变换(FFT)

第4章  快速傅里叶变换(FFT)

r 0 N / 2 1
由于 所以
2 k r W e N
2 j 2 k r N
e
2 j k r N 2
r 0 N / 2 1 k N 2 r 0
k r W N /2
k r k X ( k ) x ( r ) W Wx ( r ) W X ( k ) W X ( k ) N 1 / 2 1 N 2 r 0 k r N / 2
则x(n)的DFT为
k n k n X ( k ) xn () W xn ( ) W N N n 偶 数 n 奇 数
2 k r kr ( 2 1 ) x ( 2 r ) W x ( 21 r ) W N N
N / 2 1
N / 2 1
2 k r 2 k r x ( r ) WW x ( r ) W N 1 N r 0
二.旋转因子W
m N
的周期性和对称性
1.周期性表现为
m l N W e N 2 j ( m l N ) N
e
2 j m N
m W N
(4.2.2)
2.对称性表现为
m N m N m m W W [ W ] W 或者 N N N N N m 2 N
4.FFT应用(见第三章)
习题
1. 3.
画8点基2 DIT-FFT和8点基2 DIF-FFT 算法运算流图
4.2 基2FFT算法
4.2.1 直接计算DFT的特点
及减少运算量的基本途径
一.DFT的运算次数
N 点 有 限 长 序 列 x () n
n k D F TX : ( k ) D F T [ xn () ] xn ( ) W N n 0 N 1
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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 个 蝶 形 , 每个蝶形需一次 复乘和两次复数 加运算。
第4章 快速傅里叶变换(FFT)
本章主要内容
引言
基2FFT算法 进一步减少运算量的措施
4.1 引言
DFT是信号分析与处理中的一种重要变换。但直接计算DFT的
计算量与变换区间长度N的平方成正比,当N较大时,计算量 太大,直接用 DFT 算法进行谱分析和信号的实时处理是不切 实际的。
1965年发现了DFT的一种快速算法,使DFT的运算效率提高1-2
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)
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 (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
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
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 ;
W e
2 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
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
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
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

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(n)为复数序列 的一般情况,对某一
个k值,直接按上式
计算X(k)值需要N次 复数乘法、(N-1)次复
2、减少运算量的思路和方法
数加法。
思路: N 点 DFT 的复乘次数等于 N2 。把 N 点 DFT 分解为几个
较短的 DFT ,可使乘法次数大大减少。另外,旋转因子 WmN
具有周期性和对称性。
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
再次分解,对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
频域抽取法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
个数量级,为数字信号处理技术应用于各种信号的实时处理 创造了条件,推动了数字处理技术的发展。 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
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) 和
4.2 基2FFT算法
(2)用N/2点X1(k)和X2(k)表示序列x(n)的N点DFT X(k)
相关文档
最新文档