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

合集下载

数字信号处理课件第4章快速傅里叶变换FF

数字信号处理课件第4章快速傅里叶变换FF
雷达信号压缩
通过FFT对雷达信号进行频谱分析,实现雷 达数据的压缩,减小存储空间和传输带宽。
谢谢聆听
05 FFT的局限性与挑战
浮点运算的开销问题
浮点运算开销
快速傅里叶变换(FFT)算法在实 现过程中需要进行大量的浮点运 算,这可能导致计算成本较高, 尤其是在处理大规模数据时。
硬件资源需求
由于FFT的浮点运算密集特性,对 计算设备的硬件资源(如CPU、 GPU等)要求较高,需要具备高 性能的计算能力。
FFT的软件实现
C/C实现
01
使用C或C等通用编程语言实现FFT算法,具有较好的通用性和
可移植性。
优化编译器
02
利用现代编译器的优化功能,如向量化、内联等,可以提高软
件实现的计算速度。
并行计算框架
03
利用OpenMP、CUDA等并行计算框架,可以实现多核或多
GPU上的并行计算。
FFT的优化方法
算法改进
FFT的历史与发展
历史
FFT的诞生可以追溯到1960年代,其发展经历了多个阶段,包括库利-图基算法、威尔金森算法、桑德斯算法等 。
发展
随着计算机技术的不断进步,FFT算法在实现方式、精度、并行化等方面不断得到优化和改进,以满足不同应用 场景的需求。
02 FFT的基本算法
递归算法
递归算法是一种基于数学归纳法的算法,通过将问题分解为更小的子问题来解决 问题。在FFT中,递归算法将一个长度为N的DFT问题分解为两个长度为N/2的 DFT问题,直到最后分解为基本的DFT问题。
特别是在信号处理领域,FFT的应用非常广泛。
FFT与Z变换的关系
定义
Z变换是离散时间信号 到复平面上的扩展,而 FFT是频域的一种快速 计算方法。

数字信号处理DSP第4章

数字信号处理DSP第4章
G[3] 1
k 0,1, , N 1
2
13
4.2 按时间抽取(DIT)的基2–FFT算法
将系数统一为 WNk 2 WN2k ,则可得
x[0]
N 4点
x[4]
DFT
G[0]
X [0]
G[1]
X [1]
x[2]
N 4点
WN0
x[6]
DFT
WN2
G[2]
1 G[3]
1
X [2] X [3]
x[1]
N 4点
X m1[i] WNr X m1[ j] , X m1[i] WNr X m1[ j]
m 1, 2 ,
每一个蝶形需要一次复数乘法和两次复数加法。
17
4.2 按时间抽取(DIT)的基2–FFT算法
N点的DIT-FFT计算量为
复数乘法:
1
N 2
log2
N
N 2
复数加法:
2
N 2
log2
N
N
例: 如果每次复数乘法需要100us,每次复数加法需要20us,来 计算N=1024点DFT,则需要
12
4.2 按时间抽取(DIT)的基2–FFT算法
同理
( N 4)1
( N 4)1
G[k] DFT[g[r]]
g[2l]WN2lk2
g[2l 1]WN(22l1)k
l 0
l 0
( N 4)1
( N 4)1
g[2l]WNlk 4 WNk 2
g[2l 1]WNlk 4 ,
l 0
l 0
k 0,1,
(3) WN0 WN4 WN8 WN12 WN16 WN20 WN24 WN28
或 WN4i i 0,1, 2, 3, 4, 5, 6, 7 (dm 1)

数字信号处理第4章快速傅里叶变换FFT

数字信号处理第4章快速傅里叶变换FFT

X 6(k)
x6 (l)WNkl/ 4 DFT [x6(l)]
i0
x5 (l ) x6 (l )

x2 x2
(2l (2l
)
1)

,
l

