返回博客列表
无线通信··14 分钟阅读

AMC 自适应调制编码学习卡片

围绕信道质量、CQI、MCS、BLER 和吞吐最大化,理解 AMC 自适应调制编码的基本逻辑。

下面我按你的“技术学习卡片”方式整理 AMC。重点不是背概念,而是抓住这条链:

信道质量 → SINR/CQI/ACK反馈 → MCS选择 → BLER/PER → 吞吐最大化

1. 一句话功能

AMC,Adaptive Modulation and Coding,自适应调制编码。

核心作用:

信道好,用高阶调制和高码率,提高吞吐;
信道差,用低阶调制和低码率,提高可靠性。

一句话记忆:

AMC = 根据信道质量动态选 MCS。

2. AMC 解决什么问题

无线信道是变化的:

用户移动
距离变化
遮挡变化
干扰变化
多径变化
噪声变化

如果 MCS 固定,会出现两个问题:

信道好时,MCS太低,浪费容量;
信道差时,MCS太高,误块率高,重传多。

所以 AMC 的目标是:

在可接受 BLER/PER 下,选择尽可能高的 MCS,使吞吐最大。

3. MCS 基础

3.1 MCS 是什么

MCS = Modulation and Coding Scheme,调制与编码方案。

它由两部分组成:

调制方式
编码码率

比如:

QPSK + 1/2
16QAM + 2/3
64QAM + 5/6
256QAM + 3/4

MCS 越高,一般意味着:

调制阶数更高;
码率更高;
频谱效率更高;
对 SINR 要求更高;
误块风险更大。

3.2 调制方式

调制决定每个符号能承载多少 bit。

调制方式每符号 bit 数特点
BPSK1最稳,效率低
QPSK2稳定性较好
16QAM4中等效率
64QAM6高效率
256QAM8更高效率,对信道要求高

一句话:

调制阶数越高,一个符号装的bit越多,但越容易出错。

3.3 编码码率

编码是加冗余,用来纠错。

码率表示:

有效信息 bit / 总发送 bit

例如:

码率 1/2:一半是有效信息,一半是冗余保护
码率 5/6:大部分是有效信息,冗余很少

所以:

码率越低,保护越强,效率越低;
码率越高,保护越弱,效率越高。

3.4 MCS 的本质

MCS 本质是在做一个选择:

可靠性 vs 频谱效率

低 MCS:

可靠,但慢。

高 MCS:

快,但容易错。

AMC 就是在当前信道条件下找到最合适的平衡点。


4. 物理层速率计算

4.1 核心公式

物理层速率大致可以写成:

速率 = 数据子载波数 × 每子载波bit数 × 编码率 × 空间流数 / OFDM符号时长

也就是:

Rate = N_data × Qm × CodeRate × Nss / Tsymbol

其中:

参数含义
N_data有效数据子载波数
Qm每子载波bit数
CodeRate编码率
Nss空间流数
TsymbolOFDM符号时长

4.2 你材料里的 144.4 Mbps 怎么来的

条件:

20 MHz
数据子载波数 = 52
64QAM = 6 bit
码率 = 5/6
空间流数 = 2
Short GI,符号时长 = 3.6 us

计算:

Rate = 52 × 6 × 5/6 × 2 / 3.6us

先算每个 OFDM 符号承载 bit 数:

52 × 6 × 5/6 × 2
= 520 bit

每 3.6 us 传 520 bit:

Rate = 520 / 3.6e-6
≈ 144.4 Mbps

所以:

144.4 Mbps = 2流 + 64QAM + 5/6码率 + Short GI 的结果。

4.3 速率提升靠什么

从公式看,速率提升来源主要有:

更多数据子载波
更高阶调制
更高码率
更多空间流
更短符号时长

但每一项都有代价。

比如:

更高阶调制 → 需要更高SINR
更高码率 → 抗误码能力下降
更多空间流 → 需要更好的MIMO信道
Short GI → 对多径时延扩展更敏感

这就是 AMC 和 Rank 选择、功率控制、调度强相关的原因。


5. AMC 的核心目标

AMC 不是盲目选最高 MCS。

它追求的是:

吞吐最大化

吞吐可以粗略理解为:

有效吞吐 = 传输速率 × 成功率

如果用 PER/BLER 表示失败率:

有效吞吐 ≈ 物理层速率 × (1 - PER)

所以:

