当前位置:文档之家› 离散傅里叶变换及其快速算法

离散傅里叶变换及其快速算法


按时间抽取的FFT算法
• 设N=2M,M为正整数,如取N=23=8,即离散时间信号为
x(n) = {x(0), x(1), x(2), x(3), x(4), x(5), x(6), x(7)}
• 按照规则①将序列x(n)分为奇偶两组,一组序号为偶数, 另一组序号为奇数,即
{x(0), x(2), x(4), x(6) | x(1), x(3), x(5), x(7)}
N −1
−j
2π nk N
0 ≤ k ≤ N −1
1 x(n) = IDFT [ X (k )] = N
∑ X (k )e
k =0
N −1
j
2π nk N
0 ≤ n ≤ N −1
• 通常记 WN
= e − j 2π / N
N −1 n=0
,则DFT简化为
nk N
X (k ) = ∑ x(n)W
1 x ( n) = N
离散傅里叶变换及其快速算法
概述
• 傅里叶变换实现了时域到时域到频域的转换,在连续信号 和离散信号处理技术领域有广泛的应用。 • 为利用计算机计算傅里叶变换,对信号与频谱有如下要求: 1. 信号与频谱应是离散的 2. 数据长度都是有限的 • 本节介绍如何将傅里叶级数和傅里叶变换的分析方法应用 于离散时间信号,它们是由傅里叶变换发展而来的一种变 换方法。 • 离散傅里叶变换(DFT)和快速傅里叶变换(FFT)在理论上解 决了利用计算机进行傅里叶分析的问题。
离散傅里叶变换的泄漏问题(Leakage)
在实际应用中,通常将所观测的信号限制在一定的时间间隔 内,也就是说,在时域对信号进行截断操作,或称作加时间 窗,亦即用时间窗函数乘以信号,即 ˆ x(t ) = b(t ) x(t ) 由卷积定理可知,时域相乘,频域为卷积,则有 ˆ X ( f ) = B( f ) ∗ X ( f )
常用窗函数
(1) 矩形窗(Rectangular) w(t)=1 (2) 汉宁窗(Hanning) w(t)=1-cos(2πt/T), (3) 凯塞窗(Kaiser-Bessel) w(t)=1-2.4 cos(2πt/T)+0.244 cos(4πt/T)-0.00305 cos(6πt/T) (4) 平顶窗(FlatTop) w(t)=1-1.93 cos(2πt/T)+1.29 cos(4πt/T)-0.388 cos(6πt/T) +0.0322 cos(8πt/T)

∫π

π
X (e jω )e jω n d ω
傅里叶变换对小结
• 傅里叶级数(FS)(时域:连续周期;频域:非周期离散 连续周期 非周期离散 连续周期 非周期离散)
1 T X k = ∫ 2 T x(t )e − jkω1t dt T −2
x(t ) =
k =−∞


