‹ 上一章 第3章 下一章 ›

课程章节导航 ×

CHAPTER 3

离散傅里叶级数
与离散傅里叶变换

DFS & DFT · Discrete Fourier Transform
课 程数字信号处理(DSP)
学 期2026 年 秋季学期
32 学时24 智能医学
学习要求

本章要掌握什么

  • (1)掌握离散傅里叶级数(DFS)的定义、计算与性质;
  • (2)掌握离散傅里叶变换(DFT)的定义、计算与性质;
  • (3)理解离散傅里叶变换与其它变换之间的关系。
💡 DFT 是 DSP 最实用的工具:它把"连续频域"变成"离散频点",让计算机能真正算出频谱。
知识地图

本章知识结构

3.1 离散傅里叶级数 DFS

定义 · X̃(k) 周期性 · 线性 / 位移 / 周期卷积

3.2 离散傅里叶变换 DFT

周期延拓 ((n))\(_{N}\) · DFT 定义 · 与 DFS 的"取主值"关系

3.3 DFT 的性质

线性 · 圆周位移 · 循环卷积 · 对称性 · 相关 · 帕塞瓦尔定理

3.4 DFT 与其他变换的关系

与 z 变换(单位圆 N 点采样)· 内插公式 · 表示 DTFT

3.5 线性卷积与线性相关的 DFT 算法

循环卷积快速计算 · 循环卷积 ≠ 线性卷积的混叠条件 · 重叠相加法 · 相关的快速计算
3.1

离散傅里叶级数 DFS

出发点

设 x̃(n) 是周期为 N 的周期序列,可以表示为 N 个正弦序列 / 复指数序列之和。
\(x̃\)(\(n\)) = \(\frac{1}{N}\) \(\sum_{k = 0}^{N-1}\) \(X̃\)(\(k\)) \(e^{j\frac{2\pi}{N}kn}\)  (1)
也就是说:周期序列 ↔ 有限个(N 个)谐波分量,频域也是离散的、周期的。
周期序列 x̃(n)(N = 8,不断重复) 一个周期 N=8 分解为 N 个谐波分量之和 X̃(0) X̃(1) … X̃(7) 共 N 个复指数谐波 时域周期离散 ⇒ 频域离散周期 +
3.1.1

傅里叶级数的定义

离散傅里叶级数正变换(DFS)

\(X̃(k) = \sum_{n = 0}^{N-1} x̃(n) e^{-j\frac{2\pi}{N}kn} = \sum_{n = 0}^{N-1} x̃(n) W_{N}^{kn}\)
记 \(W_{N}\) = \(e^{-j2\pi/N}\),称为旋转因子(twiddle factor)。

离散傅里叶级数反变换(IDFS)

\(x̃(n) = \frac{1}{N} \sum_{k = 0}^{N-1} X̃(k) W_{N}^{-kn}\)
💡 求和只在一个周期(N 点)内完成。正变换有系数 1,反变换有系数 1/N。
3.1.1

X̃(k) 的周期性

频域也是周期序列

\(X̃\)(\(k\) + \(N\)) = \(X̃\)(\(k\)), 周期为 \(N\)
因为 \(W_{N}^{(k+N)n}\) = \(W_{N}^{kn}\)·\(W_{N}^{Nn}\) = \(W_{N}^{kn}\)·\(e^{-j2\pi n}\) = \(W_{N}^{kn}\)。
▸ 含义
只有 N 个独立的谐波分量 X̃(0)…X̃(N−1),其余全是重复。
▸ 与时域的对称
时域周期 N ⇒ 频域离散(间隔 2π/N)且周期 N;
二者都是"离散 + 周期"。
X̃(k) 以 N 为周期重复 一个周期 k = 0…7 重复 再重复
3.1.2 ①

DFS 性质:线性特性

设周期序列 x̃(n) 和 ỹ(n) 的周期都为 N,且
\(x̃\)(\(n\)) ↔ \(X̃\)(\(k\)), \(ỹ\)(\(n\)) ↔ \(Ỹ\)(\(k\))
则有
\(a\cdot x̃(n) + b\cdotỹ(n) \leftrightarrow a\cdot X̃(k) + b\cdotỸ(k)\)
⚠ 前提条件
两个序列的周期必须相同(都是 N),否则不能直接这样相加——需要先通分到公共周期(最小公倍数)。
3.1.2 ②