MCS太低:速率低,虽然成功率高,但吞吐不一定高;
MCS太高:速率高,但失败率高,重传多,吞吐也会下降。

最优点通常在某个目标 BLER/PER 附近。


5.1 数字例子

假设当前信道下,不同 MCS 的表现如下:

MCS物理速率成功率有效吞吐
MCS 5100 Mbps99%99 Mbps
MCS 8150 Mbps90%135 Mbps
MCS 10200 Mbps60%120 Mbps
MCS 12250 Mbps30%75 Mbps

最优不是 MCS 12,而是 MCS 8。

因为:

MCS 12 速率高,但错得太多;
MCS 5 很稳,但太保守;
MCS 8 有合适的折中。

这就是 AMC 的核心思想。


6. PER / BLER 和 MCS 的关系

你要记住两个单调关系。

6.1 相同信道质量下

MCS 越高,PER/BLER 越高。

因为调制更密、码率更高,抗干扰能力更差。

6.2 相同 MCS 下

信道质量越好,PER/BLER 越低。

因为 SINR 更高,接收解调更可靠。


7. AMC 算法分类

从反馈来源看,可以分成两类:

基于 ACK/NACK 的开环/外环调整
基于 SNR/CQI 的闭环选择

更实际一点:

Wi-Fi 常见:基于 ACK/BA 统计的速率调整
蜂窝下行:基于 CQI + OLLA
蜂窝上行:基于 SINR测量 + ACK/NACK修正

8. Wi-Fi AMC

8.1 基于 ACK 的 AMC

核心思想:

发包成功,说明当前速率可能可以维持或提高;
发包失败,说明当前速率可能太激进,需要降低。

优点:

只依赖发送端能看到的 ACK/NO ACK;
实现简单;
不需要接收端额外反馈 SNR。

缺点:

失败原因不一定是MCS太高;
可能是碰撞、干扰、隐藏节点;
因此抗复杂干扰能力有限。

8.2 基于 Rx SNR 的 AMC

核心思想:

接收端测量 SNR;
反馈给发送端;
发送端根据 SNR 选择合适 MCS。

优点:

更直接反映链路质量;
速率选择更准确;
抗干扰能力更好。

缺点:

需要接收端反馈;
实现复杂;
可能涉及标准扩展。

9. Minstrel 算法

9.1 一句话功能

Minstrel 是 Wi-Fi 中广泛使用的一种基于 ACK/BA 统计的速率控制算法。

它不直接依赖 SNR,而是依赖:

每个 MCS 的历史成功率
每个 MCS 的预计吞吐
周期性 Probe 探测

9.2 Minstrel 的核心机制

机制 1:为每个 MCS 维护 PER / 成功率

对每个速率统计:

尝试次数
成功次数
失败次数
成功概率
预计吞吐

预计吞吐可以理解为:

预计吞吐 = 当前MCS物理速率 × 成功概率

机制 2:吞吐准则选择速率

不是选择成功率最高的 MCS,而是选择预计吞吐最大的 MCS。

例子:

MCS物理速率成功率预计吞吐
MCS 350 Mbps99%49.5
MCS 5100 Mbps90%90
MCS 7150 Mbps50%75

Minstrel 会更倾向选 MCS 5,而不是最稳的 MCS 3。


机制 3:Probe 探测

如果某个 MCS 很久没用,不知道现在能不能用,Minstrel 会偶尔探测。

目的:

发现更高 MCS 是否已经可用;
避免长期停留在保守速率。

这很关键。

没有 Probe,算法容易卡在低速率。


机制 4:老化

历史统计不能永久有效。

因为信道会变化:

用户移动
干扰变化
遮挡变化
距离变化

所以老旧统计需要衰减,让新统计更有权重。


机制 5:多速率重传

一次发送可以配置多个重传速率。

例如:

第一次用高速率 MCS 7
失败后用 MCS 5
再失败用 MCS 3

目的:

先尝试高吞吐;
失败后快速退到更稳的速率;
提高最终交付成功率。

10. 蜂窝下行 AMC

10.1 一句话功能

下行 AMC 通常根据 UE 上报 CQI,再结合 ACK/NACK 外环调整,选择下行 MCS。

核心链路:

UE测量信道质量
→ 上报 CQI / RI / PMI
→ 基站选择 MCS
→ UE反馈 ACK/NACK
→ 基站调整 CQI offset / MCS偏置

