<!-- title: 载波频偏：收发对不齐的祸根 -->

# 载波频偏：收发对不齐的祸根

> 当两支乐队各按各的节拍器演奏同一首曲子时，哪怕节拍只差一点点，合奏也会从一开始的"还行"迅速滑向"灾难"。无线通信里的收发载波，就是这两台节拍器。

## 一、从一个直觉开始：解调的隐含前提

我们讲调制解调时，常常默认一件事——**收端手上有一把和发端一模一样的"尺子"**。

这把尺子，就是**载波（carrier）**。发端用载波把基带信号搬到射频，收端再用一个同频同相的载波把它搬回来。相干解调的整个数学推导，都建立在这个前提之上：

$$r(t) = s(t) \cdot \cos(\omega_c t) \xrightarrow{\text{收端乘 }} 2\cos(\omega_c t) \;\Rightarrow\; \text{低通后还原 } s(t)$$

这里的 $\cos(\omega_c t)$ 和 $\cos(\hat{\omega}_c t)$ 必须严丝合缝。问题是：**收端的 $\hat{\omega}_c$ 从哪来？**

答案是一个本振（LO，local oscillator），本质上是一块晶振。它和发端那块晶振，是两块**独立制造、独立供电、独立温漂**的物理器件。让两块独立的晶振长期输出频率绝对一致的信号——这在物理上不可能。再加上终端在移动，电磁波还会因相对运动产生多普勒频移。于是，**收端实际看到的载波，永远和发端"差一点"**。这个"差一点"，就叫**载波频率偏移（Carrier Frequency Offset, CFO）**。

理解了这一层，你就明白为什么载波同步（carrier synchronization）是解调里绕不开的第一道坎：**没有同步，后面所有漂亮的星座图、均衡、解码全是空中楼阁。**

## 二、CFO从哪来：三股"歪风"

把频偏拆开看，它由三个独立的物理来源叠加而成。理解来源，才能理解为什么不同场景下频偏的量级天差地别。

```mermaid
flowchart TD
    A["发端本振<br/>f_tx (晶振)"] --> B[上变频调制]
    B --> C{无线信道}
    D["终端运动<br/>多普勒 f_d"] --> C
    C --> E[收端]
    F["收端本振<br/>f_rx (晶振)"] --> E
    E --> G["总频偏<br/>Δf = (f_tx − f_rx) + f_d"]
    G --> H{按子载波间隔归一化}
    H -->|"整数倍"| I["整数频偏 ε_I<br/>子载波循环移位"]
    H -->|"小数倍"| J["分数频偏 ε_f<br/>破坏正交性 → ICI"]
```

**第一股歪风：本振频率漂移（LO drift）。** 这是最根本、也最无法消除的。手机的晶振精度通常用 **ppm（百万分之一）** 来衡量。一颗普通手机晶振的标称精度大约在 **10～20 ppm** 量级，温补晶振（TCXO）能做到 0.5～2 ppm。听起来很小，但别忘了载波频率本身很高。以 5G NR 的 3.5 GHz 为例：

$$\Delta f_{LO} = 3.5 \times 10^9 \times 20 \times 10^{-6} = 70 \text{ kHz}$$

70 kHz 的频偏！而 NR 一个子载波间隔（SCS）通常只有 15 kHz 或 30 kHz。这意味着收端一开始**连"在第几个子载波上"都可能数错 2～4 个**——这就是后文要讲的"整数频偏"问题。所以工程师调试时看到的"频偏几万赫兹"，根本不是异常，而是物理常量。

**第二股歪风：多普勒频移（Doppler shift）。** 终端相对基站运动时，电磁波频率会被"拉伸"或"压缩"：

$$f_d = \frac{v}{\lambda}\cos\theta = \frac{v \cdot f_c}{c}\cos\theta$$

算一笔高铁账：复兴号 350 km/h ≈ 97 m/s，3.5 GHz 下

$$f_d = \frac{97 \times 3.5\times10^9}{3\times10^8} \approx 1134 \text{ Hz}$$