0,1, N
/
4
1
(4.2.11)
课件
12
第4章 快速傅里叶变换(FFT)
x(0 )
N/4点 X3(0 )
x(4 )
DFT X3(1 )
e N
j 2 m
e N
WNm
(4.2.2)
其对称性表现为
WNm WNN m 或者 [WNN m ] WNm
m N
WN 2
WNm
课件
4
第4章 快速傅里叶变换(FFT)
4.2.2 时域抽取法基2FFT基本原理 FFT 算 法 基 本 上 分 为 两 大 类 : 时 域 抽 取 法
课件
21
第4章 快速傅里叶变换(FFT)
x(0 )
N/4点
X(0 )
x(1 )
DFT
X(4 )
x(2 )
W
0 N
N/4点
X(2 )
x(3 )
W
2 N
DFT
X(6 )
x(4 )
W
0 N
N/4点
X(1 )
x(5 )
W
1 N
DFT
X(5 )
x(6 )
W
2 N
W
0 N
N/4点
X(3 )
x(7 )
W
3 N
W
X
(k

N 2
)

数字信号处理课后答案+第4章(高西全丁美玉第三版)

数字信号处理课后答案+第4章(高西全丁美玉第三版)

6*. 按照下面的IDFT算法编写MATLAB语言 IFFT程 序, 其中的FFT部分不用写出清单, 可调用fft函数。 并分 别对单位脉冲序列、 矩形序列、 三角序列和正弦序列进行 FFT和IFFT变换, 验证所编程序。
解: 为了使用灵活方便, 将本题所给算法公式作为函 数编写ifft46.m如下: %函数ifft46.m %按照所给算法公式计算IFET function xn=ifft46(Xk, N) Xk=conj(Xk); %对Xk取复共轭 xn=conj(fft(Xk, N))/N; %按照所给算法公式计算IFFT 分别对单位脉冲序列、 长度为8的矩形序列和三角序列 进行FFT, 并调用函数ifft46计算IFFT变换, 验证函数 ifft46的程序ex406.m如下:
快速卷积时, 需要计算一次N点FFT(考虑到H(k)= DFT[h(n)]已计算好存入内存)、 N次频域复数乘法和 一次N点IFFT。 所以, 计算1024点快速卷积的计算时间Tc 约为
Fs <
1024 = 15 625 次 /秒 65536 × 10−6
Fs 15625 = = 7.8125 kHz 2 2
1 x ( n) = IDFT[ X ( k )] = [DFT[ X * ( k )]]* N
%程序ex406.m %调用fft函数计算IDFT x1n=1; %输入单位脉冲序列x1n x2n=[1 1 1 1 1 1 1 1]; %输入矩形序列向量x2n x3n=[1 2 3 4 4 3 2 1]; %输入三角序列序列向量x3n N=8; X1k=fft(x1n, N); X2k=fft(x2n, N); X3k=fft(x3n, N); %计算x1n的N点DFT %计算x2n的N点DFT %计算x3n的N点DFT

数字信号处理第四章快速傅里叶变换PPT课件

数字信号处理第四章快速傅里叶变换PPT课件

2N (2N – 1)
复乘的加
法次数
4
4.2 FFT:直接计算 DFT 的问题及改进
如 N=512、1024 和 8192 时,DFT 的乘法运算 N2 = 5122 = 218 = 262144(26万次) N2 = 10242 = 220 = 1048576(105万次) N2 = 81922 = 226 = 67108864(6千7百万次)
Dr. James W. Cooley
Worked at IBM Watson Research Center in Yorktown Heights, N.Y..After his retirement from IBM in 1991, he joined the Electrical Engineering Department at the University of Rhode Island.
x(0)
x(2)
-1
x(1)
x(3)
-1 W41
X(0) X(0)x(0) x(2)x(1) x(3)
X(1) X(1)x(0) x(2)x(1) x(3)W41 只需要 1
-1 X(2) X(2)x(0) x(2)x(1) x(3)
次复数乘
-1
X(3) X(3)x(0) x(2)x(1) x(3)W41
4.1 FFT :引言
FFT: Fast Fourier Transform 1965 James W. Cooley 和 John W. Tukey 在 《》
(《Mathematics of Computation》)上发表了“ 一种 用机器计算复序列傅立叶级数的算法(An algorithm for the machine calculation of complex Fourier series)” 论文。 自此之后,新的算法不断涌现。一种是对N等于 2 的整 数次幂的算法,如基 2 算法,基 4 算法。另一种是N不 等于 2 的整数次幂的算法,例如 Winagrad 算法,素因 子算法。

