<!-- title: FFT与IFFT原理：OFDM的数学引擎 -->

# 从傅里叶变换到OFDM：为什么发射端是IFFT、接收端是FFT？

如果你打开任何一个4G/5G空口的协议框图、芯片datasheet，或者用频谱仪抓过LTE信号，几乎一定会看到两个方块：发射链路上标着 **IFFT**，接收链路上标着 **FFT**。大多数工程师用了很多年，对它们的理解停留在“一个是逆变换、一个是正变换”的层面。但真正值得追问的问题是：**为什么偏偏是这一对变换，坐在了整个移动通信物理层的正中央？**

这篇文章就从数学直觉讲到工程实现，把这对“引擎”彻底拆开看一遍。

---

## 一、时域与频域：同一枚硬币的两面

先建立一个直觉。设想一个合唱团正在演唱C大调和弦：你站在音乐厅里听到的是**一 mixed 在一起的声波**——一条随时间起伏的压力曲线，这是信号的**时域**描述。而作曲家写在谱子上的，是"Do、Mi、Sol三个音符"，这是信号的**频域**描述。

两条描述指向的是同一个物理对象，只是视角不同：

- **时域**：信号“长什么样”——幅度随时间如何变化；
- **频域**：信号“由什么构成”——由哪些频率成分、各占多少权重叠加而成。

傅里叶变换就是这两种视角之间的**翻译官**：正变换把时域波形拆成频谱配方，逆变换把频谱配方合成时域波形。注意这个“拆”和“合”的方向，后面它是理解OFDM的钥匙。

类比到通信里更实用：多个人同时在嘈杂的房间里说话，如果所有人用**同一个音调**说话，你根本分不清谁在说什么；但如果每个人用一个**固定的音高**（男低音、女高音各占一路），人耳就能分离出每一路。无线通信面临的正是同样的困境——多径、干扰、有限带宽——而“让每个用户/每路数据占用一个不同且互不干扰的频率音调”，就是多载波思想的起点。

---

## 二、DFT：把信号拆成“正弦波配方”

计算机不能处理连续的积分，只能处理采样后的离散点。**离散傅里叶变换（DFT）**就是傅里叶变换的离散版本：给定 $N$ 个时域采样点，算出 $N$ 个频域系数。

正变换（DFT）：

$$X_k = \sum_{n=0}^{N-1} x_n \, e^{-j 2\pi kn/N}, \quad k = 0, 1, \dots, N-1$$

逆变换（IDFT）：

$$x_n = \frac{1}{N} \sum_{k=0}^{N-1} X_k \, e^{+j 2\pi kn/N}$$

这两个公式初看吓人，其实可以读成一句大白话：

> **任何一个长度为 N 的信号，都可以唯一地表示成 N 个不同频率的正弦波（复指数）的加权和；DFT 求“每个频率分量占多少权重”，IDFT 则是“按权重把正弦波重新加回去”。**

式中那个 $e^{-j2\pi kn/N}$ 叫做**旋转因子**（twiddle factor），你可以把它想象成“单位圆上均匀分布的N个指针”。DFT的本质，就是让输入信号分别与这N个指针做相关——信号里含有多少“这个转速的旋转”，相关结果就会在那个位置冒出峰值。这就像用一把标准音叉去“嗡”地敲一下，听环境音里有没有和它同频的成分。

---

## 三、FFT：不是新变换，而是“算得快的DFT”

这是最常见的误解之一，必须先澄清：

> **FFT不是另一种变换，它和DFT算出的结果一模一样，只是换了一种聪明的算法，把计算量从 $O(N^2)$ 降到了 $O(N\log_2 N)$。**

按DFT定义直接算，$N$ 个输出、每个输出要累加 $N$ 项，共需 $N^2$ 次复数乘法。但1965年Cooley和Tukey发表的快速算法（其思想最早可追溯到1805年高斯的手稿）发现了一个分治技巧：

1. 把 $N$ 点DFT按奇偶下标**拆成两个 $N/2$ 点DFT**；
2. 两个小DFT各自递归地再拆；
3. 最后用旋转因子的对称性和周期性把结果“拼”回去。

