第1章:传统数字信号处理
版本: v2.1 最后更新: 2026-05-30
在线 Notebook
对应的交互式版本可在 Google Colab 打开,统一使用方式见 第0章说明。
章节概览
本章介绍传统数字信号处理(DSP)的核心概念,为后续章节提供统一的数学底座。这里的重点不是把所有经典算法都铺开,而是建立一条清晰的主线:信号表示 → 频域分析 → 滤波/卷积 → 随机建模 → 检测/估计 → 子空间方法。
这条主线既适用于通信接收机,也适用于图像、音频和时间序列;后续章节中的卷积、位置编码、序列建模和表示学习,都能在这一章里找到对应的数学原型。
快速导航
| 章节 | 文件 | 难度 | 时间 |
|---|---|---|---|
| 1.1 信号的三种视角 | 01_signals.md | ⭐ | 10分钟 |
| 1.2 傅里叶变换与频谱分析 | 02_fourier.md | ⭐⭐ | 15分钟 |
| 1.3 滤波器与卷积 | 03_filters.md | ⭐⭐ | 15分钟 |
| 1.4 时频分析 | 04_time_freq.md | ⭐⭐ | 10分钟 |
| 1.5 随机信号理论 | 05_random_signals.md | ⭐⭐⭐ | 20分钟 |
| 1.6 信号检测 | 06_signal_detection.md | ⭐⭐⭐ | 20分钟 |
| 1.7 信号估计 | 07_signal_estimation.md | ⭐⭐⭐ | 20分钟 |
| 1.8 矩阵分解应用 | 08_matrix_decomposition.md | ⭐⭐⭐⭐ | 20分钟 |
小节目录
基础概念(1.1-1.4)
1.1 信号的三种视角 — 📖 阅读
- 时域、频域、时频,理解信号的多个角度
1.2 傅里叶变换与频谱分析 — 📖 阅读
- 从时域到频域的转换,位置编码的数学基础
1.3 滤波器与卷积 — 📖 阅读
- 信号处理的基本操作,CNN 卷积核的原型
1.4 时频分析 — 📖 阅读
- 同时看到时间和频率信息,STFT 与小波变换
理论与应用(1.5-1.8)
1.5 随机信号理论 — 📖 阅读
- 统计特性、平稳性、高斯过程、噪声模型
1.6 信号检测 — 📖 阅读
- 假设检验、似然比检验、ROC曲线、检测器设计
1.7 信号估计 — 📖 阅读
- 参数估计、MLE、LSE、贝叶斯估计、Cramér-Rao界
1.8 矩阵分解应用 — 📖 阅读
- SVD、EVD、子空间方法、MUSIC、PCA、去噪
学习时间
- 快速版(仅阅读1.1-1.4):15分钟
- 标准版(阅读1.1-1.8):60分钟
- 深度版(包含代码实验和练习):120分钟
核心问题
完成本章后,你应该能回答:
基础部分(1.1-1.4):
- 信号可以从哪些角度理解?
- 傅里叶变换的本质是什么?
- 卷积如何实现滤波?
- CNN中的卷积核与DSP中的滤波器有什么关系?
进阶部分(1.5-1.8): 5. 什么是随机信号?如何分析其统计特性? 6. 如何在噪声中检测信号?什么是ROC曲线? 7. 如何从观测中估计信号参数?什么是Cramér-Rao界? 8. 矩阵分解如何应用于信号处理?什么是MUSIC算法?
代码实验
本章共有 12 个代码脚本,生成 16 张图片,覆盖所有 8 个小节。
| 小节 | 脚本 | 生成图片 | 文档位置 |
|---|---|---|---|
| 1.1 信号的三种视角 | signal_dimensions.py | ch01_signal_dimensions.png | 1.1 |
| 1.1 信号的三种视角 | signal_three_views.py | ch01_three_views.png | 1.1 |
| 1.2 傅里叶变换 | fft_spectrum.py | ch01_fft_spectrum.png | README |
| 1.2 傅里叶变换 | fourier_2d.py | ch01_fourier_2d.png | 1.2 |
| 1.2 傅里叶变换与位置编码 | positional_encoding.py | ch01_positional_encoding.png | 1.2 |
| 1.3 滤波器与卷积 | random_signals.py | ch01_convolution_effect.png | 1.3 |
| 1.4 时频分析 | time_freq_analysis.py | ch01_time_freq_music.png | 1.4 |
| 1.4 时频分析 | time_freq_analysis.py | ch01_time_freq_comparison.png | 1.4 |
| 1.5 随机信号 | random_signals.py | ch01_random_signals.png | 1.5 |
| 1.6 信号检测 | signal_detection.py | ch01_detection_performance.png | 1.6 |
| 1.6 信号检测 | signal_detection.py | ch01_signal_detection.png | 1.6 |
| 1.7 信号估计 | parameter_estimation.py | ch01_parameter_estimation.png | 1.7 |
| 1.8 矩阵分解 | music_algorithm.py | ch01_matrix_decomposition.png | 1.8 |
| 1.8 矩阵分解 | music_algorithm.py | ch01_matrix_decomposition_performance.png | 1.8 |
| 1.8 矩阵分解 | feature_extraction_comparison.py | ch01_feature_extraction.png | 1.8 |
| 扩展:随机过程 | stochastic_processes_demo.py | ch01_stochastic_processes.png | extensions |
运行所有实验:
python code/ch01_dsp/fft_spectrum.py
python code/ch01_dsp/signal_three_views.py
python code/ch01_dsp/time_freq_analysis.py
# ... 其余脚本见上表
图1.1:FFT频谱分析。展示信号在频域的表示,不同频率分量的幅度和相位。
代码文件: code/ch01_dsp/fft_spectrum.py运行方式: python code/ch01_dsp/fft_spectrum.py
推荐学习路径
路径1:快速入门(15分钟)
- 阅读 1.1-1.4 的正文
- 查看图表和公式
- 理解基础概念
- 回答"核心问题"中的前4个问题
路径2:标准学习(60分钟)
- 阅读 1.1-1.8 的所有内容
- 理解每个小节的核心概念
- 查看实际应用例子
- 回答"核心问题"中的所有8个问题
路径3:深度学习(120分钟)
- 阅读所有内容
- 运行代码实验
- 分析实验结果
- 自己实现简单的算法(如能量检测器、MUSIC算法)
- 完成练习题
关键概念速查
| 概念 | 公式 | 直观理解 | 章节 |
|---|---|---|---|
| 傅里叶变换 | 信号从时域到频域的转换 | 1.2 | |
| 卷积 | 信号与滤波器的组合 | 1.3 | |
| 频率响应 | 滤波器对不同频率的响应 | 1.3 | |
| 自相关函数 | 信号与自身的相似性 | 1.5 | |
| 功率谱密度 | 信号功率在频域的分布 | 1.5 | |
| 似然比检验 | 给定约束下比较两种假设 | 1.6 | |
| 检测概率 | 正确检测信号的概率 | 1.6 | |
| 最大似然估计 | 最可能的参数值 | 1.7 | |
| Cramér-Rao界 | 估计器方差的下界 | 1.7 | |
| 奇异值分解 | 矩阵的标准分解 | 1.8 |
常见问题
Q: 为什么需要傅里叶变换? A: 很多信号处理问题在频域更容易分析和实现,例如滤波在频域里对应乘法。
Q: FFT和DFT有什么区别? A: FFT是DFT的快速算法,计算复杂度从O(n²)降低到O(n log n)。
Q: 卷积为什么在CNN中这么重要? A: 卷积提供了局部连接和共享参数的结构先验,适合处理具有局部相关性的信号。
Q: 什么是随机信号?为什么要研究它? A: 随机信号是不能完全确定的信号(如噪声)。现实中的信号往往包含随机成分,需要用统计方法分析。
Q: 如何判断信号是否存在? A: 使用假设检验和似然比检验。通过设置阈值,在虚警率和漏检率之间权衡。
Q: 参数估计和信号检测有什么区别? A: 检测是判断信号是否存在(二元决策),估计是确定信号的具体参数值(连续值)。
Q: MUSIC算法为什么能高分辨率估计频率? A: MUSIC利用信号子空间和噪声子空间的正交性,能分离接近的频率成分。
扩展内容
高级DSP话题 — 📖 阅读
- 窗函数详解(Hann、Hamming、Blackman 的频谱特性)
- 多速率信号处理(上采样、下采样、滤波器组)
- 滤波器设计(Butterworth、Chebyshev、椭圆滤波器)
- 与深度学习的连接(卷积、注意力、位置编码)
线性系统理论 — 📖 阅读
- 线性时不变系统(LTI):冲激响应与卷积
- 频率响应与系统稳定性分析
- 状态空间表示、可控性与可观测性
- 与深度学习的连接(RNN 状态方程、CNN 滤波器)
随机过程进阶 — 📖 阅读
- 平稳过程、马尔可夫链、高斯过程
- AR/MA/ARMA 模型与谱分析
- 随机过程的滤波(Wiener 滤波、Kalman 滤波)
- 与 LLM 的连接(语言模型作为序列随机过程)
关键连接点
DSP → CNN
DSP中的卷积:y[n] = Σ x[m] * h[n-m]
↓
CNN中的卷积核:可学习的滤波器启示: CNN可以看作是从数据中学习滤波器参数,而不是手工设计滤波器。
傅里叶变换 → 位置编码
傅里叶变换:用不同频率的正弦波表示信号
↓
位置编码:用不同频率的正弦波表示位置启示: 位置编码把顺序信息编码进向量表示,使 Transformer 能区分不同位置上的 token。
下一步: 阅读 1.1 信号的三种视角
