<!-- title: HARQ与链路自适应原理全解 -->

# HARQ 与链路自适应（AMC）原理全解：把"扔掉"变成"合并"，让信号"看天吃饭"

## 一、从一个生活场景说起：为什么需要"重传+自适应"？

想象你在嘈杂的菜市场里和朋友通电话。你喊一句"晚上八点见"，对方没听清，问你"几点？"。这时候你有两种选择：

**选择 A**：把"晚上八点见"原封不动再喊一遍。
**选择 B**：换种说法补充信息——"我说的是 20 点整，太阳下山之后"。

显然，选择 B 提供了"新的、互补的"信息，比单纯重复一遍更容易让对方真正听懂。但选择 A 也不是毫无价值——人耳会本能地把两次听到的话"叠在一起"理解，第二次总比第一次清楚一点。

这个生活直觉，恰恰揭示了移动通信里两项最基础、也最精妙的技术：

- **HARQ（混合自动重传请求）**：传错了不直接扔掉，而是把"模糊的旧数据"和"新数据"合并起来再解一次。
- **AMC（自适应调制编码，链路自适应的核心）**：根据当前信道"天气好坏"（信号强弱），动态选择传输的"档位"（调制阶数+编码率）。

这两者合在一起，构成了无线链路可靠性与效率的**双闭环调节系统**。任何一个做过网优或物理层调试的工程师，都绕不开它们。今天这篇，我们就把这套机制从直觉讲到公式，再到现网调试。

---

## 二、先理清三条线：ARQ、FEC、HARQ 是什么关系？

理解 HARQ，必须先搞清楚它"混合"的是哪两样东西。

### 2.1 FEC（前向纠错）——"提前打预防针"

FEC（Forward Error Correction）的思路是：**发送端在数据里嵌入冗余校验位，接收端自己就能纠错，不用回传。** 比如 LDPC 码、Polar 码、Turbo 码。

- **优点**：单向传输，延迟低，没有反馈往返。
- **缺点**：冗余是"固定"的。如果当前实际信道比预期好，冗余就浪费了频谱；如果比预期差，冗余又不够，包直接解错丢弃。

### 2.2 ARQ（自动重传请求）——"错了就重发"

ARQ（Automatic Repeat reQuest）的思路是：**靠 CRC 校验发现错误，错了就回 NACK 让发送端重传整个包。**

- **优点**：自适应——只有真错了才重传。
- **缺点**：错误包被**直接丢弃**，里面那点"半对的信息"全部浪费了；而且重传的是完全一样的包，边际收益有限。

### 2.3 HARQ——"把两边的优点捏在一起"

HARQ = **FEC + ARQ**。关键创新不在于"会重传"，而在于重传时**不丢弃错误包**，而是把多次接收的"软信息（soft bits，即带置信度的对数似然比 LLR）"在缓存里合并后再译码。

下表是三者的本质对比：

| 维度 | FEC | ARQ | HARQ |
|------|-----|-----|------|
| 纠错信息来源 | 发送端预先编码 | 重传同一包 | 重传 + 软合并 |
| 错误包处理 | 尝试纠错，失败丢弃 | 直接丢弃 | **缓存合并，不丢弃** |
| 是否需要反馈 | 否 | 是（ACK/NACK） | 是（ACK/NACK） |
| 时延 | 最低 | 较高（往返） | 中等（多进程缓解） |
| 频谱效率 | 冗余固定，有浪费 | 实际信道好时效率高 | **接近最优** |

```mermaid
flowchart TD
    A[发送端 数据+CRC] --> B[FEC 编码<br/>加冗余]
    B --> C[调制发送]
    C --> D[接收端 译码]
    D --> E{CRC 校验}
    E -- 通过 --> F[ACK 上层]
    E -- 失败 --> G[缓存软信息 LLR]
    G --> H[NACK 请求重传]
    H --> I[重传冗余版本]
    I --> J[软合并后再次译码]
    J --> E
    style G fill:#ffe4b5
    style J fill:#b5ffe4
```

这张图最关键的细节是 **G 节点（缓存）**和 **J 节点（软合并）**——这正是 HARQ 区别于普通 ARQ 的灵魂。

---

## 三、软合并的两种姿势：Chase Combining 与 Incremental Redundancy

HARQ 重传时，"合并"具体怎么做？业界有两大流派。这是物理层面试和调测的高频考点。

### 3.1 Chase Combining（CC，追码合并）

**做法**：重传时发送和首次完全相同的编码比特（同一个冗余版本 RV）。

