下面我按你的“技术学习卡片”方式整理 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/4MCS 越高,一般意味着:
调制阶数更高;
码率更高;
频谱效率更高;
对 SINR 要求更高;
误块风险更大。3.2 调制方式
调制决定每个符号能承载多少 bit。
| 调制方式 | 每符号 bit 数 | 特点 |
|---|---|---|
| BPSK | 1 | 最稳,效率低 |
| QPSK | 2 | 稳定性较好 |
| 16QAM | 4 | 中等效率 |
| 64QAM | 6 | 高效率 |
| 256QAM | 8 | 更高效率,对信道要求高 |
一句话:
调制阶数越高,一个符号装的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 | 空间流数 |
| Tsymbol | OFDM符号时长 |
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 5 | 100 Mbps | 99% | 99 Mbps |
| MCS 8 | 150 Mbps | 90% | 135 Mbps |
| MCS 10 | 200 Mbps | 60% | 120 Mbps |
| MCS 12 | 250 Mbps | 30% | 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 3 | 50 Mbps | 99% | 49.5 |
| MCS 5 | 100 Mbps | 90% | 90 |
| MCS 7 | 150 Mbps | 50% | 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下降 → 需要降低MCS14.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 AMC | ACK/BA统计 | Minstrel广泛使用 |
| 下行 AMC | CQI + ACK/NACK | OLLA收敛目标iBLER |
| 上行 AMC | SINR测量 + 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 就不再是概念,而是你能写代码仿真的算法。