每次拆分把问题规模减半，拆 $\log_2 N$ 层后只剩2点DFT（加减法而已），每层合并需要约 $N$ 次乘法——总复杂度就是 $N\log_2 N$。这个合并单元因为画出来像蝴蝶，被称为**蝶形运算**（butterfly）。以4点FFT为例，其按时间抽取（DIT）结构如下（输入需按比特反序重排为 $x_0, x_2, x_1, x_3$）：

```mermaid
graph LR
    subgraph 输入["比特反序输入"]
        x0["x(0)"]
        x2["x(2)"]
        x1["x(1)"]
        x3["x(3)"]
    end
    subgraph S1["第1级：两个2点DFT"]
        B1(("蝶形1"))
        B2(("蝶形2"))
    end
    subgraph S2["第2级：乘旋转因子后合并"]
        W1["×W⁰"]
        W2["×W₁"]
        B3(("蝶形3"))
        B4(("蝶形4"))
    end
    subgraph OUT["自然顺序输出"]
        X0["X(0)"]
        X1["X(1)"]
        X2["X(2)"]
        X3["X(3)"]
    end
    x0 --> B1
    x2 --> B1
    x1 --> B2
    x3 --> B2
    B1 --> W1
    B2 --> W2
    W1 --> B3
    W2 --> B3
    W1 --> B4
    W2 --> B4
    B3 --> X0
    B3 --> X2
    B4 --> X1
    B4 --> X3
```

规模上的差距是惊人的。以 $N=4096$ 为例：直接按定义算大约需要**3000万次**运算，而基-2 Cooley-Tukey算法只需约 **7万次**——相差400多倍。对一个每秒要处理成千上万个OFDM符号的基带芯片来说，这就是“可行”与“不可行”的分界线。这也是为什么OFDM的思想1966年就在贝尔实验室被提出，却要等到上世纪90年代低成本DSP芯片成熟后才真正大规模商用——**FFT芯片，是OFDM的“生产力前提”**。

---

## 四、核心洞察：OFDM为什么发射端用IFFT？

现在回到开头那个问题。先看OFDM想干什么：把高速串行数据拆成几千路并行的低速数据，分别调制到几千个**紧挨着、频谱互相重叠却不互相干扰**的正交子载波上同时发送。

### 4.1 笨办法 vs 聪明办法

**笨办法**（1966年的原始方案）：为每一个子载波配一个独立的振荡器、一个调制器，发射机端真刀真枪地生成几千路正弦波再相加；接收机端配几千个解调器。子载波一多，硬件规模爆炸，成本上完全不可行。

**聪明办法**（1971年Weinstein和Ebert提出的实现）：注意IDFT的公式——

$$x_n = \frac{1}{N} \sum_{k=0}^{N-1} X_k \, e^{+j 2\pi kn/N}$$

它做的事情，**恰恰就是“把N路频率分量各乘一个复系数、再全部加起来”**！也就是说：

> **"用N个振荡器生成N路子载波并叠加"这个物理过程，在数学上与“做一次N点IDFT”完全等价。**

于是发射机的几千个振荡器，被一块做IFFT的数字芯片取代：

- 把每路子载波上要传的QAM符号 $X_k$ 排成一列，当作**频域系数**；
- 送进IFFT，输出的 $N$ 个时域采样点 $x_n$，**天然就是所有子载波叠加好的波形**；
- DAC数模转换、搬移到射频，发射。

接收端则反过来：收到的时域波形采样后做FFT，就“分拣”出了每个子载波上承载的QAM符号。**IFFT是“合成器”，FFT是“分拣器”**——这就是那对变换坐镇物理层中央的根本原因。

完整的收发链路如下：

```mermaid
graph TD
    subgraph TX["发射机（如基站）"]
        A[比特流] --> B["QAM映射<br/>（每log2 M比特→1个复符号）"]
        B --> C["串并转换<br/>N路并行"]
        C --> D["N点IFFT<br/>频域→时域"]
        D --> E["加循环前缀CP"]
        E --> F["DAC + 射频前端"]
    end
    CH((无线多径信道))
    subgraph RX["接收机（如终端）"]
        G["射频前端 + ADC"] --> H["去CP<br/>定时同步"]
        H --> I["N点FFT<br/>时域→频域"]
        I --> J["信道估计与<br/>单抽头均衡"]
        J --> K["QAM判决"]
        K --> L["并串转换→比特流"]
    end
    F -->|"s(t)"| CH
    CH -->|"r(t) = s(t)*h(t)+n"| G
```