接收端把多次接收的**软比特按最大比合并（MRC, Maximum Ratio Combining）**叠加。由于每次接收的噪声近似独立，信号是相关的，合并后**有效信噪比会累加**：

$$
\gamma_{\text{eff}}^{(k)} = \sum_{i=1}^{k} \gamma_i \approx k \cdot \bar{\gamma}
$$

对应合并增益（以 dB 计）约为：

$$
G_{\text{CC}} \approx 10\log_{10}(k)
$$

也就是说，每重传一次，有效 SNR 大致提高 3 dB（理想情况下）。它的逻辑是：**"我听不清，你就大声重复，我多听几次总能拼出来。"**

- **优点**：实现简单，重传内容固定，发送/接收缓冲开销小。
- **缺点**：每次重传的信息量相同，增益是"信噪比型"的，在低 SNR 下提升有限。

### 3.2 Incremental Redundancy（IR，增量冗余）

**做法**：重传时发送**不同的、新的冗余校验位**（不同的冗余版本 RV0/RV1/RV2/RV3），每次都给接收端补充"新信息"。

随着重传次数增加，**有效编码率不断下降**（冗余越来越多）：

$$
R_{\text{eff}}^{(k)} = \frac{K}{N_1 + N_2 + \dots + N_k}
$$

其中 $K$ 是信息比特数，$N_i$ 是第 $i$ 次发送的编码比特数。它的逻辑是：**"你听不清，我不重复原话，而是补充更多线索，让你从多个角度拼出全貌。"**

- **优点**：低 SNR 下增益更大，频谱效率更高（信道好时只发少量冗余，差时再补）。
- **缺点**：实现复杂，需要管理多个冗余版本和更大的软缓冲。

5G NR 的数据信道（PDSCH/PUSCH）采用 **LDPC 码**，支持 RV0~RV3 四种冗余版本，**以 IR 为主、CC 为辅**——首次传 RV0（信息位优先），重传逐步补充冗余。下表是两者对比：

| 对比项 | Chase Combining (CC) | Incremental Redundancy (IR) |
|--------|----------------------|------------------------------|
| 重传内容 | 与首传完全相同 | 新的冗余校验位（不同 RV） |
| 增益来源 | 信噪比累加（MRC） | 有效编码率下降（信息量累加） |
| 性能（低 SNR） | 一般 | **更优** |
| 实现复杂度 | 低 | 高（需多 RV + 大软缓冲） |
| 5G NR 应用 | 辅助 | **主用** |

```mermaid
flowchart TB
    subgraph CC[Chase Combining 追码合并]
        A1[首次: RV0] --> A2[重传: RV0 完全相同]
        A2 --> A3[合并: 信噪比累加<br/>γ_eff ≈ k·γ]
    end
    subgraph IR[Incremental Redundancy 增量冗余]
        B1[首次: RV0 信息位] --> B2[重传: RV1 新冗余]
        B2 --> B3[再传: RV2 更多冗余]
        B3 --> B4[合并: 编码率下降<br/>信息量累加]
    end
    CC --> R1[增益型: 提高SNR]
    IR --> R2[增益型: 提供新信息]
    style A3 fill:#fff4cc
    style B4 fill:#ccffcc
```

理解这两种合并方式，就理解了为什么 HARQ 比普通重传"性价比"高得多：**每次重传都不是简单的重复劳动，而是在累积有效的解码资本。**

---

## 四、HARQ 进程与"停等"机制：为什么要多进程并行？

### 4.1 停等协议（Stop-and-Wait）的天然瓶颈

HARQ 本质是**停等协议**：发一个包 → 等 ACK/NACK → 决定发新包还是重传。问题在于无线链路有**往返时延（RTT）**——从 PDSCH 发出到收到 HARQ-ACK，中间有若干个时隙的空档。如果只用一个进程"等回执"，链路大量时间被浪费在等待上，吞吐量极低。

### 4.2 多进程并行：填满等待空档

解决方案是 **N 个 HARQ 进程并行流水作业**。进程 1 发出去等回执的空档里，进程 2、3……继续发送，把链路时隙填满。对每个进程而言仍是"停等"，但整体看是连续流水线。

5G NR 支持**最多 16 个 HARQ 进程**（典型配置 8 个）。每个传输块（TB）绑定一个进程号，ACK/NACK 也是按进程号反馈的。