数字信号处理 第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]

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

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

方法: 分解N为较小值:把序列分解为几个较短的 序列,分别计算其DFT值; 利用旋转因子WNk的周期性、对称性、可 约性进行合并、归类处理,以减少DFT的运 算次数。 k ( kn WN m WNN m WN ( nlN ) WNk lN ) n WN 周期性: N m m N m N m m m m 对称性:Wm WNm [W WN N WNN [WNNN m ]] WN WN 2 WN WN 可约性:W mN N W knmW kn / m W kn m kmn ,m 2 2
x ( r ) W x ( r )W x ( r ) W x ( r )W e (r W x r) xxr) W( r ) W (WW (r )W W e W (2 ) x x x(2 r 1)
W e
2 j 2 kr 2 kr N N /2
N 2
2 这样将N点DFT分解为两个N/2点的DFT
N X (k ) X 1 (k ) W X 2k(k ) k 0,1, 1 N X (k ) X 1 (k ) WN X 2 (k ) k 0,1, N 1 2 k X (kN X 1 (k ) WN X 2 (k ) k 0,1, 2 1 ) N2 k X (k N X 1 (k ) WN X 2 (k ) k 0,1, 1 N ) k X (k 2 N X 1 (k ) WN X 2 (k ) k 0,1, N 1 ) 2 k 2 X (k ) X (k ) W X (k ) k 0,1, 2 1
4.1 离散傅里叶变换的高效计算思路 DFT是信号分析与处理中的一种重要变换。但直接 计算DFT的计算量与变换区间长度N的平方成正比, 当N较大时,计算量太大,直接用DFT算法进行谱分 析和信号的实时处理是不切实际的。

详解FFT(快速傅里叶变换FFT

详解FFT(快速傅里叶变换FFT

knN W N N第四章 快速傅里叶变换有限长序列可以通过离散傅里叶变换(DFT)将其频域也离散化成有限长 序列.但其计算量太大,很难实时地处理问题,因此引出了快速傅里叶变换 (FFT). 1965 年,Cooley 和 Tukey 提出了计算离散傅里叶变换(DFT )的快 速算法,将 DFT 的运算量减少了几个数量级。

从此,对快速傅里叶变换(FFT ) 算法的研究便不断深入,数字信号处理这门新兴学科也随 FFT 的出现和发 展而迅速发展。

根据对序列分解与选取方法的不同而产生了 FFT 的多种算 法,基本算法是基2DIT 和基2DIF 。

FFT 在离散傅里叶反变换、线性卷积 和线性相关等方面也有重要应用。

快速傅里叶变换(FFT )是计算离散傅里叶变换(DFT )的快速算法。

DFT 的定义式为N −1X (k ) = ∑ x (n )W NR N (k )n =0在所有复指数值 W kn 的值全部已算好的情况下,要计算一个 X (k ) 需要 N 次复数乘法和 N -1 次复数加法。

算出全部 N 点 X (k ) 共需 N 2次复数乘法和 N ( N − 1) 次复数加法。

即计算量是与 N 2成正比的。

FFT 的基本思想:将大点数的 DFT 分解为若干个小点数 DFT 的组合, 从而减少运算量。

W N 因子具有以下两个特性,可使 DFT 运算量尽量分解为小点数的 DFT运算:(1) 周期性:( k + N ) nN= W kn= W ( n + N ) k(2) 对称性:W( k + N / 2 )= −W kNN利用这两个性质,可以使 DFT 运算中有些项合并,以减少乘法次数。

例子:求当N=4 时,X(2)的值4 NNN3∑44444X (2) = n =0x (n )W 2 n = x (0)W 0 + x (1)W 2 + x (2)W 4 + x (3)W 6= [ x (0) + x (2)]W 0 + [ x (1) + x (3)]W 2(周期性)4=[ x (0) + x (2)]-[ x (1) + x (3)]W 04(对称性)通过合并,使乘法次数由 4 次减少到 1 次,运算量减少。

数字信号处理中的快速傅里叶变换

数字信号处理中的快速傅里叶变换

数字信号处理中的快速傅里叶变换快速傅里叶变换(Fast Fourier Transform, FFT)是数字信号处理中一种重要的算法,用于将时域信号转换为频域信号。

通过将信号分解成不同频率的正弦和余弦波,可以提取出信号的频谱信息,进而进行频域分析和滤波等操作。

本文将介绍快速傅里叶变换的原理、算法流程以及在数字信号处理中的应用。

一、快速傅里叶变换的原理快速傅里叶变换是以傅里叶变换为基础的一种高效的算法。

傅里叶变换是将一个周期函数(或有限长的信号)分解成若干个不同频率的正弦和余弦波的叠加。

这些正弦和余弦波的频率和振幅反映了原始信号的频谱特征。

传统的傅里叶变换算法复杂度较高,难以在实时信号处理中应用。

而快速傅里叶变换通过巧妙地利用信号的对称性和周期性,将传统傅里叶变换的复杂度从O(n^2)降低到O(nlogn),大大提高了计算效率。

二、快速傅里叶变换的算法流程快速傅里叶变换算法采用分治法的思想,将信号逐步分解成更小的子问题,并通过递归地计算子问题的频域结果来获得最终的结果。

其算法流程如下:1. 输入原始信号,设信号长度为N。

2. 如果N为1,则直接返回原始信号。

3. 将原始信号分为偶数项和奇数项两部分。

4. 对偶数项序列进行快速傅里叶变换,得到频域结果D1。

5. 对奇数项序列进行快速傅里叶变换,得到频域结果D2。

6. 根据傅里叶变换的性质,将D1和D2组合成整体的频域结果,得到最终结果。

7. 返回最终结果。

三、快速傅里叶变换在数字信号处理中的应用1. 频谱分析:快速傅里叶变换可以将信号从时域转换到频域,通过分析信号的频谱特征,可以提取信号的频率成分,并得到各频率成分的振幅和相位信息。

在音频、图像处理等领域,频谱分析是常见的操作,可以实现音乐信号的频谱可视化、图像去噪和图像压缩等任务。

2. 滤波操作:快速傅里叶变换可以将信号转换到频域后进行滤波操作。

在通信系统中,为了提高信号抗干扰能力和传输效率,通常使用滤波器对信号进行处理。

数字信号与处理第4章 快速傅里叶变换

数字信号与处理第4章 快速傅里叶变换
x2(0 )=x(1 ) x2(1 )=x(3 )
x2(2 )=x(5 ) x2(3 )=x(7 )
X1(0 )
X1(1 ) N点 2 X1(2 ) DFT
X1(3 )
N点 2 DFT
X2(0 ) WN0 X2(1 ) WN1
X2(2 ) WN2 X2(3 ) WN3
按时间抽取将一个N点DFT分解 为两个N/2点DFT(N=8)
一、 算法原理
设序列x(n)长度为N,且满足N=2M,M为正整数。按n的奇偶 把x(n)分解为两个N/2点的子序列:
x( 2r ) x1( r ) x( 2r 1) x2( r )
r 0,1, , N 1 2
第4章 快速傅里叶变换
则可将DFT化为 N 1
N 1
N 1
X (k ) DFT[x(n)] x(n)WNnk x(n)WNnk x(n)WNnk
第4章 快速傅里叶变换
第4章 快速傅里叶变换
4.1 引言 4.2 直接计算DFT的问题及改进的途径 4.3 按时间抽取(DIT)的基2-FFT算法 4.4 按频率抽取(DIF)的基2-FFT算法 4.5离散傅里叶反变换(IDFT)的快速算法 4.6 N为复合数的FFT算法 4.9 线性调频Z变换(Chirp-Z变换)算法 4.10 FFT的其他应用
W W r
k
N
2
rk
N /2
N /2
X1
N 2
k
N 2
1
x1(r
r
)WN
/
N
2 2
k
r0
N 1 2
x1(r)WNrk/ 2
r0
X1(k)
第4章 快速傅里叶变换
这样可得到

《数字信号处理教学课件》第四章 快速傅立叶变换

《数字信号处理教学课件》第四章 快速傅立叶变换

l
)W
( 2l 1) N /2
k
l0
l0
N / 41
N / 41

x5
(l
)W
lk N/
4

Wk N /2
x6
(l
)W
lk N/
4
l0
l0

X
5
(
k
)

W
K N/
2
X
6
(
k
)
X2(k)

X
5
(k
)

W
k N
/
2
X
6
(
k
)

X 2 (k

N 4)

X
5
(
k
)

W
k N
/
2
X
6
(
得到:
x(2r) x1(r) x(2r 1) x2(r)

r 0,..., N 2 1
带入DFT中
X (k) DFT[ x(n)]
N 1
x(n)WNnk n0
N 1
N 1

x(
n)W
nk N

x(n)W
nk N
n0
n为 偶 数
n0
n为 奇 数
N点 DFT
复乘:
N2
N/2点 DFT
N/2点 DFT
N/4点 DFT N/4点 DFT N/4点 DFT N/4点 DFT
…….

N
2


N
2
2 2
N2 2

N

数字信号处理课件第4章

数字信号处理课件第4章
N 2
N −1
2 ( = ∑ x(2r )WN rk + ∑ x(2r + 1)WN2 r +1) k r =0
N 2
−1
N 2
−1
r =0
2 k 2 = ∑ x1 (r )(WN ) rk + WN ∑ x2 (r )(WN ) rk r =0 r =0
−1
N 2
−1
根据可约性,W = e
2 N
N 2
X1(k + N ) = X3 (k) −WNk X4 (k), k = 0,1,L, N −1 4 4
2
(二) N/4点DFT
同样对n为奇数时 , 点分为两个N/4点的 同样对 为奇数时, N/2点分为两个 为奇数时 点分为两个 点的 序列: 序列 x5 (l) = x2 (2l), l = 0,1,L, N −1 4
3
k 则有:X ( k ) = X 1 (k ) + WN X 2 (k ) k X (k + 4) = X 1 (k ) − WN X 2 (k ), k = 0,1,2,3
(一) N/2点DFT 一 点
整个过程如下图所示: 整个过程如下图所示
x1(0)=x(0) )= ( x1(1)= (2) )=x( x1(2)= (4) )=x( x1(3)= (6) )=x( x2(0)= (1) )=x( x2(1)= (3) )=x( x2(2)= (5) )=x( x2(3)= (7) )=x( X1(0) N/2点 N/2点 X1(1) X1(2) DFT X1(3) X2(0) X2(1) X2(2) X2(3)
2
N 2 N2 ( ) = 2 4 N N ( − 1) 2 2

数字信号处理第四章快速傅里叶变换(FFT)

数字信号处理第四章快速傅里叶变换(FFT)
第四章 快速傅里叶变换
(FFT)
数字信号处理第四章快速傅里叶变换 (FFT)
主要内容
DIT-FFT算法 DIF-FFT算法 IFFT算法 Chirp-FFT算法 线性卷积的FFT算法
§4.1 引言
FFT: Fast Fourier Transform
1965年,Cooley-Turky 发表文章《机器计算傅 里叶级数的一种算法》,提出FFT算法,解决 DFT运算量太大,在实际使用中受限制的问题。
N (N/2 –1)

一个蝶形
1
2
N/2个蝶形
N/2
N
总计
N 2 / 2 N / 2 N N / 2 1 N
N2/2
N2/2
运算量减少了近一半
进一步分解
由于 N2M,N 2M1 仍为偶数,因此,两个
2
DFT又可同样进一步分解为4个
N
点的DFT。
N 2

4
x1(2l) x3(l) x1(2l 1) x4 (l
X 1 ( k ) W N k X 2 ( k ) , k 0 ,1 ,2 ,N ./. 2 .1
X
X (k
(k
) N) 2
X1(k ) WNk X 2 (k X1(k ) WNk X 2
) (k
)
k
0,1,..., N
/2
1
将上式表达的运算用一个专用“蝶形”信流图表示。
X1(k)
复数乘法 复数加法
N
N–1
N 2 N (N – 1)
a jbc jd ac bd j ad cb
实数乘法 实数加法
一次复乘 4
2
一次复加
2
一个X (k) 4N

数字信号处理[第四章 快速傅里叶变换(FFT)]

数字信号处理[第四章 快速傅里叶变换(FFT)]

A(2)
-1 -1
W
0 N
A(2)
-1
A(3)
0 N
WN2
A(3)
-1
A(4) A(5)
W
0 N
A(4) A(5) A(6)
-1
-1
1 WN
A(4) = X (4) A(5) = X (5) A(6) = X (6)
A(7) = X (7)
A(6)
-1 -1
-1
2 WN
W
0 N
A(7)
0 WN
WN2
1
16
快速傅里叶变换(FFT) 快速傅里叶变换(FFT)
三,蝶形运算规律
p XL (J ) = XL1(J ) + XL1(J + B) WN p XL (J + B) = XL1(J ) X运算级数,=1,2, M
X L ( J )表示第L级运算后数组元素X ( J )的值 p = J 2M L;J = 0,1, , 2 L 1 1
J L12
J N 2 L M
M L
L = 1,WNp = WNJ/4 = W2JL,J = 0
L = 2,WNp = WNJ/2 = W2JL,J = 0,1
L
=W 2 N 1 L = 3,WNp = WNJ = W2J ,J = 0,1, 2,3 L级,W = W ,J = 0,1, 2, 2
p N J 2L L 1
x(0) = A(0)
x(4) = A(1)
A(0) A(1)
W W
0 N
A(0) A(1)
A(0) = X (0) A(1) = X (1) A(2) = X (2) A(3) = X (3)

快速傅里叶变换

快速傅里叶变换

第四章 快速傅里叶变换(FFT )快速傅里叶变换并不是一种新的变换,而是离散傅里叶变换的一种快速算法。

DFT 的计算在数字信号处理中非常有用,但是由于DFT 的计算量较大,即使采用计算机也很难对问题进行实时处理,通过引入其快速算法FFT ,使DFT 的计算大大简化,运算时间一般可缩短一、二个数量级。

4.1 FFT 算法的基本思想一、直接计算DFT 的问题设)(n x 为N 点有限长序列,其DFT 为:10)()]([)(10-≤≤==∑-=N k W n x n x DFT k X N n knNIDFT 为:10)(1)]([)(10-≤≤==∑-=-N n W k X N k X IDFT n x N k knN二式的差别仅在于N W 的指数符号不同,以及相差一个常数因子N /1,所以,我们只对DFT 正变换的算法进行讨论。

将)(k X 可以展开如下:)1()2()1()0()1()1()2()1()0()2()1()2()1()0()1()1()2()1()0()0()1)(1()2)(1()1)(1()0)(1()1(2)2(2)1(2)0(2)1(1)2(1)1(1)0(1)1(0)2(0)1(0)0(0-++++=--++++=-++++=-++++=--------N x W x W x W x W N X N x W x W x W x W X N x W x W x W x W X N x W x W x W x W X N N NN N N NN NN NNNNN NNNN N N N N N一般来说,)(n x 和knN W 都是复数,因此,完成每一个频率分量的计算需要作N 次复数乘法和1-N 次复数加法,完成)(k X 的N 个频率分量的计算需要作2N 次复数乘法和)1(-N N 次复数加法。

我们知道,复数运算实际上是由实数运算来完成的。

一次复数乘法包括四次实数乘法和二次实数加法,即:)()())((ad bc j bd ac jd c jb a ++-=++一次复数加法包括二次实数加法,即:)()()()(d b j c a jd c jb a +++=+++因此,完成一个)(k X 需要N 4次实数乘法和)12(2)1(22-=-+N N N 次实数加法,整个DFT (N 点)(k X )运算需要24N 次实数乘法和)12(2-N N 次实数加法。

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

N=8 当k=0、1、2、3时: 、 、 、 时 X1(k)、 X2(k)→X(k) 、 → →X(k+N/2)
0 X (0) = X 1 (0) + WN X 2 (0) k =0 0 X (4) = X 1 (0) − WN X 2 (0) 1 X (1) = X 1 (1) + WN X 2 (1) k =1 1 X (5) = X 1 (1) − WN X 2 (1) X (2) = X 1 (2) + WN2 X 2 (2) k =2 2 X (6) = X 1 (2) − WN X 2 (2) 3 X (3) = X 1 (3) + WN X 2 (3) k =3 3 X (7) = X 1 (3) − WN X 2 (3)
式中
X 3 (k ) = X 4 (k ) =
N / 4 −1
k N /2
2. FFT算法的设计思想 减少运算量的基本途径 算法的设计思想算法的设计思想 1)利用 W 的特点 WN = e
nk N
−j 2π N
−j 2π ( m + lN ) N −j 2π m N
(1)周期性 W = W )
nk N
(n+N )k N
=W
n(k +N ) W N
m + lN N
=e
=e
X1(k)
k WN
X (k)
1 −1
化简
X2 (k)
N X (k + ) 2
k = X1(k) +WN X2 (k) X (k)
X1(k)
k WN
X2 (k)
蝶形运算流图
N k X (k + ) = X1(k) −WN X2 (k) 2
X1(k)
k WN
k = X1(k) +WN X2 (k) X (k)
N点X(k)与N/2点X1(k)、X2(k)之间的关系式: k X (k) = X1(k) +WN X2 (k)
N (k + ) N N N 2 X (k + ) = X1(k + ) +WN X2 (k + ) 2 2 2
k = 0,1,L, N / 2 −1
W
N (k + ) 2 N k = −WN
复乘次数: 复乘次数:
N项
共需N 次复乘。以做一次复乘1µs计 计算一个 N点DFT ,共需 2次复乘。以做一次复乘 计,若N 点 =4096,所需时间为 ,
(4096)2 =16777216µs ≈17s
复加次数: 复加次数:
N(N-1) 当N>>1 → N2 复乘次数与复加次数均与N 复乘次数与复加次数均与 2成正比
4.2 基2FFT算法
满足 N=2M ——基2FFT 基 分为两大类: 分为两大类: 时域抽取法FFT(Decimation In Time FFT, 时域抽取法 简称DIT-FFT) 简称 频域抽取法FFT(Decimation In Frequency 频域抽取法 FFT,简称 简称DIF―FFT) 简称
复数加法次数为
显然, 显然,这样的分解是有效的 由于
N =2
M
可继续照此办法分解,即将 x1 (r) x2 (r) 按 r 的奇、偶各分为两组
按奇偶分解成两个N/4长的子序列 3(l)和x4(l), 长的子序列x 和 将x1(r)按奇偶分解成两个 按奇偶分解成两个 长的子序列 , 即
x3 (l ) = x1 (2l )
n=0
k =1
01 11 ( ⋅ X (1) = x(0)WN⋅ + x(1)WN⋅ +L+ x(N −1)WNN−1)1
k =2
X (2) = x(0)W + x(1)W +L+ x(N −1)W
0⋅2 N
12 ⋅ N
( N −1)⋅2 N
N个
M
0 1 ( k = N −1 X (N −1) = x(0)WN⋅N−1 + x(1)WN⋅N−1 +L+ x(N −1)WNN−1)⋅N−1
X2 (k)
蝶形运算流图
N k X (k + ) = X1(k) −WN X2 (k) 2
在蝶形运算符号中,左边两点为输入,右上支路为相加输出, 在蝶形运算符号中,左边两点为输入,右上支路为相加输出,右下 支路为相减输出,支路上的数为加权值. 支路为相减输出,支路上的数为加权值 完成一个蝶形运算需要一次复数相乘,两次复数相加。 完成一个蝶形运算需要一次复数相乘,两次复数相加。
DFT提供了计算机处理的可能性 提供了计算机处理的可能性 模拟信号的频谱分析
xa (t)
T
ˆ xa (t)
A/ D
x(n)
数字计算机
DFT[x(n)]
X (k) ≅ Xa ( f )
N足够大 DFT是信号分析与处理中的一种重要变换。因直接计算 是信号分析与处理中的一种重要变换。 是信号分析与处理中的一种重要变换 DFT的计算量与变换区间长度 的平方成正比,当N较大时, 的计算量与变换区间长度N的平方成正比 较大时, 的计算量与变换区间长度 的平方成正比, 较大时 计算量太大,所以在快速傅里叶变换(简称 简称FFT)出现以前,直 出现以前, 计算量太大,所以在快速傅里叶变换 简称 出现以前 接用DFT算法进行谱分析和信号的实时处理是不切实际的。 算法进行谱分析和信号的实时处理是不切实际的。 接用 算法进行谱分析和信号的实时处理是不切实际的
由于计算量大,且要求相当大的内存,难以实现实时处理, 由于计算量大,且要求相当大的内存,难以实现实时处理,限 制了DFT的应用。 的应用。 制了 的应用
长期以来,人们一直在寻求一种能提高DFT运算 速度的方法。 FFT便是Cooley&Tukey(库利 图基 库利-图基 库利 图基)在1965 年提出 的的快速算法,它可以使运算速度提高几百倍,从 而使数字信号处理学科成为一个新兴的应用学科。
N −1
2 ( = ∑x(2r)WN rk + ∑x(2r +1)WN2r+1)k r =0 r =0
N −1 2
N −1 2
rk k rk = ∑x1 (r)WN +WN ∑x2 (r)WN r =0 2 r=0 2
N −1 2
N −1 2
2 WN kr = e
−j
2π 2 kr N
−j
=e
2π kr N 2
算法) (Cooley-Tukey算法) 算法
库利-图基算法 库利-图基算法
FFT(Decimation In Time FFT,简称 ,简称DIT-FFT ) -
DIT-FFT推导: - 推导: 推导
设序列x(n)的长度为 ,且满足 的长度为N, 设序列 的长度为
N =2
M
将x(n)按 n 的奇偶分为两组:两个 点的子序列 按 的奇偶分为两组:两个N/2点的子序列
kr = WN 2
k = X1(k) +WN X2 (k) k = 0,1,L, N / 2 −1
N k≥ 2
X (k) = ?
X(k)为N点DFT运算,而X1(k)与X2(k)为N/2点DFT 为 点 运算, 运算 与 为 点 当
N k≥ 2
2
时,可利用X1(k)与X2(k)的周期性:
N r (k + ) 2 N 2
4.2.1 直接计算 直接计算DFT的特点及减少运算量的基本途径 的特点及减少运算量的基本途径 1.直接计算 直接计算DFT的特点 的特点-DFT的运算量 大 的运算量--直接计算 的特点1 的运算量 N− nk X (k) = DFT[x(n)] = ∑x(n)WN k=0,1,2,…,N–1
计算机运算时: 计算机运算时: 0 1 ( X (0) = x(0)WN⋅0 + x(1)WN⋅0 +L+ x(N −1)WNN−1)⋅0 k =0
0 WN
X (0) X (1) X (2) X (3)
X (4)
X (5)
X2 (1) N 1 点 WN 2 X2 (2) 2 DFT WN X2 (3)
X (6)
X (7)
2 N
0 X (0) = X 1 (0) + WN X 2 (0) k =0 0 X (4) = X 1 (0) − WN X 2 (0) 1 X (1) = X 1 (1) + WN X 2 (1) k =1 1 X (5) = X 1 (1) − WN X 2 (1)
N , l = 0,1, ⋅⋅⋅, − 1 x4 (l ) = x1 (2l + 1) 4
那么, 那么,X1(k)=DFT[x1(r)]N/2 又可表示为
X 1 (k ) =
N / 4 −1
ห้องสมุดไป่ตู้

l =0
x1 (2l )WN2 /kl2 + x3 (l )W
kl N /4
N / 4 −1

l =0
N 经以上分解,X1 (k) 、X2(k) 各为 点DFT,即分 2 2
别进行了
N 时,需进行 次复乘: 2
N 次复乘,而将 X1 (k) 与 X2 (k) 合成为 2
X(k)

N2 N N 2 N = (N +1) ≈ 复乘次数= 2 ×( ) + 2 2 2 2
2 N 2N N N − 1 + = 2 2 2
rk Q WN =W
N X 1 + k = ∑ x1 (r )W 2 r =0
N −1 2
相关文档
最新文档