10.2 CQI 是什么

CQI = Channel Quality Indicator,信道质量指示。

UE 根据下行参考信号估计信道质量,然后反馈一个量化值给基站。

基站用 CQI 映射 MCS。

大体逻辑:

CQI 高 → 信道好 → MCS 高
CQI 低 → 信道差 → MCS 低

10.3 RI 是什么

RI = Rank Indicator。

表示 UE 建议的传输层数。

RI = 1:适合单流
RI = 2:适合双流
RI = 4:适合四流

所以 MCS 选择不能只看 CQI,还要看 Rank。

因为:

同样总功率下,Rank越高,每流功率越低;
多流之间质量也可能不均衡。

10.4 OLLA 外环链路自适应

下行 AMC 常见做法:

MCS = CQI映射MCS + CQI调整量

CQI 调整量由 ACK/NACK 驱动。

如果 ACK 多:

说明当前选择偏保守,可以提高MCS。

如果 NACK 多:

说明当前选择太激进,需要降低MCS。

目标是让 iBLER 收敛到目标值,例如 10%。


10.5 为什么目标 BLER 不是 0

很多人会误以为 BLER 越低越好,这不对。

如果 BLER 接近 0,说明:

MCS太保守;
资源利用率不高。

如果 BLER 太高,说明:

重传太多;
时延和吞吐恶化。

所以 AMC 通常追求一个目标 iBLER。

一句话:

适度出错,反而可能吞吐最高。

11. 蜂窝上行 AMC

11.1 一句话功能

上行 AMC 根据基站测得的上行等效 SINR 和 ACK/NACK 反馈,选择 UE 的上行 MCS。

和下行不同:

下行信道质量由UE测量并反馈CQI;
上行信道质量由基站直接测量。

11.2 上行 AMC 两个流程

流程 1:MCS 初选

根据:

调度带宽上的等效 SINR
Avg_SINR
离线解调性能表

查表得到初始 MCS。

这里的表一般来自 PHY 仿真。

本质是:

在某个 SINR 下,哪个 MCS 能满足目标 BLER。

流程 2:MCS 调整

根据实际传输反馈:

ACK:可能可以升 MCS
NACK:需要降 MCS

这和下行 OLLA 类似,本质是闭环修正。


12. PAMC:感知吞吐率最大化 AMC

你材料提到的 PAMC 可以按三步理解。

12.1 SINR 修正

修正对象:

测量误差
小区级偏差
用户级偏差

为什么要修?

因为实际测得的 SINR 可能和真实解调性能不完全一致。

例如:

某些小区干扰估计偏差大;
某些用户信道波动强;
测量和调度时刻存在时延。

12.2 SINR 预测

采用 alpha 滤波。

简单形式:

SINR_avg_new = (1 - α) × SINR_avg_old + α × SINR_current

输出:

均值
方差

均值表示平均信道水平。 方差表示信道波动程度。

重点:

同样均值下,方差越大,MCS选择应越谨慎。

12.3 MCS 选阶映射

根据预测的 SINR 分布特征:

均值
方差

离线遍历得到最优 MCS 门限。

目标不是简单满足固定 BLER,而是:

感知吞吐率最大化

也就是考虑:

速率收益
失败概率
重传代价
信道波动

13. Smart AMC

你材料里 Smart AMC 暂时没有展开,我建议你先这样理解:

传统 AMC:基于 CQI/SINR + ACK/NACK 做规则调整。
Smart AMC:在传统 AMC 基础上,利用更多上下文和预测能力,让 MCS 选择更智能。

可能引入的因素包括:

用户历史BLER
信道波动趋势
移动速度
业务类型
HARQ重传状态
调度带宽
Rank变化
干扰变化
小区级偏差
用户级偏差
AI/ML预测模型

Smart AMC 的目标仍然是:

更准确地选择MCS,让吞吐、时延、可靠性更优。

14. AMC 和你之前学过内容的关系

AMC 不是孤立模块。

它和这些模块强相关:

14.1 和功率控制

功率提升 → SINR提升 → 可选更高MCS
功率下降 → SINR下降 → 需要降低MCS

14.2 和 Rank 选择

Rank提高 → 每流SINR可能下降 → MCS可能下降
Rank降低 → 每流质量提高 → MCS可能上升

最终吞吐要综合:

层数 × 每层MCS效率 × 成功率

