<!-- title: 相干解调：接收机的载波重建术 -->

# 相干解调：接收机的载波重建术

## 一、一个反直觉的事实：解调比调制难得多

如果把一次无线通信比作两个人隔着房间喊话，那么"调制"就是说话人刻意改变嗓音的高低、快慢，把意思编码进声波里；而"解调"则是听话人要把这些声波"翻译"回原意。

听起来是同一件事的正反两面，难度应该差不多。但任何一个做过射频接收机研发的工程师都会告诉你：**调制端的代码可能一百行就写完了，解调端却要写一万行，而且永远在调。**

为什么？因为发射机手里握着"标准答案"——它知道载波的频率、相位、每一个符号的起止时刻。而接收机面对的是一段从天线收下来的、被噪声淹没、被多径扭曲、频率还可能偏了几十赫兹的电磁波，它必须**自己重新建立这套参照系**。

这套参照系里最核心的一根"定海神针"，就是**载波同步（Carrier Synchronization）**——也就是本文的主角。它是相干解调能否成功的第一个、也是最致命的关卡。调制端用 QAM、OFDM 把比特精心编码进星座点；但如果接收机连载波都锁不住，所有这些精密设计都会瞬间化为屏幕上一团乱转的星座图。

理解了载波同步，你才真正理解了一台接收机开机后"前几十微秒在忙什么"，也才理解了为什么协议里要设计那么多看上去啰嗦的同步信号和导频。

## 二、相干解调的本质：把信号"乘回去"

### 2.1 调制做了什么，解调就要反着做什么

让我们从最简单的 BPSK 调制回顾。发射端把基带信号 $m(t) = \pm 1$ 乘到载波上：

$$s(t) = m(t)\cos(2\pi f_c t)$$

这个"乘载波"的动作，在频域上就是把基带频谱整体搬移到了 $f_c$ 处。要把它搬回来，最直觉的想法是——**再乘一次同样的载波**：

$$s(t)\cos(2\pi f_c t) = m(t)\cos^2(2\pi f_c t) = \frac{1}{2}m(t) + \frac{1}{2}m(t)\cos(4\pi f_c t)$$

经过低通滤波器（LPF）滤掉 $2f_c$ 高频项，剩下的就是 $\frac{1}{2}m(t)$——基带信号回来了。这就是**相干解调（Coherent Demodulation）**的核心：用一个与发射载波**同频同相**的本地振荡信号去乘接收信号。

### 2.2 "同频同相"四个字，是全部难点所在

注意上面推导里那个看似无害的前提：本地载波写的是 $\cos(2\pi f_c t)$，和发射端**完全一样**。现实中这几乎不可能天然成立。假设本地震荡器有一个相位偏差 $\phi$，本地载波实际是 $\cos(2\pi f_c t + \phi)$，那么解调输出就变成：

$$\text{输出} = \frac{1}{2}m(t)\cos\phi$$

对 BPSK 这种只看符号正负的调制，$\cos\phi$ 只是一个幅度缩放——只要 $\phi < 90°$，判决还不会错。但如果是 QAM，信息编码在**幅度和相位两个维度**，一个残余相位 $\phi$ 会把整个星座图旋转 $\phi$ 度，原本规规矩矩的 16 个点全部转到了错误的位置上，判决器瞬间崩溃。

这就是为什么所有相干接收机，开机第一件事不是解调数据，而是**先想办法让本地载波和远端载波对齐**。这个对齐过程，就是载波同步。

```mermaid
flowchart TD
    A["发射载波<br/>fc, θ=0"] --> S["调制发射"]
    S --> CH["无线信道<br/>(噪声+多径+频偏)"]
    CH --> R["接收信号 r(t)"]
    R --> M["乘本地载波<br/>cos(2πfc t + φ̂)"]
    LO["本地振荡器<br/>(频率相位未知)"] --> SYNC{"载波同步<br/>环路"}
    SYNC -->|"调整 φ̂"| LO
    LO --> M
    M --> LPF["低通滤波"]
    LPF --> DEC["星座判决"]
    SYNC -->|"φ̂→0 锁定"| DEC
    style SYNC fill:#ffe4b5,stroke:#d2691e,stroke-width:2px
```