### 4.2 正交性：子载波为什么“挤在一起却不打架”

常规FDM系统里，相邻载波之间必须留保护带，否则互相串扰，频谱效率很低。OFDM敢让子载波频谱大幅重叠，靠的是精心设计的**正交条件**：子载波间隔严格等于

$$\Delta f = \frac{1}{T_{\text{symbol}}}$$

即**子载波间隔 = 符号长度的倒数**。此时任意两个子载波在一个符号周期内积分严格为零：

$$\frac{1}{T}\int_0^T e^{j2\pi k_1 t/T}\left(e^{j2\pi k_2 t/T}\right)^* dt = \begin{cases} 1, & k_1 = k_2 \\ 0, & k_1 \neq k_2 \end{cases}$$

直觉解释：在一个符号周期 $T$ 内，相邻子载波恰好相差**整数个周期**。接收端用FFT解调时，本质是对波形“取整数个周期做相关”——想提取第 $k$ 路时，其他任何一路子载波在这段窗口里转了整数圈，“平均值”精确为零，仿佛它们互不存在。这就是“频谱重叠却零干扰”的魔法。反过来，一旦频偏破坏了这个整数周期关系，正交性崩塌，产生**载波间干扰（ICI）**——这是现网调试中最重要的原理性约束，后文详述。

---

## 五、循环前缀：一个“抄尾巴”的神来之笔

多径是无线信道的宿命：信号经多条路径先后到达，前一个符号的“尾巴”会拖进后一个符号，造成**符号间干扰（ISI）**。传统单载波系统为此要设计复杂时域均衡器。

OFDM的解法极为优雅：在每个符号前插入**循环前缀（Cyclic Prefix, CP）**——把符号**尾部的片段复制到头部**。要求CP长度大于信道最大时延扩展，这样多径副本永远落在CP范围内，FFT窗口内的有效符号部分不受前一个符号污染。

为什么是“复制尾巴”而不是填零？因为复制尾部使波形在一个周期内呈现**循环性**，多径卷积因此变成**循环卷积**，而循环卷积在频域就是对角化——信道对每个子载波的影响退化为一个复数乘法 $H_k$。于是均衡简单到令人发指：

$$\hat{X}_k = \frac{Y_k}{H_k}, \quad k = 0, 1, \dots, N-1$$

**每个子载波只需一次复数除法**（单抽头频域均衡），对比单载波系统动辄上百抽头的时域FIR均衡，复杂度低了几个数量级。一个直观例子：若符号周期1 ms、CP取其1/8即125 μs，可容忍的多径时延扩展对应约37.5公里的路径差——这正是CP较长的系统（如地面数字电视）能组建单频网（SFN）的原因。

代价当然有：CP不承载任何数据，是纯粹的**开销**。CP越长，吞吐率损失越大——这就是为什么标准要在“抗多径能力”和“频谱效率”之间反复权衡。

---

## 六、从LTE到5G NR：同一引擎的参数化演进

理解了IFFT/FFT引擎，再看标准就通透了——**所谓numerology（参数集），核心就是围绕FFT尺寸和子载波间隔做设计**。

| 系统 | 子载波间隔 | FFT规模（20MHz级） | 有用符号长度 | 常规CP | 典型采样率 |
|---|---|---|---|---|---|
| LTE | 15 kHz（固定） | 2048点 | ≈66.7 μs | ≈4.7 μs | 30.72 Msps |
| 5G NR（基础） | 15 kHz | 4096点（可裁剪） | ≈66.7 μs | ≈4.7 μs | 30.72 Msps |
| 5G NR（n=1） | 30 kHz | — | ≈33.3 μs | ≈2.3 μs | — |
| 5G NR（n=2） | 60 kHz | — | ≈16.7 μs | ≈1.2 μs | — |
| 5G NR（n=3） | 120 kHz（毫米波常用） | — | ≈8.3 μs | ≈0.6 μs | — |

注意这里的“为什么这样设计”：

