seegongsik
我的单词本
SC · 采样与离散

DTFT 与 DFT

DTFT 是离散信号真正的频率谱,即在单位圆上看到的 z 变换。DFT 把那条连续谱在 N 个频率上采样,使计算机能够计算。移动信号频率,看:正好落在某个 DFT 频点上时得到一个干净的尖峰,落在频点之间则能量泄漏到许多格,即频谱泄漏。

对准频点是一点,错开则泄漏

上方是长度 N=16 的离散余弦 x[n] = cos(ω₀n)。下方金色曲线是它的 DTFT 幅度,即沿 ω 连续扫过的真实频谱,蓝色杆是在 ω = 2πk/N 这 N 个 DFT 频点上对该曲线的采样值。虚线是信号真正的频率 ω₀。移动 ω₀ 滑杆,使 ω₀ 正好落在某个蓝色频点上,造出只有该格升起、其余落到 0 的干净尖峰。落在频点之间,能量就漏向相邻各格。

离散余弦 x[n] = cos(ω₀n),N=16
DTFT 幅度(金色曲线)与 DFT 频点(蓝色杆)
信号频率 ω₀0.98 rad
信号频率与 DFT 频点
ω₀ = 0.98 · N = 16 · bin Δ = 2π/N = 0.39
nearest bin k = 2 at ω = 0.79
信号频率 ω₀ 落在两个 DFT 频点之间。没有频点对准信号的峰,能量便宽广地漏向许多格。这就是频谱泄漏:DFT 正在采样 DTFT 曲线的旁瓣。
频点之间(泄漏)

在单位圆上看到的频谱

离散信号 x[n] 的 DTFT 是 X(e^(jω)) = Σₙ x[n] e^(−jωn)。这与 E3 的 z 变换 X(z) = Σ x[n] z⁻ⁿ 中把 z 取在单位圆上 z = e^(jω) 完全相同。所以 DTFT 是绕 z 平面单位圆一圈所看到的频谱,也就是系统的频率响应。一个特点是周期性。由于 e^(−jωn) 关于 ω 以 2π 为周期,DTFT 每 2π 原样重复。这是 E1 中采样使频谱每 fs 复制一次这一事实的另一副面孔。所以离散信号的频谱只看 −π 到 π 一段就够了。

观察DTFT X(e) = Σₙ x[n] e−jωn
DTFT 是离散信号的频谱。
选择DTFT = X(z) at z = ?
DTFT 是单位圆上的 z 变换。
填空DFT X[k] = X(e) at ω = ?
DFT 在 N 个点上采样 DTFT。
自己来fast algorithm for the DFT = ?
FFT 以 N log N 计算 DFT。

计算机能算的 DFT

DTFT 关于 ω 连续,所以有无穷多个值。计算机无法计算无穷,于是只在把一周期 2π 等分为 N 份的 ω = 2πk/N(k=0..N−1)处取值。这就是 DFT X[k] = Σₙ x[n] e^(−j2πkn/N),把有限的 N 个输入变成有限的 N 个输出,即在 N 个频点上对 DTFT 曲线采样。直接计算 DFT 需要 N² 次乘法,但 1965 年库利–图基的 FFT 把它降到 N log N,使整个数字信号处理变得实用。时域的卷积在 DFT 域里又变回乘法,所以再长的滤波器也能用 FFT 快速运行。

错开频点的频率泄漏

只截取信号有限的 N 个样本来用时,那个截断的窗会使 DTFT 呈现有宽度的峰(主瓣)和旁边一排较小的峰(旁瓣)。若信号频率 ω₀ 正好落在频点 2πk/N 上,该频点位于主瓣顶端,其余频点恰好落在旁瓣之间的零点上,得到干净的一个尖峰。但若 ω₀ 落在频点之间,每个频点都采到旁瓣,能量便漏向许多格,即频谱泄漏。为减小它,截断时用把两端平滑削去的窗函数(汉宁、汉明等),可降低旁瓣、减少泄漏,但主瓣变宽,分辨相邻两个频率的能力下降。这是分辨率与泄漏的权衡。

回到第一屏

我们用一个长度 N 的离散余弦,看了它的频谱。金色 DTFT 曲线是沿 ω 连续扫过的真实频谱,蓝色 DFT 杆是在 N 个频点上对该曲线的采样。把信号频率 ω₀ 正好对准频点 2πk/N,便得到只有一格升起、其余为 0 的干净尖峰。把它移到频点之间,就看到能量散布到许多格的泄漏。DFT 不过是 DTFT 的采样,而 DTFT 是在单位圆上看到的 z 变换。从信号基础出发的链条,历经时间、卷积、傅里叶、拉普拉斯、采样,在此处的离散频谱合上了一圈。

DTFT X(e) = Σₙ x[n] e−jωn 是离散信号的频谱,即在单位圆 z = e 上看到的 z 变换,且关于 ω 以 2π 为周期(离散化的结果)。DFT X[k] = Σ x[n] e−j2πkn/N 是把该 DTFT 在 ω = 2πk/N 的 N 个点上采样的有限、可计算版本,FFT 以 N log N 快速计算它。信号频率对准频点则得干净的一个尖峰落在频点之间则发生频谱泄漏(有限窗的旁瓣)。用窗函数减小泄漏,会与分辨率权衡。
进入下一章

至此,分析信号与系统的工具已经齐备。我们学会了在时间上观察,用傅里叶、拉普拉斯与 z 变换,以及采样后以数字方式处理。如今在最后一章,方向从分析转向设计。下一单元稳定性与劳斯判据把如何使系统稳定作为首要问题。无需直接求解极点,仅凭特征方程的系数就建立劳斯表,判定是否所有极点都在左半面。即便对极点难解的高阶系统,也能用手判定稳定与否,进而用根轨迹与波特图设计控制器。