14.3 和调度

PF 调度里当前速率通常来自:

MCS对应频谱效率 × 可用资源

所以 AMC 会影响调度优先级。

14.4 和 HARQ

MCS 选高了:

NACK多,HARQ重传多。

MCS 选低了:

ACK多,但资源效率低。

所以 AMC 和 HARQ 强耦合。


15. AMC 主流程

可以统一抽象成:

1. 获取信道质量
   CQI / SINR / ACK统计 / PER统计
 
2. 预测当前链路能力
   等效SINR
   CQI修正
   SINR滤波
   均值方差预测
 
3. 初选 MCS
   查表
   门限映射
   吞吐最大化准则
 
4. 发送数据
 
5. 接收反馈
   ACK / NACK / BLER / PER
 
6. 调整 MCS
   ACK多则升
   NACK多则降
   收敛到目标BLER/PER

一句话:

AMC = 信道估计 + MCS映射 + ACK/NACK闭环修正。

16. 你最容易混的点

16.1 CQI 和 MCS 不是一回事

CQI:UE反馈的信道质量指标
MCS:基站最终选择的调制编码方式

MCS 可以由 CQI 映射而来,但还会受很多因素影响:

CQI调整量
Rank
BLER目标
业务类型
调度带宽
HARQ状态
厂家算法

16.2 BLER 不是越低越好

BLER 太低,说明 MCS 太保守。 AMC 要的是吞吐最大,不是错误率最小。


16.3 ACK/NACK 不只反映信道

尤其在 Wi-Fi 里,NO ACK 可能来自:

信道差
碰撞
干扰
隐藏节点
接收端忙

所以基于 ACK 的速率调整有局限。


16.4 高 MCS 不等于高吞吐

高 MCS 只有在成功率足够高时才有意义。

有效吞吐 = 速率 × 成功率

17. AMC 一页总结表

模块核心内容关键点
MCS调制 + 编码高MCS高效率高风险
AMC目标自适应选MCS最大化有效吞吐
Wi-Fi AMCACK/BA统计Minstrel广泛使用
下行 AMCCQI + ACK/NACKOLLA收敛目标iBLER
上行 AMCSINR测量 + ACK/NACK查表初选 + 闭环修正
PAMC感知吞吐最大化SINR修正、预测、门限映射
Smart AMC更智能的链路自适应多因素预测与优化

18. 自测问题

Q1:MCS 越高一定越好吗?

不是。MCS 越高,速率越高,但误块率也可能升高。有效吞吐取决于速率和成功率的乘积。


Q2:为什么 AMC 要有目标 BLER?

因为 BLER 太低说明保守,BLER 太高说明重传多。目标 BLER 附近通常吞吐更优。


Q3:Wi-Fi 的 Minstrel 为什么需要 Probe?

因为如果长期不用某个高 MCS,就不知道它现在是否可用。Probe 可以发现更高吞吐机会。


Q4:下行 AMC 为什么要 CQI 调整量?

因为 CQI 上报可能不准或有时延,实际 BLER 会偏离目标。ACK/NACK 可以驱动外环修正。


Q5:上行 AMC 和下行 AMC 的主要区别是什么?

下行信道质量主要由 UE 测量并反馈 CQI;上行信道质量由基站直接测量上行 SINR。


19. 一句话总结

AMC 的本质是链路自适应:根据 CQI/SINR/ACK反馈动态选择 MCS,让链路工作在“不过分保守,也不过分激进”的区域。

更工程化地说:

AMC 不追求最高 MCS,也不追求最低 BLER,而是追求有效吞吐最大。

你下一步建议重点啃这条链:

SINR → BLER曲线 → MCS门限 → ACK/NACK反馈 → OLLA调整 → 目标iBLER收敛

这条链吃透,AMC 就不再是概念,而是你能写代码仿真的算法。

Connect

持续跟踪通信仿真、AI 辅助研发与技术管理

如果你也关注系统仿真、AI for RAN、研发效能和团队管理,欢迎通过邮件交流具体问题和实践经验。

也欢迎围绕仿真平台、AI Coding 落地、技术团队管理等主题交流具体问题和实践经验。

Next Reading

优先推荐标签或分类相关的文章;没有足够相关内容时,补充最新文章。

向福星

无线通信算法工程师,关注系统仿真、AI for RAN、研发效能和技术团队管理。

了解作者