## 三、载波从哪里来：三类恢复策略

发射机发出的信号里，载波信息有时"看得见"，有时"看不见"。根据载波在信号里的存在形式，工程师发明了三类截然不同的恢复策略——这背后体现的是**功率效率与同步稳健性的权衡**。

| 策略 | 原理 | 典型应用 | 代价 |
|------|------|----------|------|
| **导频/参考信号法** | 发射端额外插一根已知"标准桩"，接收端直接读 | OFDM/5G/4G LTE | 占用频谱、牺牲功率 |
| **平方/M次方环** | 把信号做 M 次方，剥掉调制，露出纯载波 | BPSK(平方)、QPSK(4次方)、8PSK(8次方) | 存在相位模糊 |
| **Costas 环** | 用 I/Q 双路反馈，直接从调制信号里锁相 | 抑制载波的 PSK/QAM | 收敛慢、环路设计复杂 |

### 3.1 为什么"抑制载波"是个问题

像 QPSK、QAM 这类调制，把信息完全编码进了相位和幅度变化里，载波本身被"淹没"了——频谱上 $f_c$ 处是一个**零点**，没有离散的载波谱线可供直接提取。这就是所谓的**抑制载波调制（suppressed-carrier modulation）**。

这种设计的好处是**功率效率极高**：100% 的发射功率都用来传信息，一点都不浪费在"明摆着"的载波上。坏处是接收端再也不能用简单的带通滤波器把载波挑出来，必须用更巧妙的非线性方法（M次方环）或反馈方法（Costas 环）去"无中生有"地重建它。

### 3.2 M次方环：用乘方"剥掉"调制

以 QPSK 为例，调制信号可以写成 $s(t) = A\cos(2\pi f_c t + \theta_k)$，其中 $\theta_k \in \{0°, 90°, 180°, 270°\}$ 是四个可能的相位。对它做 4 次方：

$$s^4(t) = A^4\cos^4(2\pi f_c t + \theta_k) \propto \cos(4\cdot 2\pi f_c t + 4\theta_k) + \text{直流项}$$

妙处在于 $4\theta_k$：无论 $\theta_k$ 是 0/90/180/270 哪一个，乘以 4 之后统统变成 $0°$（模 360°）。调制信息被"对消"掉了！剩下的就是一个纯净的 $4f_c$ 正弦波。用窄带滤波器或锁相环抓住它，再四分频，就重建出了载波。

这就是"平方环（BPSK）"和"M次方环（M-PSK）"的精髓：**用乘方运算把随机的调制相位规约成确定值，从而暴露出隐藏的载波。** 但它有个固有缺陷——**相位模糊**：四分频会产生 4 个等价的结果（相差 90°），接收机无法判断当前锁在哪个象限，需要靠差分编码或同步字来消歧。

## 四、Costas 环：相位负反馈的工程之美

真正在工程里用得最多、思想最优雅的，是 1956 年 John Costas 提出的 **Costas 环（科斯塔斯环）**。它的核心思想是：**与其硬算，不如让系统自己"扭"到对齐。**

### 4.1 用旋转的星座图理解环路

想象接收端的星座图因为相位偏差 $\phi$ 在缓慢旋转。如果 $\phi > 0$（星座顺时针偏了），我们就需要给本地振荡器一个反馈，让它逆时针补一点；反之亦然。关键是要有一个**鉴相器（Phase Detector）**，能从信号里"感知"出当前 $\phi$ 的方向和大小，哪怕我们并不知道 $\phi$ 的真实值。

Costas 环的天才之处在于：它**不需要知道数据内容，就能从 I、Q 两路信号相乘中提取出 $\sin(2\phi)$ 这个误差信号**。误差为正就把本地相位往负方向拉，为负就往正方向拉，直到 $\phi \to 0$，星座图停止旋转，环路"锁定（lock）"。