X k e jkω1t
k = 0, ±1, ±2,L
• 计算一个X(k)值需要N次复数乘法和(N-1)次复数加法,那 么N个X(k)共需N2次复数乘法和N(N-1)次复数加法。每次 复数乘法包括4次实数乘法和2次实数加法,每次复加法包 括2次实数加法,因此计算N点的DFT共需要4N2次实数乘 法和(2N2+2N(N-1))次实数加法,如N=2048时,计算量为 419万次。
1
有时会造成能量分散现象,称之为频谱泄漏 频谱泄漏。 频谱泄漏
• 余弦信号被矩形窗截断形成的泄漏 余弦信号被矩形窗截断形成的泄漏
• 对于连续周期函数,在符合采样定理的条件下, 保证窗函数b(t)的时段τ等于被截函数的周期T的 整倍数,可以保证逆变换后准确地恢复原波形, 整倍 不产生泄漏。 • 对于随机振动信号(非周期函数),控制泄漏的 方法是采用特定的窗函数 特定的窗函数,以达到控制旁瓣的效 特定的窗函数 果。
非周期函数的离散傅里叶变换的物理逻辑过程
• (a) 原函数,(b)截断后保留部分,(c)周期拓广,(d)离散 采样,(e)离散傅里叶变化后的离散谱
离散傅里叶变换的频混问题(Aliasing)
• 采样间隔为∆t,采样频率 f s = 1 / ∆t 。若采样频率过 小,则有可能高频部分重叠到低频部分上,形成 “频混 频混”。 频混
• 周期函数的离散傅里叶级数 离散傅里叶级数(DFS): 离散傅里叶级数
1 Xk = N
∑ x(n)e
n=0
N −1
−j
2π nk N
x ( n) = ∑ X k e
n =0
N −1
2π nk j N
k = 0,1, 2,L , N − 1
离散傅里叶级数(DFS)的性质
• 离散傅里叶系数 X k 是一个由 N 个独立谐波分量 组成的傅立叶级数 • 离散傅里叶系数 X k 也是离散周期 离散周期的,周期为N。 离散周期
窗函数用法
• 矩形窗:瞬态信号、伪随机或周期随机、窗长等 于周期信号整周期时 • 汉宁窗:纯随机 • 平顶窗:周期或准周期信号 • 力窗或指数衰减窗:锤击法测频响函数时的力信 号和脉冲响应信号
快速傅里叶变换(FFT)
• 直接利用DFT进行谱分析时,存在一个突出矛盾,即当序 列长度N较大时计算量大、计算时间长、数据占用内存多 ,难以利用DFT进行实时处理,其应用受到很大的限制。 • 1965年库利(Cooley)和图基(Tukey)提出了一种DFT的快速 算法,这就是FFT。FFT算法使计算量大大降低,计算时 间减少,特别是当序列长度N较大时,效果更为显著。 • FFT并不是一种新的变换形式,它只是DFT的一种快速算 法。并且根据对序列分解与选取方法的不同而产生了FFT 的多种算法。 • FFT在离散傅里叶反变换、线性卷积和线性相关等方面也 有重要应用。
离散傅里叶变换(DFT)的定义和基本概念
• 现借助于DFS的概念对有限长序列进行傅里叶分 析: • 设x(n)为有限长序列:
x ( n) 0 ≤ n ≤ N − 1 x ( n) = n其他值 0
• 正变换: • 逆变换:
X (k ) = DFT [ x( n)] = ∑ x(n)e
n=0
离散傅里叶变换(DFT)
• 上面讨论的傅里叶变换对,都不适用在计算机上 运算。因为从数字计算角度,我们感兴趣的是时 域及频域都是离散的情况。而工作中经常要对有 限长序列进行频谱分析,这就是我们这里要谈到的 离散傅里叶变换。 离散傅里叶变换
• 可借助于DFS定义DFT,思路如下: (1) 把时域周期序列看作是有限长序列x(n)的周期延 拓; (2) 把频域周期序列看作是有限长序列X(k)的周期延 拓; (3) 这样只要把DFS的定义式两边(时域、频域)各 取主值区间,就得到关于有限长序列的时频域的对 应变换对——离散傅里叶变换(DFT)。
− X ( k )WN nk ∑ k =0
N −1
• 上两式可写为矩阵形式
DFT与DTFT的区别
• DTFT是对任意序列的傅里叶分析,它的频谱是一 个连续函数;而DFT是把有限长序列作为周期序 列的一个周期,对有限长序列的傅里叶分析, DFT的特点是无论在时域还是频域都是有限长序 列。 • DFT提供了使用计算机来分析信号和系统的一种 方法,尤其是DFT的快速算法FFT,在许多科学 技术领域中得到了广泛的应用,并推动了数字信 号处理技术的迅速发展。
DFT的计算量
• 有限长序列x(n)的DFT为:
X (k ) = ∑ x(n)W
n=0 N −1 nk N
1 x ( n) = N
− X (k )WN nk ∑ k =0
N −1
WN = e− j 2π / N
• 将DFT定义式展开成方程组
写为矩阵形式
• 用向量表示
X = Wx
• 用复数表示
Wx = {Re[W ] Re[ x] − Im[W ] Im[ x]} + j{Re[W ] Im[ x] + Re[ x] Im[W ]}
周期序列的离散分析
• 连续周期函数x(t),抽样间隔∆t=T/N
周期序列的离散傅里叶级数(DFS)
• 连续周期函数x(t)的傅里叶级数:
x(t ) =
n =−∞


X k e jkω1t
1 T X k = ∫ 2 T x(t )e− jkω1t dt T −2
k = 0, ±1, ±2,L
2π • 抽样间隔∆t=T/N,ω1 = T
FFT原理
• FFT算法主要利用了 WNnk 的两个性质: 1. 对称性
W
( nk + N ) 2
= −W nk
nk ) N
2. 周期性
W nk = W
mod( nk ) N
mod(
表示用N除nk之后的余数
• FFT算法利用
nk WN
的对称性和周期性,将一个大的
DFT分解成一些逐次变小的DFT来计算。 • 分解过程遵循两条规则: ①对时间进行偶奇分解——按时间抽取的FFT算法 ②对频率进行前后分解——按频率抽取的FFT算法
离散时间序列
• 数字计算机只能处理有限长的数字信号。因此, 必须把一个连续的变化的模拟信号转换成有限长 的离散时间序列,才能由计算机来处理。这一转 换称模拟信号数字化。 • 对x(t)进行抽样,抽样间隔为∆, x(t)的离散值在 时间t=k∆,写为xk。{xk},k= …,-1,0,1,2,3, …叫做 离散时间序列。 离散时间序列
• 傅里叶变换(FT)(时域:连续非周期;频域:非周期连续 连续非周期 非周期连续 连续非周期 非周期连续)
X ( f ) = F [ x(t )] = ∫
−1
∞ −∞

x(t )e − j2πft dt
X ( f )e j2πft df
2π nk N
相关主题