DFS 性质:序列位移特性

设 x̃(n) ↔ X̃(k)

当 m 和 l 为任意整数时,则
\(x̃(n - m) \leftrightarrow W_{N}^{km} X̃(k)\) \(W_{N}^{-nl} x̃(n) \leftrightarrow X̃(k - l)\)
▸ 时域移位
时域右移 m 位 ⇒ 频域乘线性相位因子 \(W_{N}^{km}\) = \(e^{-j2\pi km/N}\)。
幅度谱不变,只相位改变 —— 与 z 变换的位移性质一致。
▸ 频域移位(对偶)
时域乘 \(W_{N}^{-nl}\) ⇒ 频域移位 l 位(调制 / 搬移)。
这就是通信中"频谱搬移"的数学基础。
3.1.2 ③

DFS 性质:周期卷积

设周期序列 x̃\(_{1}\)(n) 和 x̃\(_{2}\)(n) 的周期都为 N,有
\(x̃_{1}\)(\(n\)) ⊛ \(x̃_{2}\)(\(n\)) = \(\sum_{m = 0}^{N-1}\) \(x̃_{1}\)(\(m\))·\(x̃_{2}\)(\(n\)−\(m\)) ↔ \(X̃_{1}\)(\(k\))·\(X̃_{2}\)(\(k\))
周期卷积满足交换律。
⚠ 与线性卷积的关键区别
求和仅在一个周期内完成称为周期卷积;而线性卷积在 −∞ ~ +∞ 求和。
结果:周期卷积的结果仍是周期为 N 的周期序列。
3.1.2 ④

频域周期卷积

时域相乘 ⇔ 频域周期卷积

\(x̃_{1}\)(\(n\))·\(x̃_{2}\)(\(n\)) ↔ \(\frac{1}{N}\) \(X̃_{1}\)(\(k\)) ⊛ \(X̃_{2}\)(\(k\)) = \(\frac{1}{N}\) \(\sum_{l = 0}^{N-1}\) \(X̃_{1}\)(\(l\))·\(X̃_{2}\)(\(k\)−\(l\))
时域:x̃₁(n) ⊛ x̃₂(n)(周期卷积) 一个周期内求和 频域:X̃₁(k) · X̃₂(k)(相乘) 逐点相乘 时域:x̃₁(n) · x̃₂(n)(相乘) 频域:(1/N)·X̃₁(k) ⊛ X̃₂(k) 时域卷积 ⇔ 频域相乘;时域相乘 ⇔ 频域卷积(对偶关系) DFS
3.2

离散傅里叶变换 DFT

核心思想

将有限长序列 x(n)(0 ≤ n ≤ N−1)延拓成周期序列 x̃(n),再取其 DFS 的主值区间,就得到 DFT。
这样就能用处理周期序列的方法来处理有限长序列。
① 有限长序列 x(n) 0 ≤ n ≤ N−1,其余为 0 延拓 ② 周期序列 x̃(n)(周期 N=8) 主值区间(0…N−1) DFT 只取这一个周期的 N 个点
3.2

周期延拓的数学表示

模运算记号 ((n))\(_{N}\)

符号 ((n))\(_{N}\) 表示 n 对模 N 的余数,即
\(n\) = \(mN\) + ((\(n\)))\(_{N}\), 0 ≤ ((\(n\)))\(_{N}\) ≤ \(N\)−1
例:N=8 时,((10))\(_{8}\) = 2,((−1))\(_{8}\) = 7,((−3))\(_{8}\) = 5。

有限长序列 ↔ 周期序列

\(x̃(n) = x(((n))_{N})\) 同理 \(X̃\)(\(k\)) = \(X\)(((\(k\)))\(_{N}\))
即把有限长序列"首尾相接"地无限重复;反过来,周期序列乘矩形序列 \(R_{N}\)(n) 就取回主值。
💡 有了 ((n))\(_{N}\),"绕回"这件事就有了严格的数学表达——后面圆周位移、循环卷积全靠它。
3.2