1134 Hz 对 30 kHz SCS 来说不到 4%，看似不大；但在 28 GHz 毫米波下，同样的速度 $f_d$ 会飙到 9 kHz 以上，对毫米波常用的大 SCS（120/240 kHz）虽然占比小，可叠加相噪后会显著恶化 EVM。**多普勒的本质特征是"随时间变化、随运动方向变化"，这决定了它不能像本振漂移那样一次校准完事，必须持续跟踪。**

**第三股歪风：相位噪声（phase noise）。** 本振不是输出一个纯净的单频，它的瞬时相位会随机抖动，谱线是"带毛边"的。相位噪声在 OFDM 里会同时造成两个恶果：一是所有子载波**整体同向旋转**（公共相位误差 CPE），二是子载波间**互相泄漏**（也是 ICI 的一种）。CPE 可以靠导频补偿，但 ICI 部分基本无解，只能靠更好的晶振硬件压下去。

| 频偏来源 | 物理机制 | 典型量级（3.5GHz） | 时间特性 | 工程对策 |
|---------|---------|------------------|---------|---------|
| 本振漂移 | 收发晶振独立、温漂老化 | 数kHz～数十kHz | 缓慢、相对稳定 | 初始频偏估计+数控振荡器补偿 |
| 多普勒 | 终端相对运动 | 几十Hz～数kHz | 快变、随运动 | 持续跟踪（Costas环/导频跟踪） |
| 相位噪声 | 振荡器瞬时相位抖动 | 子载波级旋转 | 极快、随机 | 导频估CPE、硬件改善 |

## 三、CFO如何"搞破坏"：单载波的星座旋转

频偏进了收端，破坏方式因调制体制而异。先看**单载波 / 时域符号**。

假设发送的基带符号序列是 $a_n$，收端存在归一化频偏 $\varepsilon = \Delta f / \Delta f_{sc}$（$\Delta f_{sc}$ 为子载波间隔或符号率）。那么第 $n$ 个接收符号会带上一个**随符号序号累积的相位**：

$$\hat{a}_n = a_n \cdot e^{j2\pi \varepsilon \cdot n / N}$$

直觉上，这就像**给整个星座图装上了一个会转的风车**，而且每个符号转的角度比上一个多一点点。早期符号转得少，越往后转得越多。如果一个时隙有 14 个 OFDM 符号、每个符号几百个采样点，到时隙末尾，星座点可能已经转出了判决区，**解出来的比特完全是乱的**。

这就是为什么你在调试时如果忘了做频偏补偿，抓到的星座图不是"扩散成云团"，而是**"画成一个圆弧"**——这是频偏最经典的视觉签名。云团是噪声/相噪，圆弧才是频偏。

## 四、CFO如何"搞破坏"：OFDM为何格外娇贵

真正让工程师头疼的，是 OFDM 对频偏的**极端敏感**。这要从 OFDM 的"正交"是怎么来的说起。

OFDM 的各个子载波之所以互不干扰，不是因为它们离得远，而是因为它们间距精确等于符号速率的倒数（$\Delta f_{sc} = 1/T_{sym}$）。在频域看，每个子载波是一个 sinc 函数，**它的峰恰好落在所有相邻子载波的零点上**。收端做 FFT，等价于在每个子载波峰处采样——别人在这一点都是零，所以"我听到的只有我自己"。这就是"重叠为何不吵架"的数学根源。

可一旦有了分数频偏 $\varepsilon_f$，整个子载波网格整体平移，**峰不再对准别人的零点了**：

```mermaid
flowchart TB
    subgraph 理想["理想无频偏 (ε=0)"]
        A1["子载波间距 = 1/T"] --> A2["峰对准相邻子载波 sinc 零点"]
        A2 --> A3["FFT 采样点：别人都为零<br/>积分结果正交 → 无 ICI"]
    end
    subgraph 失配["存在分数频偏 (ε≠0)"]
        B1["子载波网格整体平移 Δf"] --> B2["峰落在相邻子载波 sinc 旁瓣上"]
        B2 --> B3["每个子载波泄漏能量给邻居<br/>→ 子载波间干扰 ICI"]
    end
```

把这个过程写成公式，第 $k$ 个子载波收到的信号变成了：