- **LTE固定15 kHz**：面向6GHz以下宏覆盖，多径时延可达数微秒，所以符号要够长（66.7 μs）、CP要够宽，牺牲一点低时延能力换覆盖鲁棒性。
- **5G NR采用可扩展numerology（15×2ⁿ kHz）**：子载波间隔每翻一倍，符号和CP同步缩短一半——**符号总时长（含CP）保持恒定**，无线帧结构得以对齐。大间隔适合高频段（相位噪声大、需要更宽的频率栅格抗偏）和低时延业务（uRLLC）；小间隔适合低频广覆盖。**一种FFT引擎，通过缩放参数适配全场景**，这是5G空口设计哲学的精髓。
- **CP随间隔缩短**：毫米波场景传播快、时延扩展相对小，CP短一点也能覆盖，还顺带降低了开销。

另一个重要分支是**上行为何不用OFDM而用SC-FDMA**。OFDM有个软肋：IFFT输出是N路独立子载波的叠加，各路相位随机，同相叠加时会产生极高的**峰均比（PAPR）**——峰值功率可比均值高出10 dB以上，迫使功放工作在高度线性的区域（回退），效率极低。基站可以承受昂贵的线性功放，**电池供电的手机承受不起**。于是LTE上行采用了DFT扩展方案：先做一个小规模DFT把数据“预压缩”，再进IFFT——

```mermaid
graph LR
    subgraph OFDM_TX["OFDM发射（下行）"]
        A1["QAM符号"] --> B1["IFFT"] --> C1["高PAPR波形"]
    end
    subgraph SCFDMA_TX["SC-FDMA发射（LTE上行）"]
        A2["QAM符号"] --> B2["N点DFT<br/>（预扩展）"] --> C2["M点IFFT"] --> D2["类单载波波形<br/>低PAPR"]
    end
```

其效果是波形“长得像”单载波信号，PAPR大幅降低，功放可以工作在更高效的状态——代价是牺牲了下行OFDMA那种灵活的频域调度自由度。**下行用OFDMA（性能优先），上行用SC-FDMA（功耗优先）**，是能量约束决定波形设计的经典案例。5G NR上行为CP-OFDM（借助功放技术进步容忍了更高PAPR），换取上下行波形统一。

---

## 七、实战连接：这些原理在现网调试中怎么用

**1. EVM恶化，先查相位噪声和频偏。** 正交性对频率误差极其敏感——接收端本振偏差或多普勒频移会让FFT窗口内的子载波不再“转整数圈”，产生载波间干扰（ICI）。现象是：星座图整体旋转（固定频偏，可被导频跟踪纠正）或者星座点发糊扩散（多普勒扩展导致的ICI，难救）。用频谱仪看高速移动场景（高铁）的上行信号，EVM明显劣化，原理根源就在这里——这也是OFDM被指“对多普勒敏感”的机制本质。

**2. 定时偏差的容忍度取决于CP。** FFT窗口落在CP范围内（只要不落入前一符号的有效部分），循环性保证了依然能正确解调，只是各子载波附加一个可被均衡吸收的相位旋转。所以协议对定时提前（TA）的精度要求，本质上是“别让FFT窗滑出CP”。调试中若发现TA接近边界时误码率抬升，检查CP配置和小区半径的匹配即可理解。

**3. 频谱仪上认OFDM信号。** OFDM时域波形像噪声、频域近似“白”而平坦（大量子载波叠加）。看到矩形滚降的平顶频谱、时域上包络剧烈起伏的突发，基本就是多载波信号；而PAPR抑制做得好的上行SC-FDMA，时域包络会平滑得多。

**4. 常见调试陷阱：**
- **把FFT点数当带宽算**：FFT点数（如2048）是采样点数，实际占用带宽由"有效子载波数×子载波间隔"决定，通常小于FFT对应的奈奎斯特带宽（两边有保护带）。
- **忽视CP开销估算吞吐**：用纯符号速率算峰值速率会偏高，实际有效速率要乘以 $T_{\text{symbol}}/(T_{\text{symbol}}+T_{\text{CP}})$ 及参考信号、控制信道的开销。
- **毫米波链路照搬低频经验**：120 kHz间隔下CP只有约0.6 μs，小区半径做大后CP可能罩不住时延扩展——远点用户劣化比低频小区更陡，这正是numerology要与覆盖场景绑定的原因。

---

## 八、小结

把全文压缩成四句话：