```mermaid
sequenceDiagram
    participant gNB as gNB(发送)
    participant UE as UE(接收)
    Note over gNB,UE: 进程号 P0~P7 并行流水
    gNB->>UE: TB0 @ 进程0 (slot n)
    gNB->>UE: TB1 @ 进程1 (slot n+1)
    gNB->>UE: TB2 @ 进程2 (slot n+2)
    Note right of UE: 处理+译码时延 K1
    UE-->>gNB: ACK/NACK @ 进程0 (slot n+K1)
    gNB->>UE: TB0'重传 或 TB8新包 @ 进程0
    Note over gNB,UE: 进程0 的空档被进程1~7填满
```

### 4.3 异步 HARQ：5G 的灵活之处

5G NR 在**上下行都采用异步 HARQ**（LTE 上行是同步 HARQ）。"异步"意味着：**重传的时机和占用的资源不是固定规则算出来的，而是由 DCI（下行控制信息）动态调度的。** 这样做的好处是：

- 调度器可以自由安排重传时机，避开拥塞；
- 更好地适配灵活的帧结构和不同子载波间隔；
- HARQ 反馈时序由参数 **K1**（PDSCH 到其 HARQ-ACK 的时隙偏移）动态指示。

> **小贴士**：HARQ-ACK 承载在 **PUCCH（上行）** 上反馈给 gNB；下行重传授权则通过 **DCI 在 PDCCH** 上指示。这点在抓包分析 PUCCH/PDCCH 时序时非常关键。

### 4.4 Type I / II / III 的分类视角

教材里常按"合并方式"把 HARQ 分三类：

- **Type I**：错误包直接丢弃，重传相同包（本质是 FEC+ARQ，不软合并）——最简单，性能最差。
- **Type II**：增量冗余 IR，重传新冗余，**必须合并所有版本才能解码**（非自解码）。
- **Type III**：每个冗余版本**都能自解码**（self-decodable），CC 是其特例；IR 在 RV0 重传时也退化为 CC。

记住一句话：**Type III 是最通用的形式，CC 和 IR 都可视为其特例。** 5G NR 实际上是 Type III 的灵活实现。

---

## 五、链路自适应 AMC：让信号"看天气吃饭"

HARQ 解决的是"传错了怎么办"，而 **AMC 解决的是"一开始该怎么传"**。

### 5.1 核心思路：根据信道质量动态换挡

无线信道的质量（SNR/SINR）时刻在变：用户走近基站、被遮挡、高速移动，都会让 SINR 大幅波动。AMC 的思路是：

- **信道好（SINR 高）**：用高阶调制（256-QAM）+ 高编码率，每个符号塞更多比特，吞吐量拉满。
- **信道差（SINR 低）**：用低阶调制（QPSK）+ 低编码率，牺牲速率换可靠性，保证能解出来。

这就是 **"看天吃饭"**——天气好快马加鞭，天气差稳健前行。

### 5.2 三个关键参数：CQI、MCS、BLER

| 参数 | 全称 | 含义 | 数值范围 |
|------|------|------|----------|
| **CQI** | Channel Quality Indicator | UE 测量下行参考信号后上报的"信道质量打分"，表示当前能支持的最高 MCS | 0~15（NR/LTE） |
| **MCS** | Modulation & Coding Scheme | 一个索引，映射到"调制阶数 + 编码率"，进而决定传输块大小 TBS | 0~31（NR 主表） |
| **BLER** | Block Error Rate | 传输块 CRC 失败的比例 | 目标值通常 10%（eMBB） |

整个 AMC 的运作链条是：

1. **UE 测量**下行参考信号（5G 是 CSI-RS，LTE 是 CRS）质量；
2. **UE 上报 CQI**，原则是：选一个能保证**首传 BLER ≤ 目标值（如 10%）**的最高 CQI；
3. **gNB 调度器**根据 CQI 选择 MCS（必要时叠加外环调整）；
4. 由 MCS + 分配的 PRB 数 → 查表得到 **TBS（传输块大小）** → 调制发送。

这里的目标 BLER（典型 10%）是个精妙的设计选择。为什么不是 1% 那么低？因为：

$$
\text{首传选择过保守的 MCS} \Rightarrow \text{吞吐量损失}
$$

如果一开始就追求极低 BLER，必然选低阶 MCS，浪费好信道的潜力。而**残留的少量错误交给 HARQ 去补**——这正是 AMC 与 HARQ 协同设计的精髓：**AMC 负责"大致对"，HARQ 负责"补漏"。** 它们构成香农容量的工程逼近：

$$
C = B \cdot \log_2(1 + \text{SNR})
$$

