深入理解DSP中的重要概念(FT、DTFT、DFT、DFS、ZT、FFT)
这篇博客主要梳理数字信号处理领域里面比较重要的几个概念以及之间的关系,包含以下几个内容傅里叶变换(FT)离散时间傅里叶变换(DTFT)离散傅里叶变换(DFT)离散傅里叶级数(DFS)Z 变换(ZT)快速傅里叶变换(FFT)。1. 转换成可处理的数字信号的要求一方面保证是离散的 (时域与频域),另一方面保证信号是有限的 (时域与频域)。2. 从 FT 到 DTFT首先给出 FT 的表达式 F(jω)
这篇博客主要梳理数字信号处理领域里面比较重要的几个概念以及之间的关系,包含以下几个内容
- 傅里叶变换(FT)
- 离散时间傅里叶变换(DTFT)
- 离散傅里叶变换(DFT)
- 离散傅里叶级数(DFS)
- Z 变换(ZT)
- 快速傅里叶变换(FFT)。
1. 转换成可处理的数字信号的要求
一方面保证是离散的 (时域与频域),另一方面保证信号是有限的 (时域与频域)。
2. 从 FT 到 DTFT
首先给出 FT 的表达式
F
(
j
ω
)
=
∫
−
∞
∞
f
(
t
)
e
−
j
ω
t
d
t
F(j\omega) = \int_{-\infin}^{\infin}f(t)e^{-j\omega t}dt
F(jω)=∫−∞∞f(t)e−jωtdt
通过对连续信号在时域进行采样(在满足采样定理的条件下)可以得到
X
(
j
ω
)
=
∑
n
=
−
∞
∞
x
(
n
Δ
t
)
e
−
j
ω
n
Δ
t
Δ
t
X(j\omega) = \sum_{n=-\infin}^{\infin}x(n\Delta t)e^{-j\omega n \Delta t}\Delta t
X(jω)=n=−∞∑∞x(nΔt)e−jωnΔtΔt 将时域间隔单位归一化后可以得到
X
(
j
ω
)
=
∑
n
=
−
∞
∞
x
[
n
]
e
−
j
ω
n
X(j\omega)=\sum_{n=-\infin}^{\infin}x[n]e^{-j\omega n}
X(jω)=n=−∞∑∞x[n]e−jωn
这样就得到了离散时间傅里叶变换 (DTFT-Discrete-time Fourier Transform)。
3. 从 DTFT 到 DFT
可以发现 e e e 的指数是有周期性的,并且周期为 2 π 2\pi 2π。因此在频域区间 [ 0 , 2 π ] [0,2\pi] [0,2π] 内以 2 π / N 2\pi/N 2π/N 为间隔对 DTFT 变换的结果进行频域取样就可以得到
4. 从傅里叶级数到 DFS
对周期为 T 的连续信号 x ~ ( t ) \widetilde{x}(t) x (t),其傅里叶级数为
其中 ω = 2 π T \omega=\displaystyle\frac{2\pi}{T} ω=T2π,表示频域中两条相邻谱线的间隔。可以看出来,对于周期信号,它的频谱天然就是离散化的,因此这里直接以恰当的采样率对时域进行采样即可得到对应的周期序列。
这样就得到了离散傅里叶级数 (DFS- Discrete Fourier Series)。
5. 从 DFS 到 DFT
从离散周期序列 x ~ ( t ) \widetilde{x}(t) x (t) 取出一个周期 x ( n ) x(n) x(n),从 DFS 变换结果中取一个周期出来 X ( j k Ω ) X(jk\Omega) X(jkΩ) 就可以得到与 DFT 十分相似的式子
6. 从 Z 变换到 DFS、DFT
对于序列
x
[
n
]
x[n]
x[n] 其
Z
Z
Z 变换的表达式为
X
(
z
)
=
∑
n
=
0
N
−
1
x
(
n
)
z
−
n
X(z)=\sum_{n=0}^{N-1}x(n)z^{-n}
X(z)=n=0∑N−1x(n)z−n
对于序列
x
[
n
]
x[n]
x[n] 其 DFT 变换的表达式为
X
(
k
)
=
∑
n
=
0
N
−
1
x
(
n
)
e
−
j
2
π
N
n
k
k
=
0
,
1
,
.
.
.
,
N
−
1
X(k)=\sum_{n=0}^{N-1}x(n)e^{-j\frac{2\pi}{N}nk}~~~~k=0,1,...,N-1
X(k)=n=0∑N−1x(n)e−jN2πnk k=0,1,...,N−1
可以非常容易的看出来
X
(
k
)
=
X
(
z
)
∣
z
=
e
j
2
π
N
k
k
=
0
,
1
,
.
.
.
,
N
−
1
X(k) = X(z)|_{z=e^{j\frac{2\pi}{N}k}}~~~k=0,1,...,N-1
X(k)=X(z)∣z=ejN2πk k=0,1,...,N−1
从公式中可以看出
x
(
n
)
x(n)
x(n) 的 N 点 DFT 是
x
(
n
)
x(n)
x(n) 的
Z
Z
Z 变换在单位圆上的 N 点等间隔采样。根据 DFT 与 DFS 之间的关系,也可以看出来
x
(
n
)
x(n)
x(n) 的 DFS 是
x
(
n
)
x(n)
x(n) 的
Z
Z
Z 变换在单位圆上的等间隔采样。
7. 从 DFT 变换到 FFT
FFT 从物理本质上讲与 DFT 是相同的。FFT 是为了加速 DFT 的计算速度,根据 e e e 指数的周期性,利用分治的思想将 N 点的 DFT 计算拆分成数量更少的点的 DFT 的计算的求和,将计算的时间复杂度从 O ( N 2 ) O(N^2) O(N2) 降低到 O ( N log N ) O(N\log N) O(NlogN)。
8. 示意图
这里给出不同变换的示意图
9. 关系图
这里给出这些变换之间的关系图
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)