✅ 一、名词速览(先不解释)
缩写 | 全称 | 中文名称 |
---|---|---|
FT | Fourier Transform | 傅里叶变换 |
FS | Fourier Series | 傅里叶级数 |
DTFT | Discrete-Time Fourier Transform | 离散时间傅里叶变换 |
DFS | Discrete Fourier Series | 离散傅里叶级数 |
DFT | Discrete Fourier Transform | 离散傅里叶变换 |
FFT | Fast Fourier Transform | 快速傅里叶变换 |
这些工具之间的最大差异是 “是否离散”和“是否周期”。
🧭 二、先记住这个核心框架图(理解关系):
连续时间 / 非周期信号 ---> FT(傅里叶变换)
连续时间 / 周期信号 ---> FS(傅里叶级数)
↓ 采样(离散)
离散时间 / 非周期信号 ---> DTFT(离散时间傅里叶变换)
离散时间 / 周期信号 ---> DFS(离散傅里叶级数)
↓ 截断成有限长度 → 数值计算
有限点 / 离散信号 ---> DFT(离散傅里叶变换)
DFT ≈ DTFT 采样点
DFT ← 用 FFT 算得更快(FFT 是 DFT 的加速算法)
🧠 三、详细解释与联系图解
🎯 1. FT(Fourier Transform)
- 输入:连续时间 + 非周期信号(如声音信号)
- 输出:连续频率的频谱(可无限细分)
数学公式:X(f)=∫−∞∞x(t)e−j2πftdt
✅ 用途:分析任何非周期、连续信号的频谱。
🎯 2. FS(Fourier Series)
- 输入:连续时间 + 周期信号(如方波、正弦波)
- 输出:一组离散频率上的系数
数学形式(基本形式):x(t)=∑n=−∞∞cnej2πnf0t
✅ 用途:表达周期函数为多个正弦波叠加(频谱是离散的)。
🎯 3. DTFT(Discrete-Time Fourier Transform)
- 输入:离散时间 + 非周期信号(如数字音频)
- 输出:连续频率域 的复函数
公式:X(ejω)=∑n=−∞∞x[n]e−jωn
✅ 用途:频域理论分析,用于理解离散信号的频谱结构(但不能计算,因其为连续函数)。
🎯 4. DFS(Discrete Fourier Series)
- 输入:离散时间 + 周期信号(例如8点周期信号)
- 输出:有限组频率点的频谱(N个频率点)
公式:x[n]=∑k=0N−1X[k]ej2πNkn
✅ 用途:周期离散信号频域表示,频谱是周期且离散的。
🎯 5. DFT(Discrete Fourier Transform)
- 输入:有限长度的离散信号(如长度为 N 的音频段)
- 输出:N 个频率采样点的频谱
公式:X[k]=∑n=0N−1x[n]e−j2πNkn
✅ 用途:
- 可以近似分析非周期信号的频谱
- 是实际中频域变换的主力军
- DFT 是 DTFT 在某些频点的采样
⚡ 6. FFT(Fast Fourier Transform)
- 本质:DFT 的加速算法
- 原理:使用分治法将 DFT 从 O(N²) 加速到 O(N log N)
✅ 用途:
- 快速频谱分析
- 语音识别、图像滤波、谱图分析等
🎯 四、简化记忆法则
特征 | 连续时间 | 离散时间 | 有限时间 |
---|---|---|---|
周期 | FS | DFS | DFT |
非周期 | FT | DTFT | DFT(截断) |
快速计算 | ❌ | ❌ | ✅ FFT |
📌 五、举个例子来理解
你有一段 1 秒的声音录音(采样率 44.1kHz):
- 实际是一个 离散时间非周期信号 → 你可以用 DTFT 分析频率,但没法算出来,因为它是连续函数。
- 所以我们用 DFT,得到 44100 个频率点。
- 你用 FFT 算法,1 秒钟就可以计算完这些频点。
- 如果这个信号是周期性的,比如合成的 1kHz 正弦波,那么你也可以用 DFS 表达。
- 如果这是模拟信号原始波形,数学上应使用 FT 或 FS。
🧪 六、常用分析工具对照
名称 | 是否离散 | 是否周期 | 是否有限 | 可否计算 | 使用场景 |
---|---|---|---|---|---|
FT | 否 | 否 | 否 | ❌ | 数学分析 |
FS | 否 | 是 | 否 | ❌ | 正弦叠加建模 |
DTFT | 是 | 否 | 否 | ❌ | 理论频域分析 |
DFS | 是 | 是 | 否 | ✔️ | 离散周期信号频谱 |
DFT | 是 | 是(隐含) | 是 | ✔️ | 数字信号频谱分析 |
FFT | 是 | 是(隐含) | 是 | ✔️ 快速 | 实时信号处理、嵌入式等 |
📚 七、延伸阅读与工具
- 《Discrete-Time Signal Processing》—— Oppenheim 教科书经典
- MATLAB / Python 实现:
import numpy as np import matplotlib.pyplot as plt x = np.sin(2 * np.pi * 10 * np.arange(0, 1, 0.01)) X = np.fft.fft(x) plt.plot(np.abs(X))
✅ 八、总结金句(建议背下来)
DFT 是 DTFT 的有限长度采样,FFT 是 DFT 的快速算法,FS 是 FT 的周期版本,DFS 是 DTFT 的周期版本。
发表回复