DFT 的定义

离散傅里叶变换(DFT)

\(X\)(\(k\)) = DFT[\(x\)(\(n\))] = \(\sum_{n = 0}^{N-1}\) \(x\)(\(n\)) \(W_{N}^{kn}\), \(k\) = 0,1,…,\(N\)−1

离散傅里叶反变换(IDFT)

\(x\)(\(n\)) = IDFT[\(X\)(\(k\))] = \(\frac{1}{N}\) \(\sum_{k = 0}^{N-1}\) \(X\)(\(k\)) \(W_{N}^{-kn}\), \(n\) = 0,1,…,\(N\)−1
★ 一般情况下
X(k) 与 x(n) 都是长度为 N 的有限长序列,二者一一对应(都只取主值区间的 N 个点)。
要注意:它们隐含着周期性——所有 DFT 运算本质上都在"圆环"上进行。
3.2

DFT 与 DFS 的关系

DFT 并不是新变换,它就是 DFS 取主值区间:
\(X(k) = X̃(k)\cdot R_{N}(k)\) \(x(n) = x̃(n)\cdot R_{N}(n)\)
x(n) 有限长 0…N−1 x̃(n) 周期 周期延拓 X̃(k) 周期 DFS X(k) 有限长 取主值 0…N−1 延拓 ((n))N DFS 截断 IDFT IDFT = IDFS + 取主值 (反向路径)
3.3.1

DFT 性质:线性特性

若 \(x_{1}\)(\(n\)) ↔ \(X_{1}\)(\(k\)),\(x_{2}\)(\(n\)) ↔ \(X_{2}\)(\(k\)),则 \(ax_{1}(n) + bx_{2}(n) \leftrightarrow aX_{1}(k) + bX_{2}(k)\)

长度不一致时怎么办?

如果 \(x_{1}\)(n) 长为 \(N_{1}\),\(x_{2}\)(n) 长为 \(N_{2}\),则 y(n) 长为 N = max[\(N_{1}\), \(N_{2}\)]。
设 \(N_{1}\) < \(N_{2}\),则 \(X_{1}\)(k) 是 \(x_{1}\)(n) 补 \(N_{2}\)−\(N_{1}\) 个零后的离散傅里叶变换。
⚠ 关键提醒
补零改变了 DFT 的点数 N,因此\(X_{1}\)(k) 的取值会变——两个序列必须先补到同一长度 N,再各自做 N 点 DFT,线性性质才成立。
3.3.2 演示

圆周位移(循环移位)

位移量 m m = 0
圆周位移:移出右端的数据从左边绕回来(长度恒为 N); 线性位移:移出后补零,长度变长。
3.3.2 ②

圆周位移定理

1. 圆周位移定义

有限长序列 x(n) 的圆周位移定义为
\(x_{m}(n) = x(((n - m))_{N})\cdot R_{N}(n)\)
先周期延拓 → 平移 m 位 → 再取主值。结果长度仍为 N。

2. 圆周位移定理

若 x(n) ↔ X(k),则它的离散傅里叶变换为
\(x_{m}\)(\(n\)) = \(x\)(((\(n\)−\(m\)))\(_{N}\))\(R_{N}\)(\(n\)) ↔ \(W_{N}^{km}\) \(X\)(\(k\))
同理(频域位移):\(W_{N}^{-nl}\)x(n) ↔ X(((k−l))\(_{N}\))\(R_{N}\)(k)。
💡 时域圆周移位只给频谱加一个线性相位 \(W_{N}^{km}\),幅度谱不变。这也是"时移不影响能量分布"的体现。
3.3.3 ①

循环(圆周)卷积

定义

令两个长度均为 N 的有限长序列 \(x_{1}\)(n)、\(x_{2}\)(n),其循环卷积定义为
\(y(n) = \sum_{m = 0}^{N-1} x_{1}(m)\cdot x_{2}(((n-m))_{N})\cdot R_{N}(n) = x_{1}(n) ⊛ x_{2}(n)\)
记作 ⊛(或 ⊗),求和只在一个周期内,结果长度仍为 N。
▸ 与线性卷积的区别
线性卷积:求和范围 −∞~+∞,结果长 \(N_{1}\)+\(N_{2}\)−1。
循环卷积:求和 0~N−1,结果长 N。
⚠ 计算前提
两序列必须等长 N(短的先补零)。
计算时把其中一个圆周反褶再圆周移位,与线性卷积的"反褶、平移、相乘、取和"四步类似。
3.3.3 ②