### 4.2 双路正交结构与误差信号

Costas 环把接收信号分成 I（同相）、Q（正交）两路，分别乘以本地载波及其 90° 移相版本，各自低通滤波后得到 $x_I, x_Q$。对 BPSK，误差信号为：

$$e(t) = x_I(t) \cdot x_Q(t) \approx \frac{1}{2}m^2(t)\sin(2\phi)$$

由于 $m^2(t) = 1$（BPSK），所以 $e(t)$ 仅与相位偏差 $\phi$ 有关，符号正确指示了纠偏方向。这个误差经**环路滤波器（Loop Filter，通常是 PI 比例积分控制器）**平滑后，去驱动**压控振荡器（VCO/NCO）**调整本地相位，形成闭环。

```mermaid
flowchart TB
    R["接收信号 r(t)"] --> MI["I路 × cos(2πfc t + φ̂)"]
    R --> MQ["Q路 × -sin(2πfc t + φ̂)"]
    MI --> LI["低通滤波 LPF"] --> XI["x_I(t)"]
    MQ --> LQ["低通滤波 LPF"] --> XQ["x_Q(t)"]
    XI --> PD["鉴相器<br/>e = x_I · x_Q<br/>≈ ½sin(2φ)"]
    XQ --> PD
    PD --> LF["环路滤波器<br/>(PI 控制器)"]
    LF --> NCO["数控振荡器 NCO<br/>输出 cos(2πfc t + φ̂)"]
    NCO --> MI
    NCO -.90°移相.-> MQ
    NCO --> LOCK["锁定后<br/>φ̂ → 0<br/>I路输出数据"]
    XI --> LOCK
    style PD fill:#ffe4b5,stroke:#d2691e,stroke-width:2px
    style LF fill:#e6f3ff,stroke:#1e6fd2,stroke-width:2px
    style NCO fill:#e8f5e9,stroke:#2e7d32,stroke-width:2px
```

### 4.3 环路带宽：一个永恒的权衡

环路滤波器的带宽 $B_L$ 是工程师最爱吵架的参数之一，因为它背后是一个无法回避的物理权衡：

- **带宽大**：环路跟得快，能迅速锁定、能跟踪剧烈的相位抖动（如高多普勒场景）——但噪声也更容易灌进来，稳态相位抖动大，低信噪比下容易"滑周（cycle slip）"。
- **带宽小**：抗噪声强、跟踪平稳——但锁定慢，对快速变化的频偏反应迟钝。

这本质上是**捕获速度**与**跟踪精度**之间的矛盾，没有银弹，只有针对场景的折中。卫星通信多普勒大，带宽要大；静态接收、高阶 QAM，带宽要小。这也是为什么 5G 终端在不同场景下会动态调整同步环参数。

| 环节 | 数学含义 | 工程作用 |
|------|----------|----------|
| 鉴相器 | $e = x_I \cdot x_Q \propto \sin(2\phi)$ | "感知"相位偏差的方向 |
| 环路滤波器 | PI 控制：$u = K_p e + K_i\int e\,dt$ | 平滑噪声、决定带宽与收敛 |
| 数控振荡器 | 输出 $\cos(2\pi \hat{f}_c t + \hat\phi)$ | 生成可调本地载波，闭合反馈 |

## 五、OFDM 的现代做法：循环前缀 + 导频，告别 Costas

讲到这里你可能会问：5G、Wi-Fi 这些 OFDM 系统，难道也在每个子载波上跑 Costas 环吗？答案是——**不是，OFDM 换了一套完全不同的同步哲学。**

### 5.1 为什么 OFDM 对频偏"过敏"

OFDM 的全部魔法建立在**子载波正交性**上（参见前文《OFDM：频谱重叠为何不串扰》）。正交性的前提是子载波间隔 $\Delta f$ 严格等于符号速率的倒数，FFT 窗口内恰好是整数个周期。