1. **时域和频域是同一信号的两个视角**，傅里叶变换是两者间的翻译。
2. **FFT不是新变换，而是把DFT复杂度从 $O(N^2)$ 降到 $O(N\log N)$ 的分治算法**——它让多载波通信从数学可能变成工程现实。
3. **IFFT在数学上等价于“N个振荡器叠加合成”**，所以OFDM发射机用IFFT合成波形、接收机用FFT分拣子载波；子载波间隔=符号率倒数保证了正交。
4. **循环前缀把多径卷积变成循环卷积**，换来每个子载波一次除法的极简均衡；而PAPR问题催生了上行SC-FDMA和5G的可扩展numerology。

---

## 常见问题

**Q1: FFT和DFT的区别是什么？**
A: 没有本质区别——二者计算的是**完全相同的结果**。DFT是数学定义（$N^2$ 次乘加），FFT是计算该定义的快速算法（约 $N\log_2 N$ 次），靠分治和旋转因子的对称性/周期性省掉重复运算。说“设备里用FFT”实际指“用FFT算法算DFT”。

**Q2: 为什么OFDM发射端用IFFT而不是FFT？**
A: 方向问题。发射端要做的是"把N路频域符号**合成**为一路时域波形"，这正是IDFT的定义；接收端要做的是把时域波形**分解**回N路频域符号，用DFT（FFT实现）。两者互为逆变换，成对出现。

**Q3: CP既然不传数据，为什么不干脆去掉？**
A: 去掉CP，多径破坏循环性，信道不再是“每子载波一个乘法”，单抽头均衡失效，必须回到复杂的时域均衡，且FFT窗易被前一符号污染。部分系统（如超宽带UWB）确实用零填充保护间隔省功率，但接收机需自行重构循环性，复杂度转移到了接收端。

**Q4: 子载波间隔为什么5G NR要做成可变的，LTE固定15 kHz不行吗？**
A: LTE单一场景（sub-6G宏覆盖）够用；5G要同时服务低频广覆盖、毫米波大带宽和uRLLC低时延。间隔翻倍则符号/CP等比缩短，一种帧结构参数化适配所有场景，且不同numerology还能在同一载波内混合调度。

**Q5: OFDM信号PAPR高，除了上行换SC-FDMA还有什么办法？**
A: 常见思路包括峰值削波+滤波、选择性映射（SLM）、部分传输序列（PTS）、预留子载波等，代价分别是失真、计算量和吞吐开销。现代功放则靠数字预失真（DPD）+包络跟踪提升线性区效率，从器件侧缓解而非改变波形。

---

## 参考来源

3. [Weinstein & Ebert (1971), "Data Transmission by Frequency-Division Multiplexing Using the Discrete Fourier Transform"](https://doi.org/10.1109/TCOM.1971.1090705) — 首次提出用DFT/IDFT实现OFDM并引入保护间隔的经典论文
4. [Cooley & Tukey (1965), "An algorithm for the machine calculation of complex Fourier series"](https://doi.org/10.1090/S0025-9718-1965-0178586-1) — 现代FFT算法的奠基论文

---
> 本文由「51学通信」技术团队出品。51学通信由通信行业18年老兵**爱卫生**（微信ID: gprshome201101）维护，聚焦5G/6G核心网、3GPP标准解读、通信前沿技术深度分析。
> 出版作品有《5G核心网原理与实践》《IMS原理与实践》等4本通信专业书籍。知识星球「51学通信」提供深度技术答疑和行业洞察。

> [!tip] 51学通信知识星球
> **星主：爱卫生**（微信：gprshome201101）——公众号「51学通信」创办者，19 年通信行业运维与讲师经验，著有《GPRS网络信令实例详解》《EPC原理与实践》《5G核心网原理与实践》三本纸质书（各大电商平台有售）。
> **星球定位**：深耕 5G 核心网、IMS、NFV/AI、云原生等 ICT 领域，主打运维岗位与信令分析。
> **当前规模**：5200 篇主题 / 990 个回答，198 元/年。
> **加入福利**：加入星球后请加爱卫生微信，拉您进知识星球年度陪伴与答疑群——不限量回复您的各种问题，另有群内分享。
> **AI 加持**：51学通信知识星球已作为 skill 接入 WorkBuddy，使用 deepseek-4-flash 在海量星球帖子中精准找贴、找视频、找 FAQ 和案例，做总结、找文档和 PPT 等场景全覆盖。

![51学通信知识星球海报-扫码加入](https://wiki.500nian.com/images/zhixingqiu_qrcode.png)