循环卷积定理

若 \(x_{1}\)(n) ↔ \(X_{1}\)(k),\(x_{2}\)(n) ↔ \(X_{2}\)(k)(均为 N 点 DFT),则
\(y\)(\(n\)) = \(x_{1}\)(\(n\)) ⊛ \(x_{2}\)(\(n\)) ↔ \(Y\)(\(k\)) = \(X_{1}\)(\(k\))·\(X_{2}\)(\(k\))
时域循环卷积 ⇔ 频域直接相乘——这是用 DFT 做快速卷积的理论基石。
或(对偶形式)
\(x_{1}\)(\(n\))·\(x_{2}\)(\(n\)) ↔ \(\frac{1}{N}\) \(X_{1}\)(\(k\)) ⊛ \(X_{2}\)(\(k\))
循环卷积计算的圆形示意(N = 8) 0 外圈:x₁(m) 固定 内圈:x₂(−m) 反褶后旋转 每转一步 → 对应位相乘求和 → y(n) y(n) = IDFT[ X₁(k) · X₂(k) ] 时域绕圈卷积 → 频域一次相乘
3.3.3 ③

频域循环卷积

同样(由对偶性),若两个频域序列做循环卷积,则对应时域相乘:
\(x_{1}\)(\(n\))·\(x_{2}\)(\(n\)) ↔ \(\frac{1}{N}\) \(X_{1}\)(\(k\)) ⊛ \(X_{2}\)(\(k\))
★ 对称关系一览
时域循环卷积 ⇔ 频域相乘  |  时域相乘 ⇔ 频域循环卷积 ÷ N
注意系数 1/N 的位置,与 DFS 中的形式保持一致。
💡 这条性质解释了加窗(时域乘窗函数)为什么会造成频谱卷积、产生泄漏——第 8 章数字谱分析会详细讲。
3.3.4 ①

DFT 的对称性

特性 1

将 X(k) 分解为实部与虚部:
\(X(k) = X_{R}(k) + jX_{I}(k)\)
\(X_{R}\)(k) 是关于 k 的偶函数
\(X_{I}\)(k) 是关于 k 的奇函数
即 \(X_{R}\)(k) = \(X_{R}\)(N−k),\(X_{I}\)(k) = −\(X_{I}\)(N−k)。
同理,将 X(k) 写成极坐标形式:
|\(X\)(\(k\))| 关于 \(k\) 偶对称 arg[\(X\)(\(k\))] 关于 \(k\) 奇对称
3.3.4 ②

奇偶虚实对称性

特性 2

对实序列 x(n),其 DFT 满足共轭对称性:
\(X(k) = X^{*}(((N - k))_{N})\cdot R_{N}(k)\)
这意味着(或):
\(X(N-k) = X^{*}(k)\) \(\Rightarrow |X(N-k)| = |X(k)|\)
★ 工程价值
实序列的 N 点 DFT,只有前 N/2 个频点是独立的(后一半是共轭镜像)。
所以画频谱时通常只画 0 ~ π 这一段,计算量也能省一半。
3.3.4

表 3-1 DFT 的奇偶虚实特性

x(n)(时域)X(k)(频域)
实函数实部为偶、虚部为奇
实偶函数实偶函数
实奇函数虚奇函数
虚函数实部为奇、虚部为偶
虚偶函数虚偶函数
虚奇函数实奇函数
★ 记忆口诀
"实偶 → 实偶,实奇 → 虚奇":时域的偶性保持为频域的偶性;时域的奇性在频域变成虚奇(乘了个 j)。
最常用的是第一行:实序列 → 实部偶、虚部奇(即共轭对称)。
3.3.5 ①

离散(线性)相关函数