$$Y(k) = X(k)\,H(k)\,\underbrace{I(0)}_{\text{有用项}} + \sum_{m\neq k} X(m)\,H(m)\,\underbrace{I(m-k)}_{\text{ICI 干扰项}}$$

其中 $I(\cdot)$ 是由频偏决定的**耦合系数**。理想时 $I(0)=1$、其余为 0；有频偏时，$I(0)$ 缩小（有用信号变弱），其余 $I(\cdot)$ 不再为 0（别的子载波能量漏进来）。**这一增一减，就是 ICI 信噪比恶化的全部来源。**

关键的反直觉点来了：**为什么子载波越多、SCS 越小，OFDM 越怕频偏？** 因为归一化频偏 $\varepsilon = \Delta f / \Delta f_{sc}$ 在分母上。SCS 越小，同样物理频偏归一化后越大，ICI 越严重。这也是为什么 LTE（15 kHz SCS）比 5G NR 的 30 kHz 配置更"娇气"，以及为什么车联网/卫星等高速场景要专门考虑把 SCS 加大——**加大 SCS 本质上就是在给频偏"留余量"**。

| 维度 | 整数频偏 (ε_I) | 分数频偏 (ε_f) |
|------|---------------|---------------|
| 含义 | 频偏恰为子载波间隔整数倍 | 频偏含子载波间隔的小数部分 |
| 对子载波的影响 | 整体循环移位（如整体挪 3 格） | 峰偏离零点，正交性被破坏 |
| 是否产生 ICI | **否**（正交性仍保持） | **是**（能量泄漏） |
| 表现 | 数据子载波对错位置、解出全错 | 星座点扩散、SINR 下降 |
| 估计方法 | 靠导频/同步信号找移位量 | 靠 CP 相关或导频相位 |

## 五、收端怎么"对齐节拍器"：估计与补偿

既然频偏无法从硬件上根除，工程上的标准打法是：**先估，再补，后跟踪**。这是一条分工明确的流水线。

```mermaid
flowchart TD
    R["接收时域信号 r(n)"] --> S1["① 粗估<br/>CP相关 / 训练序列<br/>估 ICFO + 大分数频偏"]
    S1 --> C1["数控振荡器 NCO<br/>下变频补偿"]
    C1 --> FFT["去 CP + FFT"]
    FFT --> S2["② 精估<br/>导频 DMRS 相关<br/>估剩余 RCFO + 整数残留"]
    S2 --> C2["频域相位补偿<br/>消除公共相位"]
    C2 --> EQ["信道均衡 / 解映射"]
    EQ --> L["判决"]
    L --> TR["③ 跟踪<br/>Costas 环 / 相位跟踪<br/>压住残余漂移与多普勒"]
    TR -. 反馈 .-> C2
```

**第一步：基于循环前缀（CP）的时域粗估。** 这是 OFDM 最巧妙的"免费午餐"。CP 是把 OFDM 符号尾部的一段复制到前面当保护间隔。没有频偏和信道时延时，CP 里的样本和符号尾部对应位置的样本**几乎一样**。有了频偏 $\varepsilon$，二者之间会多出一个固定的相位差 $2\pi\varepsilon$。于是只要计算 CP 与尾部的相关、取其相位角，就能反解出分数频偏：

$$\hat{\varepsilon}_f = \frac{1}{2\pi}\,\arg\!\left(\sum_{n=0}^{N_{cp}-1} r^*(n)\,r(n+N)\right)$$

这个方法的好处是**不占额外开销**——CP 本来就要发，顺手就把频偏估了。坏处是估计范围只有 $[-0.5,\,+0.5]$（一个子载波间隔内），**估不出整数频偏**，而且受噪声影响，精度有限。所以它适合做"粗估"。

**第二步：基于导频（DMRS）的频域精估。** 5G NR 在每个时隙都会插 DMRS，这些导频收发双方都知道发的是什么。收端把接收到的导频和本地已知序列做相关，找相关峰最大的子载波移位——**这个移位量就是整数频偏**；同时用相邻导频之间的相位差细估剩余的分数频偏。这一步把"数错子载波位置"和"残留相位"一起解决。Schmidl-Cox 算法（用两个相同的前导符号）就是这类思想的经典代表。