一旦存在**载波频率偏移（CFO）** $\delta f$，这个"整数周期"条件就被破坏，子载波之间不再完全正交，能量从相邻子载波漏过来——这就是 **ICI（子载波间干扰）**。OFDM 对 CFO 的容忍度极低，通常要求残余频偏小于子载波间隔的 1%~2%。所以 OFDM 系统对载波同步的要求反而**更苛刻**，只是做法不同。

### 5.2 用循环前缀"免费"估计 CFO

OFDM 巧妙地复用了已经存在的循环前缀（CP）。CP 是 OFDM 符号尾部的一段复制到头部的重复样本——既然是复制，那么在理想无频偏情况下，CP 和它对应的尾部样本应该**完全相同**。

一旦有 CFO，整段信号会带上一个公共的相位旋转 $\exp(j2\pi\delta f \cdot t)$。于是 CP 和尾部样本之间就出现了一个**相位差**，这个相位差正比于 $\delta f$。接收机只要计算两者的相关：

$$\hat{\delta f} = \frac{1}{2\pi T_u} \arg\left(\sum_{k} r^*(k)\, r(k+N_{FFT})\right)$$

其中 $T_u$ 是 OFDM 有效符号长度，$N_{FFT}$ 是 FFT 点数。**不需要专门的同步符号，CP 本身就是天然的频偏探测器。** 这是 OFDM 系统设计里一个极具经济性的巧思——同一个 CP，既抗多径（见前文《循环前缀：多径信道的解药》），又估计频偏，一石二鸟。

### 5.3 导频：精密相位跟踪的"标准桩"

CP 能估计的频偏范围有限（±半个子载波间隔），且精度受噪声限制。更精细的**残余相位跟踪**，靠的是散布在时频网格里的**导频（Pilot / Reference Signal）**。

导频是发射端和接收端都事先知道的已知符号，插在特定的子载波和 OFDM 符号位置上。接收端比较"收到的导频"和"应该收到的导频"之间的相位差，就能精确反推出残余频偏和相位噪声，再对整个子载波做公共相位补偿（CPE，Common Phase Error correction）。

5G NR 里这个角色由 **PTRS（Phase Tracking Reference Signal，相位跟踪参考信号）** 担任，专门针对高频段（毫米波）本地振荡器相位噪声严重的问题而设计——频段越高，本振相位噪声越大，越需要密集的相位跟踪。

```mermaid
flowchart TD
    subgraph RX["OFDM 接收机载波同步流程"]
        direction TB
        A1["1. 帧同步<br/>找OFDM符号边界"] --> A2["2. 粗CFO估计<br/>(用循环前缀CP相关)"]
        A2 --> A3["3. 粗频偏补偿<br/>时域乘exp(-j2πδf·t)"]
        A3 --> A4["4. FFT解调<br/>(此时仍有残余小数频偏)"]
        A4 --> A5["5. 整数频偏估计<br/>(用导频/同步信号)"]
        A5 --> A6["6. 残余相位跟踪<br/>(导频PTRS/DMRS)"]
        A6 --> A7["7. CPE补偿<br/>每个OFDM符号统一纠偏"]
    end
    A7 --> OK["星座点归位<br/>✓ 相干解调完成"]
    style A2 fill:#fff3cd,stroke:#d39e00
    style A6 fill:#d4edda,stroke:#28a745
    style OK fill:#d1ecf1,stroke:#17a2b8,stroke-width:2px
```

可以看到，OFDM 把传统 Costas 环那种"一个反馈环搞定一切"的做法，拆成了**估计 + 补偿**两步式的前馈结构：先用 CP/同步信号"量"出频偏，再用导频持续"微调"。这种**前馈估计（feed-forward）**比反馈环更适合 OFDM 的并行结构，也更容易并行化实现。

## 六、相位模糊与同步字：最后一个绕不开的坑

无论用哪种方法恢复载波，都会遇到一个共同的幽灵——**相位模糊（Phase Ambiguity）**。