AMC 让实际传输速率尽量贴近 $C$，HARQ 则在 $C$ 附近做精细修正。

### 5.3 不同业务的 BLER 目标不同

5G NR 支持配置不同的目标 BLER：

| 业务类型 | 目标 BLER | 设计意图 |
|----------|-----------|----------|
| eMBB（大流量） | 约 10% | 重传兜底，最大化吞吐 |
| URLLC（低时延高可靠） | 约 1% 甚至 1e-5 | 首传即高可靠，少重传（重传=时延） |
| 语音 VoNR | 约 1%~10% | 平衡时延与效率 |

URLLC 之所以目标 BLER 压到 1%，是因为它的命门是**时延**——重传会显著增加端到端时延，必须靠"首传就够稳"来避免。

---

## 六、AMC 与 HARQ 的双闭环：一张图看懂全局

把前两节合起来，你会看到无线链路有两个嵌套的**闭环控制系统**：

- **慢速外环（AMC/CQI 环）**：周期性（毫秒级）调整 MCS，跟踪信道的大趋势。
- **快速内环（HARQ 环）**：亚毫秒级，针对单个包做 ACK/NACK + 软合并，纠正瞬时波动。

```mermaid
flowchart TB
    subgraph OUT[外环 AMC - 毫秒级 跟踪信道趋势]
        U1[UE 测量 CSI-RS] --> U2[计算并上报 CQI]
        U2 --> U3[gNB 选 MCS]
        U3 --> U4[调制编码发送 TB]
    end
    subgraph IN[内环 HARQ - 亚毫秒级 纠正瞬时错误]
        U4 --> I1[接收译码]
        I1 --> I2{CRC 校验}
        I2 -- 通过 --> I3[ACK 完成]
        I2 -- 失败 --> I4[缓存软信息]
        I4 --> I5[软合并重传 RV1/2/3]
        I5 --> I1
        I3 --> OOM[累计统计 BLER]
        OOM -.BLER偏离目标.-> U3
    end
    style OUT fill:#e8f0ff
    style IN fill:#ffe8f0
    style OOM fill:#fff4cc
```

注意图里那条**虚线**——这是很多资料忽略的"BLER 外环"：gNB 会统计实际 BLER，若长期偏离目标值（比如总是远高于 10%），就反过来微调 MCS 选择，形成第三重反馈。这就是 CSDN 教程里所说的 **"AMC 双环控制"**——CQI 是开环指令，BLER 统计是闭环修正。

---

## 七、现网实战：工程师在哪里用到这套知识？

### 7.1 网优调试的典型场景

| 调测指标 | 看什么 | 异常解读 |
|----------|--------|----------|
| **CQI 分布** | UE 上报的 CQI 直方图 | 长期低 CQI → 覆盖/干扰问题 |
| **MCS 分布** | 调度器选用的 MCS 直方图 | 高 SINR 却用低 MCS → 链路自适应滞后 |
| **初传 BLER** | 首传 CRC 失败率 | 远超 10% → AMC 过激或 SINR 估计偏差 |
| **HARQ 重传率** | 平均重传次数 | 重传率高 → 信道波动大或 CQI 不准 |
| **PUCCH ACK/NACK** | 反馈时序 | NACK 集中 → 疑似干扰或功控问题 |

### 7.2 常见误解与陷阱

**陷阱 1：以为"HARQ 重传率高=网络差"**
其实不一定。AMC 故意把首传 BLER 设在 10%，意味着**设计上就预期有约 10% 的包需要重传**。重传是正常机制，关键是重传后能否成功（合并增益）。要看的是**重传后仍失败的残留 BLER**，而不是单纯的重传率。

**陷阱 2：以为 CQI 越高一定越好**
CQI 反映的是"UE 认为当前能承受的最高 MCS"。如果 CQI 反馈**虚高**（比如测量偏差、上行反馈受限），gNB 会选过激的 MCS，导致首传大量失败、重传飙升，反而拉低吞吐。**CQI 的准确性比 CQI 的绝对值更重要。**

**陷阱 3：忽略 HARQ 反馈时序（K1）**
5G 灵活的 K1 配置是双刃剑。配置不当会导致 ACK/NACK 错位、进程号错乱，表现为莫名其妙的丢包或重传风暴。调测时要核对 DCI 中的 **PDSCH-to-HARQ_feedback timing indicator** 与 UE 处理能力是否匹配。