**第三步：剩余相位/频率跟踪。** 粗估+精估之后，还会剩下缓慢漂移的本振残余和快速变化的多普勒。这部分靠**反馈环**持续跟踪，最经典的就是 Costas 环：

```mermaid
flowchart TD
    R["接收样本<br/>I_rx, Q_rx"] --> M["乘本地 NCO<br/>cosφ, sinφ"]
    N["数控振荡器 NCO"] --> M
    M --> D["判决器<br/>→ I_dec, Q_dec"]
    D --> E["鉴相器<br/>e = I_rx·Q_dec − Q_rx·I_dec"]
    M --> E
    E --> LF["环路滤波器<br/>压噪声、定带宽"]
    LF --> N
    N -. 相位锁定 .-> M
```

Costas 环的核心是一个**判决指引（decision-directed）的鉴相器**：用"判决出的理想星座点"和"实际收到的点"之间的夹角作为误差信号，反馈去微调本地 NCO 的相位。误差公式

$$e = I_{rx}\,Q_{dec} - Q_{rx}\,I_{dec} = \text{Im}\{(r - d)\cdot d^{*}\}$$

本质就是测量接收点相对判决点的"偏角"。环路滤波器决定跟踪的速度和稳态抖动之间的折中——带宽大，跟得快但噪声多；带宽小，平滑但跟不上高多普勒。**这就是为什么高铁场景下工程师要去调 PLL 环路带宽——本质是在"跟得上变化"和"不被噪声带偏"之间找平衡。**

## 六、5G NR 现网实战：ICFO、RCFO 与那些调试现象

把上面的原理落到现网，5G NR 把频偏处理拆成了两个阶段，对应工程上常见的两个术语：

- **ICFO（Integer CFO，整数频偏）**：开机初始接入阶段，由于收发晶振完全没校准过，频偏可能是好几个子载波。这一步用 SSB（同步信号块）的 PSS/SSS 来做粗同步，把整数倍移位找出来，先把"在第几个子载波"对齐。
- **RCFO（Residual CFO，剩余频偏）**：接入之后，只剩本振慢漂和多普勒这种小频偏，靠 DMRS 跟踪。

工程师在路测和基站日志里能直接看到这些原理的影子：

1. **"接入慢、随机接入失败率高"**——很可能是 ICFO 估计窗口不够大，晶振偏差大的终端初始频偏落在了搜索范围外，PSS/SSS 相关峰找不到，UE 卡在初始同步。这是低端物联网模组（晶振差）的典型坑。
2. **"星座图画圆弧 / 吞吐量随时间周期性抖动"**——典型的剩余频偏没跟踪住。通常是跟踪环带宽配小了，跟不上多普勒变化率（多普勒变化率在高加速、直升机旋翼遮挡场景下会很剧烈）。
3. **"高速场景下 MCS 被迫降阶、BLER 抬升"**——不是信号弱，是 ICI 把 SINR 拉低了。对策不是加功率，而是**加大 SCS**（NR 支持可变 SCS）或优化跟踪环。
4. **"高铁场景必须用扩展 CP 或特殊子帧配置"**——背后逻辑都是给频偏/时延扩展留余量。

一个常被忽略的事实：**频偏和定时偏差是耦合的。** 频偏会让 CP 相关峰的位置抖动，反过来影响符号定时同步；定时错了又会让 FFT 窗口包含错位的样本，产生新的相位旋转。所以现网里看到星座图乱，先别急着怀疑均衡器，**第一步永远是看频偏估计值和定时是否正常**——这两个是地基，地基歪了上层全歪。

## 七、常见误区与调试陷阱