以 QPSK 为例，4 次方环四分频后，本地载波可能锁定在 $0°$、$90°$、$180°$、$270°$ 四个位置中的任意一个，接收机无法仅凭信号本身判断自己锁在了哪个象限。结果就是整个星座图可能被旋转了 0°、90°、180° 或 270°，数据全部判错——但**误码率却看不出异常**，因为旋转后的星座依然整整齐齐。

工程上有两条解法：

1. **差分编码（如 DPSK、π/4-DQPSK）**：不传绝对相位，而传相邻符号的相位差。相位旋转对所有符号一视同仁，差分后被抵消。代价是抗噪声性能下降约 1~3 dB。
2. **同步字 / 训练序列 / 已知参考信号**：发送一串双方都知道的比特，接收端比对收到的和预期的，直接判断当前旋转了多少度，做一次性纠正。5G 的 SSB（同步信号块）、Wi-Fi 的前导码、蓝牙的 access code 都承担这个角色——**它们既是同步信号，也是消除相位模糊的"校准砝码"。**

这也解释了为什么协议里那些"看起来浪费时频资源"的同步和参考信号其实一分钱都不多余——它们是整个相干解调体系得以成立的信任基石。砍掉导频省下的资源，会以成倍的误码和重传连本带利还回来。

## 七、现网视角：调试时哪里会用到这些知识

理论的尽头是工程现场。载波同步相关的知识，在以下几个调试场景里几乎是必备武器：

**场景一：星座图"在转"。** 抓到基带 IQ 数据画星座图，发现点不是静止的而是在画圈——这是典型的**未锁定或残余大频偏**。先查 CFO 估计模块是否工作、CP 相关是否拿到合理值；如果点转得慢，往往是残余频偏跟踪带宽不够或导频相位补偿没生效。

**场景二：低 SNR 下频繁滑周、解调失败。** 锁相环在信噪比跌到门限以下时会周期性失锁再重锁，表现为误码率突变。这时要检查环路带宽是否过大、是否需要降低带宽以换取稳定性，或增加同步信号密度辅助捕获。

**场景三：高速移动（高铁、车载）场景掉话率高。** 高多普勒导致 CFO 大且变化快，OFDM 子载波正交性被破坏。这往往不是基带算法 bug，而是物理极限——需要靠更密的导频、更短的 TTI、或子载波间隔加大的 numerology（5G 灵活子载波间隔设计的初衷之一正是为此）来缓解。

**场景四：误码率正常但数据全错。** 这是最阴险的相位模糊问题。星座点整整齐齐、SNR 看着很好，但上层就是解不出业务。十有八九是同步字/参考信号匹配出了问题，相位纠正没做或做错了一个象限。记住：**"星座漂亮不等于解调正确"，相位模糊是它的天敌。**

## 八、一张图总结：从比特到比特的同步链路

把本文涉及的载波同步放进完整的接收机信号处理链，可以看到它在什么位置、和哪些环节咬合：

```mermaid
flowchart TB
    subgraph TX["发射端"]
        T1["比特流"] --> T2["信道编码<br/>(前向纠错)"]
        T2 --> T3["QAM调制映射"]
        T3 --> T4["OFDM/IFFT<br/>+ 插导频PTRS"]
        T4 --> T5["加循环前缀CP"]
        T5 --> T6["射频上变频<br/>(理想载波)"]
    end
    T6 --> AIR["  无线信道<br/>噪声·多径·多普勒·CFO  "]
    AIR --> RX1
    subgraph RX["接收端信号处理链"]
        RX1["射频下变频<br/>(本振有频偏φ)"] --> RX2["帧/符号同步<br/>找CP边界"]
        RX2 --> RX3["载波同步<br/>★本文核心★"]
        RX3 --> RX4["CP去保护间隔"]
        RX4 --> RX5["FFT + 信道估计"]
        RX5 --> RX6["相位补偿CPE"]
        RX6 --> RX7["QAM星座判决"]
        RX7 --> RX8["信道译码"]
        RX8 --> RX9["恢复比特流"]
    end
    style RX3 fill:#ffe4b5,stroke:#d2691e,stroke-width:3px
    style AIR fill:#fce4ec,stroke:#c2185b,stroke-width:2px
```