**陷阱 4：把 HARQ 和 RLC/PDCP 层 ARQ 混为一谈**
HARQ 在 **MAC 层**，目标是物理层快速纠错（亚毫秒）；RLC 层的 ARQ（AM 模式重传）目标是无损按序交付（毫秒级兜底）。两者是**两层兜底**：HARQ 先快速补，HARQ 救不回来的极少数错误包，再由 RLC 重传。理解这个层次关系，才能定位"到底是哪一层的重传"。

### 7.3 一次真实的吞吐量排查思路

若用户反馈"下载慢"，链路侧排查路径往往是：

1. 查 **SINR** → 若差，先解决覆盖/干扰（射频问题）；
2. SINR 正常却吞吐低 → 查 **MCS 是否被压低**（链路自适应是否生效）；
3. MCS 正常 → 查 **初传 BLER 是否异常高**（CQI 是否不准、AMC 是否过激）；
4. 查 **HARQ 重传后残留 BLER** → 若仍高，怀疑软合并缓冲或 RV 配置；
5. 都正常 → 往上查 RLC/PDCP 重传、调度器、甚至核心网。

你看，HARQ 与 AMC 知识是这条排查链的**核心枢纽**。

---

## 常见问题

**Q1：HARQ 和 RLC 层 ARQ 到底什么区别？**
A：HARQ 在 MAC 层，靠物理层软合并做**快速、低时延**的纠错，目标是"把 BLER 从 10% 降到接近 0"；RLC ARQ 在 RLC 层（AM 模式），靠重传做**按序、无损**的兜底，处理 HARQ 仍漏掉的极少数错误。二者是"先快补、后兜底"的两层机制，互补而非冗余。

**Q2：Chase Combining 和 Incremental Redundancy 怎么选？**
A：5G NR 以 **IR 为主**（LDPC 支持 RV0~RV3，低 SNR 下增益更大、频谱效率更高），CC 作为 RV0 重传时的退化情形。实际中由码率和 RV 版本调度策略决定，工程师无需手动选，但要理解 IR 是性能主力。

**Q3：为什么 5G 用异步 HARQ 而 LTE 上行用同步？**
A：同步 HARQ 的重传时机/资源由固定规则确定，实现简单但调度僵化；异步 HARQ 由 DCI 动态指示，调度器可灵活安排重传时机，更适配 5G 的灵活帧结构（多变子载波间隔）和自包含时隙。代价是控制信令开销略增。

**Q4：BLER 目标设成 10% 会不会太松？丢 10% 的包不是很糟吗？**
A：不会。"丢"的这 10% 并不真的丢——它们触发 HARQ 重传，经软合并后绝大多数都能恢复。设计上是用这 10% 的"可恢复错误"换取好信道下的高吞吐（选更高 MCS）。真正要关注的是**重传后仍失败的残留 BLER**，那才是真损失。URLLC 因怕时延，才把目标压到 1%。

**Q5：HARQ 最多重传几次？会不会无限重传？**
A：不会无限。系统配置有**最大重传次数**（maxHARQ-Tx，典型 3~4 次）。超过仍失败，该包被丢弃，错误上抛给 RLC 层兜底重传，或直接计为一次丢块。这个上限是防止坏信道下无限占用进程、拖垮整个调度的安全阀。

---

## 参考来源

1. [5G HARQ Explained: Soft Combining, HARQ Processes, ACK/NACK Timing](https://www.mohamedeladawi.com/5g-harq-explained-soft-combining-harq-processes-ack-nack-timing-codebook-types-spatial-bundling-and-4g-vs-5g-differences-2/) — 5G HARQ 流水线、16 进程、4G/5G 差异的完整技术拆解
2. [Chase Combining HARQ vs Incremental Redundancy HARQ — RF Wireless World](https://www.rfwireless-world.com/terminology/chase-combining-harq-vs-incremental-redundancy-harq) — CC 与 IR 两种软合并方式的权威对比
3. [How HARQ Soft Combining Actually Works — Chase vs IR (CafeTele)](https://www.cafetele.com/blog/how-harq-soft-combining-actually-works.html) — 5G NR 软合并与软缓冲机制的深度讲解
4. [5G NR Hybrid ARQ — Devopedia](https://devopedia.org/5g-nr-hybrid-arq) — HARQ 不丢弃错误包、缓存合并的核心概念
5. [自适应调制编码 AMC（MCS, CQI, SINR, HARQ, Code Rate）— CSDN](https://blog.csdn.net/HiWangWenBing/article/details/114045347) — AMC 与 CQI/MCS/BLER 联动机制的中文详解

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