对于离散序列 \(x_{1}\)(n) 和 \(x_{2}\)(n),则离散相关定义为
\(r_{12}(m) = \sum_{n = -\infty}^{+\infty} x_{1}(n)\cdot x_{2}^{*}(n - m)\)

与卷积的关系

相关 = 卷积,只是不反褶(且取共轭):
\(r_{12}(m) = x_{1}(m) * x_{2}^{*}(-m)\)

用途

自相关(\(x_{1}\)=\(x_{2}\)):检测周期性、估计功率谱。
互相关:测量时间延迟、模板匹配(如雷达测距、回声消除)。
3.3.5 ②

循环(圆周)相关

设 \(x_{1}\)(n) 和 \(x_{2}\)(n) 都是长度为 N 的有限长实序列,则循环相关定义为
\(r̃_{12}(m) = \sum_{n = 0}^{N-1} x_{1}(n)\cdot x_{2}(((n - m))_{N})\cdot R_{N}(m)\)
同样只在一个周期内求和,结果仍是长度 N 的有限长序列。

循环相关定理

\(r̃_{12}\)(\(m\)) ↔ \(X_{1}\)(\(k\))·\(X_{2}^{*}\)(\(k\))
即:相关 ⇔ 频域共轭相乘(注意取共轭,与卷积的 \(X_{1}\)\(X_{2}\) 差一个共轭)。
3.3.6

DFT 形式下的帕塞瓦尔定理

已知长为 N 的序列 x(n),X(k) = DFT[x(n)],则
\(\sum_{n = 0}^{N-1} |x(n)|^{2} = \frac{1}{N} \sum_{k = 0}^{N-1} |X(k)|^{2}\)
如果 x(n) 为实序列,则还可写成更简洁的形式(利用共轭对称性)。
★ 物理意义
时域能量 = 频域能量(差一个 1/N 因子)。
这说明 DFT 是一个正交变换(只旋转、不缩放能量),信息既不丢失也不增加。
3.4 ①

DFT 与z 变换的关系

核心结论

DFT 就是 z 变换在单位圆上的 N 点等间隔采样:
\(X(k) = X(z)|_{z = W_{N}^{-k} = e^{j2\pi k/N}} = X(e^{j\omega})|_{\omega = 2\pi k/N}\)
单位圆上的 N=8 点等间隔采样 k=012 34567 Δω = 2π/N 三者的层次关系 z 变换 X(z) 整个 z 平面(连续) DTFT X(e^{jω}) 单位圆上(连续 ω) DFT X(k) 单位圆上 N 点(离散) 逐级"离散化" z 变换 → DTFT:限制到 |z|=1 DTFT → DFT:ω 上等间隔采样 DFT 是唯一能被计算机 直接算出来的频谱
3.4 ②

z 变换的内插公式

既然 X(k) 是 X(z) 在单位圆上的 N 个采样点,那么能否由 X(k) 恢复出整个 X(z)?可以——用内插:
\(X\)(\(z\)) = \(\sum_{k = 0}^{N-1}\) \(X\)(\(k\))·\(\Phi_{k}\)(\(z\)), \(\Phi_{k}\)(\(z\)) = \(\frac{1}{N}\)·\(\frac{1 - z^{-N}}{1 - W_{N}^{k}z^{-1}}\)
Φ\(_{k}\)(z) 称为内插函数:它在 z = \(W_{N}^{-k}\) 处取 1,在其他采样点处取 0。
★ 意义
N 个离散频点 X(k) 完整地代表了整个 X(z)(前提是 x(n) 长度 ≤ N)。
这就是"频域采样不丢失信息"的数学保证,也是 频域采样定理 的核心。
3.4 ③

用 DFT 表示序列傅里叶变换

同理,连续的 X(\(e^{j\omega}\)) 也可以由 N 个 X(k) 内插得到:
\(X(e^{j\omega}) = \sum_{k = 0}^{N-1} X(k)\cdot\Phi_{k}(\omega)\)
其中 Φ\(_{k}\)(ω) 是频域内插函数(Dirichlet 核的形式)。

实际含义