载波同步（RX3）卡在射频下变频之后、FFT 之前——它是连接模拟射频世界和数字基带世界的咽喉要道。这一步没做好，后面 FFT、信道估计、判决全都白搭。

## 常见问题

**Q1：相干解调和非相干解调到底有什么区别？什么时候用哪个？**

A：相干解调要求接收端重建一个与发射载波同频同相的本地载波（需要载波同步），性能好（可支持高阶 QAM、灵敏度低）；非相干解调（如包络检波、差分检测）不需要恢复载波，实现简单、无相位模糊，但性能差 1~3 dB，只能用于低阶调制（如 DPSK）。蓝牙的 GFSK 用非相干（简化设计、对成本敏感）；5G/4G/Wi-Fi 一律相干（要榨干频谱效率）。

**Q2：既然 OFDM 用 CP 和导频做同步，那 5G 还需要 Costas 环吗？**

A：现代 OFDM 系统（5G/Wi-Fi）在基带几乎不用传统的模拟 Costas 环，而是用前馈式"估计+补偿"结构。但 Costas 环的思想（用 I/Q 相关提取相位误差、闭环反馈）仍是数字锁相环的基础，广泛用于符号定时同步、频率锁定环（FLL）、相位锁定环（PLL）的实现中。理解 Costas 环是理解所有同步反馈环的钥匙。

**Q3：相位模糊为什么不能用算法"猜"出来？**

A：因为相位旋转后的星座图在四个（或八个）等价位置上**数学上完全对称**，单凭信号本身没有任何信息能区分它们——这是一个根本性的信息缺失，不是算法不够聪明。唯一的出路是引入"外部信息"：要么用已知的同步字/导频做比对，要么改用差分编码让信息藏在相对变化里。这就是为什么所有通信系统都要花钱发同步信号。

**Q4：终端高速移动时为什么会"锁不住载波"？**

A：高速移动产生大多普勒频移，CFO 大且持续变化。当 CFO 变化速率超过同步环的跟踪带宽时，环路来不及跟上，持续失锁；同时大多普勒还会在每个 OFDM 符号内引入相位变化，直接破坏子载波正交性（ICI）。5G 的对策是高频段用更大的子载波间隔（如 120kHz/240kHz），让多普勒相对于子载波间隔变小，从而保持正交。

**Q5：调试时，"频偏"和"定时偏差"怎么区分？**

A：残余**载波频偏（CFO）**表现为星座图整体旋转、所有子载波带公共相位；**采样定时偏差（STO）**表现为符号判决时刻偏移、星座点发散但不旋转，且不同子载波的旋转随子载波序号线性变化（高频子载波发散更严重）。两者都让星座"变难看"，但旋转模式不同——这是抓 bug 时第一步要分清的。

## 参考来源

1. [Costas载波同步——锁相环原理 (知乎)](https://zhuanlan.zhihu.com/p/507974353) — 系统讲解锁相环与抑制载波信号提取载波的原理
2. [Costas环详解：从原理到实战 (CSDN)](https://blog.csdn.net/jz_ddk/article/details/148519555) — 含 QPSK 信号生成、Costas 环实现与环路滤波器设计仿真
3. [5G-NR中的CFO估计技术 (博客园)](https://www.cnblogs.com/devindd/articles/16790104.html) — 讲解 5G 场景下载波频率偏移的产生与估计
4. [OFDM频偏估计：三种经典CFO算法 (CSDN)](https://blog.csdn.net/weixin_63763813/article/details/150932698) — 基于循环前缀和导频的 CFO 估计算法对比与仿真
5. [通信算法-Moose算法估计CFO (ZoroGH's Blog)](https://blog.zorogh.top/2024/04/20/%E9%80%9A%E4%BF%A1%E7%AE%97%E6%B3%95-Moose%E7%AE%97%E6%B3%95%E4%BC%B0%E8%AE%A1CFO/) — 基于导频前导码的经典 CFO 估计算法推导

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