本节摘要:SOURCE 5.3/INTRO:基站按 CQI/Buffer/QoS 毫秒级分配 RB;比例公平(PF)调度平衡吞吐与公平;Wi-Fi 6 OFDMA 支持 UL 多用户并发。
| 输入 | 输出 | 算法 |
|---|---|---|
| CQI/PMI | MCS | 链路自适应 |
| 队列长度 | RB 数量 | QoS 权重 |
| HARQ 状态 | 重传 RB | 可靠性 |
| 切片 SLA | 资源隔离 | 网络切片 |

Release 19+ 探索 AI 预测 CSI 与业务类型,在线优化 numerology/MCS——智能增强 OFDM 第四演化阶段。
⚠️ 常见坑:纯 max-C/I 饿死边缘用户——PF 更常用。
💡 关键直觉:调度器是频谱 OS 上的「进程管理器」。
动态资源分配在数学上是一个在线优化问题:每个时隙,调度器把资源块与调制编码方案分配给各用户,目标是在吞吐、公平、时延约束下最大化效用函数。设用户集合 U、资源块集合 R,分配指示 a_{u,r} \in \{0,1\},典型优化目标为:
其中 r_{u,r} 是用户 u 在 RB r 上的瞬时速率(由 CQI 映射的 MCS 决定),U_u 是效用函数。效用函数的不同选择对应不同调度策略:U(x)=x 退化为最大吞吐调度,U(x)=\log x 对应比例公平,U(x) 带权重则引入 QoS 优先级。由于问题规模大、信道随机变化,实际系统采用贪心与启发式算法在毫秒级完成近似求解。
调度器还需考虑物理约束:用户被分配的 RB 是否要求连续(影响 DFT-s-OFDM 上行)、MCS 只能取离散档位、功率受限时的功率分配与 RB 分配耦合。这些约束使调度问题从"纯选择"变成"约束优化",也解释了为什么调度器是 4G/5G 系统中复杂度最高的软件模块之一。
动态资源分配与链路自适应(AMC)是一枚硬币的两面。用户上报 CQI(信道质量指示)与 PMI(预编码矩阵指示),调度器据此选择 MCS——信道好就升调制阶数与码率,信道差就降档。整个闭环是:测量信道 → 上报 → 调度决策 → 传输 → 反馈确认(HARQ),一个周期通常 1-8 ms。AMC 的目标是让每用户的实际速率贴近其信道容量,既不因过度乐观导致高误块率,也不因过度保守浪费频谱。
CQI 的准确性与时效性是闭环性能的关键。CQI 粒度太粗,AMC 无法精确匹配;上报间隔太长,调度决策基于过时信息。5G NR 引入更细的 CQI 表(最高支持 256-QAM 各码率档)与周期/非周期上报结合,并支持 MCS 微调偏移量补偿测量误差。误块率目标(通常 10%)作为 AMC 外环反馈,持续校准内环的 MCS 选择——这是工程中"内外双环"的经典设计。
调度器必须在吞吐与公平之间折中。最大载干比(Max-C/I)调度每时隙把 RB 给信道最好的用户,系统吞吐最高,但边缘用户长期得不到服务;轮询调度绝对公平,但浪费了频选增益。比例公平(PF)调度在两者之间取均衡:
分子是当前瞬时速率,分母是用户的历史平均速率。信道刚变好的用户分子大、历史上服务不足的用户分母小,二者共同抬升调度优先级。PF 的数学性质是:在长时标上最大化所有用户对数速率之和,天然兼顾吞吐与公平。工程上的公平性常用 Gini 系数或 5% 边缘用户吞吐衡量。
下面仿真对比三种调度策略的吞吐分布。
import numpy as np rng = np.random.default_rng(6) users, rbs, slots = 6, 20, 200 # 用户信道:位置不同的平均信噪比与起伏 snr_db = rng.normal([4, 8, 12, 16, 20, 24], 4, (users,)) H = snr_db[:, None] + rng.normal(0, 6, (users, rbs, slots)) def run(strategy): rate = np.log2(1 + 10 ** (H / 10)) # 香农速率近似 cum = np.ones(users) # 历史平均(起始为 1) total = np.zeros(users) for t in range(slots): if strategy == 'maxc': alloc = np.argmax(rate[:, :, t], axis=0) elif strategy == 'rr': alloc = np.tile(np.arange(users), rbs // users + 1)[:rbs] else: # pf score = rate[:, :, t] / cum[:, None] alloc = np.argmax(score, axis=0) for u in range(users): total[u] += np.sum(rate[u, alloc == u, t]) cum[u] = 0.8 * cum[u] + 0.2 * total[u] / (t + 1) return total / slots for s in ['maxc', 'rr', 'pf']: t = run(s) print(f"{s:5s} 总吞吐={t.sum():6.1f} 最小用户={t.min():5.1f} 最大用户={t.max():5.1f}")
结果通常呈现:Max-C/I 总吞吐最高但最小用户极低(公平性差),RR 公平但总吞吐低,PF 在两者之间取得平衡——这正是工程上 PF 成为默认选择的依据。
动态资源分配还要满足多样化的 QoS 需求。URLLC 业务要求极低时延,调度器需预留资源或采用免调度传输;视频流要求持续速率,需保证最小吞吐;实时语音对抖动敏感。调度器通过队列管理、时延上限约束与权重调整实现差异化服务。网络切片则把这种差异化制度化:不同切片(eMBB/uRLLC/mMTC)配置独立的资源池、调度器实例与 QoS 策略,实现隔离与共享的平衡。
Release 19+ 的研究正把 AI 引入调度:用神经网络预测信道状态与业务流量,替代"测量-上报-决策"的延迟闭环;用强化学习在线优化 numerology、MCS 与功率分配;用大模型理解业务意图,把调度从规则驱动推向数据驱动。这一方向的潜力与风险并存——预测错误的代价、可解释性、训练数据分布漂移,都是落地前必须解决的问题。但无论如何,调度器作为"频谱操作系统"的核心,其演化方向已经明确:从静态规则,走向智能自适应。