我们做 N 点 DFT 得到的 X(k),只是真实连续频谱 X(\(e^{j\omega}\)) 的N 个采样点。
采样点之间的细节 DFT 看不见——这就是栅栏效应;补零可以增加采样密度,让曲线更光滑(但不提高真正的频率分辨率)。
⚠ 补零 ≠ 提高分辨率:补零只是把内插曲线画得更密,真正的分辨率由实际数据长度决定(第 8 章详述)。
3.5.1 ①

循环卷积的快速计算

思路

利用循环卷积定理,把时域的循环卷积转成频域相乘,再用 IDFT 变回来:
\(y(n) = x_{1}(n) ⊛ x_{2}(n) = IDFT[X_{1}(k)\cdot X_{2}(k)]\)
x₁(n) x₂(n) N 点 DFT N 点 DFT 逐点相乘 X₁(k)·X₂(k) N 点 IDFT y(n) = x₁(n) ⊛ x₂(n) 若用 FFT / IFFT 复杂度 O(N log N) 直接循环卷积需 O(N²) 次乘加;走频域只需 O(N log N)
3.5.1 演示

循环卷积与线性卷积的关系

DFT 长度 L L = 6 无混叠 ✓ 等于线性卷积
判据:当 L ≥ \(N_{1}\) + \(N_{2}\) − 1 时,L 点循环卷积 = 线性卷积;否则尾部绕回前端造成时域混叠。
3.5.1 ③

线性卷积的快速计算

目标:y(n) = x(n) * h(n)

既然循环卷积可以用 DFT 快速算,而"补够零后循环卷积 = 线性卷积",于是得到步骤:
  • ① 取 L ≥ \(N_{1}\) + \(N_{2}\) − 1(通常取 2 的整数次幂,便于 FFT);
  • ② 把 x(n)、h(n) 都补零到 L 点;
  • ③ 分别做 L 点 DFT(FFT)→ X(k)、H(k);
  • ④ 频域相乘 Y(k) = X(k)·H(k);
  • ⑤ 做 L 点 IDFT(IFFT)→ 得到 y(n)。
★ 关键在第 ① 步
补零长度必须 ≥ \(N_{1}\)+\(N_{2}\)−1,这是避免混叠的硬性条件。忘了补零是最常见的错误。
3.5.1 ④

重叠相加法

要解决的问题

设 x(n)、h(n) 均为因果序列,h(n) 长 N,x(n) 长 \(N_{1}\),且 \(N_{1}\) >> N。
若直接补零到 \(N_{1}\)+N−1 点做 DFT,运算量太大且需要全部数据到齐(无法实时处理)。

做法

将 x(n) 分为 M 段(p 段),每小段长与 h(n) 接近,将 x(n) 的每小段与 h(n) 进行卷积,最后取和。
由于每段卷积结果长度为(段长 + N − 1),相邻两段有 N−1 点重叠,重叠部分要相加——故名"重叠相加法"(Overlap-Add)。
3.5.1 ④

重叠相加法示意

① 长序列 x(n) 分段 x₀(n)x₁(n)x₂(n)x₃(n) 每段长 L,与 h(n) 长度接近 ② 每段与 h(n) 卷积(长度 L+N−1) y₀(n)y₁(n)y₂(n)y₃(n) 红色 = 相邻段的重叠区(N−1 点) ③ 重叠部分相加 → 完整 y(n) 两段结果错位摆放,重叠处数值相加 → 得到连续的线性卷积结果 每段卷积仍用 FFT 快速计算(段长 L+N−1 取 2 的幂) 工程名:Overlap-Add(OLA)分块卷积,是实时滤波的标准做法
3.5.1 ⑤

重叠相加法的快速算法

步骤

  • ① 选定分段长度 L,取 DFT 长度 M = L + N − 1(再向上取到 2 的幂);
  • ② 预先算好 H(k) = DFT[h(n)](M 点,h 后面补零)——只需算一次;
  • ③ 对每一段 \(x_{i}\)(n):补零到 M 点 → FFT → 乘 H(k) → IFFT,得 \(y_{i}\)(n);
  • ④ 把各段 \(y_{i}\)(n) 按顺序摆放,重叠的 N−1 点相加。
★ 为什么这样做划算
每段只需 O(M log M),而整段直接卷积要 O(\(N_{1}\)·N)。当 \(N_{1}\) 很大时,分段 + FFT 明显更快,而且可以边收数据边处理(实时流式)。
3.5.2 ①