- **误区一："频偏几万赫兹太大，肯定是晶振坏了。"** 不是。3.5 GHz 下 20 ppm 就是 70 kHz，这是正常晶振的物理精度。频偏大不等于故障，**只要补偿得掉就是好系统**。
- **误区二："整数频偏不产生 ICI，所以不用管。"** 大错。整数频偏虽然保住了子载波正交性，但它把数据搬到了**错误的位置**，解出的比特和实际发的根本对不上——表现为全错，比 ICI 还彻底。
- **误区三："SCS 越大频偏越严重。"** 恰好相反。物理频偏固定时，SCS 越大，归一化频偏 $\varepsilon$ 越小，ICI 越轻。所以高速场景**加大 SCS 是抗频偏的正解**。
- **误区四："OFDM 比 SC-FDMA 更怕频偏，所以 SC-FDMA 更好。"** 方向上 OFDM 确实对频偏更敏感（因为子载波窄），但 SC-FDMA 的 DFT 预编码并不消除频偏——它只是把峰均比降下来了。频偏补偿该做还得做。两者怕频偏的"程度差异"远小于很多人的想象。

## 常见问题

**Q1：整数频偏和分数频偏，到底哪个更危险？**
A：分数频偏破坏正交性产生 ICI，是"慢性中毒"——SINR 持续下降、误码升高；整数频偏是"急性中毒"——数据整体错位，全错。现网里两者必须都处理：整数靠导频找移位，分数靠 CP/导频估相位。**论修复优先级，整数频偏先于分数频偏**，因为连"在第几个子载波"都没对齐时，估分数频偏也没意义。

**Q2：为什么基于 CP 的频偏估计只能估到 ±0.5 个子载波？**
A：因为相位角的取值被限制在 $[-\pi,+\pi]$，反解出的 $\varepsilon$ 自然被限制在 $[-0.5,+0.5]$。超过一个子载波间隔的频偏，相位会"卷绕"（wrapping），无法区分 $0.3$ 和 $1.3$。所以 CP 法只能做分数粗估，整数部分必须靠导频相关找峰值位置来补。

**Q3：高铁场景下，加大子载波间隔真的能解决频偏问题吗？**
A：能显著缓解，但不能根治。加大 SCS 让归一化频偏变小，ICI 下降；同时大 SCS 下 CP 绝对时长也短，循环前缀法估计的等效信噪比变化不大。但物理多普勒还在，跟踪环仍要工作。代价是：SCS 加大后符号变短、CP 占比可能上升、可用子载波数变化，**是一个用频谱效率换鲁棒性的工程折中**，不是免费午餐。

**Q4：Costas 环在低信噪比下为什么会"滑周（cycle slip）"？**
A：低 SNR 下判决器经常判错，鉴相器得到的误差信号就不可靠，环路可能把相位"锁"到错误的稳定点（如 QPSK 锁偏 90°），表现为星座图突然整体旋转一个固定角度、之后又能恢复。滑周会导致突发性的整块错误。工程上靠**差分编码、同步字校验、或限制环带宽**来缓解。

**Q5：相位噪声和频偏是一回事吗？**
A：不是。频偏是"载波频率的固定/慢变偏差"，可以用 NCO 一次性或持续补偿；相位噪声是"载波瞬时相位的随机抖动"，本质是噪声，无法完全补偿——它造成的 ICI 部分是硬损失。二者的频域表现也不同：频偏造成星座图旋转，相位噪声造成星座点**径向扩散**（云团变厚）。改善相位噪声只能靠更高质量的晶振/PLL 硬件。

## 参考来源

1. [OFDM系统中载波频偏(CFO)的数学推导与分析 — 知乎](https://zhuanlan.zhihu.com/p/1967573647326683215) — 从 sinc 零点对齐角度推导 CFO 如何破坏正交性，本文 ICI 公式与原理图的核心依据。
2. [MIMO-OFDM系列笔记：载波频偏估计算法 — 知乎](https://zhuanlan.zhihu.com/p/1980632796163761329) — 基于CP与基于导频两类估计算法的结构对比，对应本文估计补偿流程图。
3. [OFDM频偏估计总不准？三种经典CFO算法 — CSDN](https://blog.csdn.net/weixin_63763813/article/details/150932698) — CP法、Schmidl-Cox、导频法的工程实现与 MATLAB 代码视角。
4. [5GNR漫谈：OFDM载波频偏估计（CFO）— 程序员大本营](https://www.pianshen.com/article/90552404076/) — 从收发晶振物理偏差出发，结合 5G NR 场景解释 ICFO/RCFO。

---
> 本文由「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)