循环相关的快速计算

1. 循环相关的快速计算

利用循环相关定理 r̃\(_{12}\)(m) ↔ \(X_{1}\)(k)·\(X_{2}^{*}\)(k):
\(r̃_{12}(m) = IDFT[X_{1}(k)\cdot X_{2}^{*}(k)]\)
与循环卷积的唯一区别:第二个因子取共轭(因为相关不反褶,改由共轭来体现)。
⚠ 别记混
卷积 → \(X_{1}\)(k)·\(X_{2}\)(k) | 相关 → \(X_{1}\)(k)·\(X_{2}^{*}\)(k)
3.5.2 ②

线性相关的快速计算

与循环卷积计算线性卷积类似,当 \(x_{1}\)(n) 和 \(x_{2}\)(n) 长度分别为 N、M 时,将其补零延长,使得
\(L \ge N + M - 1\)
此时 L 点循环相关就等于线性相关,于是可用 DFT 快速计算。

线性相关快速算法步骤

  • ① 取 L ≥ N + M − 1(通常取 2 的幂);
  • ② \(x_{1}\)(n)、\(x_{2}\)(n) 各自补零到 L 点;
  • ③ 做 L 点 DFT → \(X_{1}\)(k)、\(X_{2}\)(k);
  • ④ 计算 R(k) = \(X_{1}\)(k)·\(X_{2}^{*}\)(k);
  • ⑤ 做 L 点 IDFT → \(r_{12}\)(m)(注意结果的下标平移:m<0 的部分在末尾)。
💡 相关结果含负延迟,IDFT 后下标 0…L−1 对应 m = 0…L/2−1 与 m = −L/2…−1,需要"圆周展开"(fftshift 思想)。
小结

第3章核心回顾

DFS 与 DFT

  • DFS:周期序列 ↔ N 个谐波,X̃(k) 周期 N
  • DFT = DFS 取主值;((n))\(_{N}\) 表示模 N 余数
  • X(k) = Σ x(n)\(W_{N}^{kn}\),\(W_{N}\) = \(e^{-j2\pi/N}\)

DFT 性质

  • 线性(先补到同长)· 圆周位移 · 循环卷积
  • 实序列:实部偶、虚部奇(共轭对称)
  • 帕塞瓦尔:时域能量 = 频域能量 / N

与其他变换

  • DFT = z 变换在单位圆上的 N 点采样
  • 内插公式可由 X(k) 恢复 X(z)、X(\(e^{j\omega}\))
  • 采样点之间的细节看不见 → 栅栏效应

快速算法

  • 循环卷积 = IDFT[X₁(k)·X₂(k)]
  • 补零到 L ≥ N₁+N₂−1 才等于线性卷积
  • 长序列 → 重叠相加法分块处理
  • 相关:X₁(k)·X₂\(^{*}\)(k)(多一个共轭)
🎯 一句话:DFT 把"连续频谱"离散成 N 个频点,让计算机能算;所有 DFT 运算都隐含周期性——所以才有了圆周位移、循环卷积,以及"必须补够零"这条铁律。
演示

频谱泄漏与加窗

非整周期采样时 DFT 发生泄漏。加汉宁窗可抑制旁瓣但加宽主瓣。改变点数 N 看栅栏效应。
N = 32
演示

DFT = DTFT 的频域采样

DFT 就是 DTFT 在 ω=2πk/N 处的等间隔采样。N 越大,采样越密,越逼近连续谱。
N = 8
习题

本章习题

  • 对 \(x(n)=\{1,2,3,4\}\) 计算 4 点 DFT \(X(k)=\sum_{n=0}^{3}x(n)W_{4}^{kn}\),其中 \(W_{4}=e^{-j2\pi/4}\)。
  • 说明 DFT 与 DTFT 的关系,并指出 DFT 的“隐含周期性”含义。
  • 基-2 FFT 的复乘次数约为多少?相比直接 DFT 的 \(N^{2}\) 降低了多少?
☰大纲
本课大纲 «
← → 翻页 · 空格 下一步 · M 章节 · F 全屏