
简介面向通信网络工程师与移动通信学习者的RRM算法入门教案以PPT形式系统梳理无线资源管理核心知识。资源共1个pptx文件压缩包大小581KB内容为39页完整课件从算法分类、算法间关系切入逐步讲解CAC接纳控制、SDCA慢速动态信道分配、PC功控参数配置、HC切换控制、RLS无线链路监测、FDCA快速动态信道分配、PS分组调度、AMRC自适应多速率编码及LCC负荷拥塞控制等关键算法并辅以排序机制、接入准则、功控过程和切换触发等细节说明。已有134人学习。通过这份教案可快速建立RRM算法整体框架理解资源分配与资源优化算法之间的依赖和触发关系适用于网络优化人员培训、通信课程备课或自学入门既能掌握各算法原理也能了解实际组网中的配置与协同思路。1. RRM算法简介为什么这张PPT值得从头做大多数人看到“RRM算法简介PPT教案.pptx”这个文件名会下意识觉得它只是课件制作问题。但真正要讲清楚的是RRMRadio Resource Management无线资源管理这组算法在共享频谱里怎么把频率、时间、功率和天线波束分给不同用户。它不是一个算一次就结束的公式而是每个调度周期都要重新计算的决策规则。如果你正在准备通信类培训、网络优化分享或研究生课程课件这份内容的难点不在排版而在让听众理解“为什么同样的信道条件下不同调度策略会让用户速率差出好几倍”。下面按“原理→教案结构→仿真→交付校验”的顺序讲保证你拿到手就能改出一版不空泛的PPT。2. RRM算法的底层逻辑与核心模型2.1 无线资源管理的三个基本维度在讲算法之前先要让读者接受一个前提无线资源不是一根“管道”而是一个四维的“拼盘”——频率、时间、空间、功率每一样都不能无限增加。RRM算法要做的事情就是在这四个维度里做切割和分配。资源维度可调度粒度实际系统中的表现频率资源块 RB/PRBLTE 20MHz约为100个PRBNR按子载波间隔更灵活时间时隙 slot/TTILTE TTI1msNR支持多种子载波间隔空间波束/传输层MIMO中不同用户可在空间上复用功率每RB发射功率下行功率分配、上行功率控制这张表可以直接放进教案第2页作用是先建立“资源是离散的”这个直觉。很多人在理解RRM时卡住是因为把“资源”想象成一条带宽而实际上调度器每毫秒都要决定哪个用户在哪个PRB上发送、用什么MCS、多大功率。调度器的任务可以简化成一个基站服务 N 个用户一个调度窗口内有 K 个资源块对每个资源块 k 选择一个用户 i使无线资源利用效率最大化。如果用 r_{i,k} 表示用户 i 在资源块 k 上的可达速率分配结果是矩阵 x_{i,k}0或1那么最直观的目标是 max ∑∑ r_{i,k} x_{i,k}。但直接把所有资源给信道最好的用户会让小区边缘用户饿死。所以RRM算法必须在“整体速率最大”和“用户间公平”之间找折中于是有了不同调度算法。2.2 从“用户体验”倒推RRM的决策变量给听众讲RRM时不要把它当作独立模块要从用户可感知的指标倒推。用户看到的是下载速率、时延、掉线率这些指标往上追会追到四个决策变量资源分配给用户分多少RB、链路自适应选择MCS、功率控制调整发射功率和波束管理选择预编码矩阵和传输层数。这四个变量互相耦合。例如降低发射功率会减少小区间干扰但也会让边缘用户的SINR下降反而需要更低的MCS。这种非线性关系很难用一段公式讲清楚所以我会在教案里放一个决策变量到指标的因果表再配一页仿真对比图让听众直观看到耦合效果。2.3 关键约束干扰、公平性与频谱效率RRM最常见的约束有三类。第一类是物理约束比如总发射功率上限、可用PRB数、每用户缓存数据量。第二类是干扰约束用户接收到的信号被邻区污染SINR P_signal / (P_interference noise)所有RRM算法最终都在提高这个比值。第三类是公平性约束通常用效用函数体现。比例公平PF调度器最大化 ∑ log R_i其中 R_i 是用户长期平均速率。对数函数使低速率用户获得更高权重所以它在吞吐和公平之间取得了行业共识。为了让听众快速理解调度周期内的决策我一般用下面这段伪代码# 伪代码比例公平调度器每个TTI的决策循环 for t in range(TTI个数): # 维护每个用户的历史平均速率 R_avg[i] for k in range(可用RB数): best_user None best_metric -1 for i in range(用户数): # 比例公平度量值瞬时速率 / 历史平均速率 metric r[i][k] / max(R_avg[i], 1e-6) if metric best_metric: best_metric metric best_user i # 分配该RB给best_user并更新平均速率 R_avg[best_user] (1 - 1/window) * R_avg[best_user] (1/window) * r[best_user][k]逻辑说明每个时隙先算度量值再排序分配再更新统计量。window 是PF的滤波窗口控制公平性对瞬时变化的响应速度window 越小历史速率更新越快调度的机会主义越强window 越大用户间速率差异越难被拉平。伪代码里的 max() 做防除零否则刚接入的低速率用户会得到无穷大的度量值把所有资源抢走。这一段能帮听众看懂“调度不是一次规划而是一个持续运行的循环”。3. 把RRM算法讲清楚的PPT教案结构3.1 教案页面规划从问题到算法的演进一个“RRM算法简介”的PPT教案最容易犯的错是开头甩定义、中间堆公式、结尾放截图。我建议按“问题-约束-方案-验证”的叙事线来组织页面总页数控制在14页左右| 页码 | 页面内容 | 教学目的 | 建议素材 | |---|---|---|:--:|---| | 1 | 封面观察一次无线通信资源分配 | 建立冲突场景 | 多用户同时请求下载的动图 | | 2 | 频率、时间、空间、功率四维资源 | 建立离散资源直觉 | 四象限图 | | 3 | 从SINR到吞吐率的链路过程 | 理解速率来源 | 公式测量曲线 | | 4 | 三种典型调度算法 RR、Max C/I、PF | 引出经典算法 | 度量值公式 | | 5 | 算法流程拆解 | 理解调度周期 | 分步流程图 | | 6 | 比例公平算法的手工演算 | 能手动算一遍 | 5个用户×3个RB的表格 | | 7 | 小区间干扰协调 ICIC | 从单小区到多小区 | 频域分区示意 | | 8 | 功率控制闭环 | 第二重要机制 | 信令交互图 | | 9 | 负载均衡与切换协同 | 用户移动的影响 | 用户轨迹图 | | 10 | 仿真场景设定 | 如何比较算法 | 参数表 | | 11 | 仿真结果解读 | 学会看曲线 | 3条吞吐曲线 | | 12 | 教案复盘与作业 | 巩固知识点 | 作业题 |前6页都在单小区内做文章到第7页才引出多小区干扰降低了认知负担。如果只做30分钟培训可以砍掉7页以后的内容把重点放在第4到第6页。3.2 用算法流程图演示调度流程在PPT里画调度流程很多人会直接贴一张布满箭头的图听众看完更晕。常见做法是拆成三张连续的小图第一步收集并测量每个用户的CQI第二步计算所有用户在可用RB上的调度度量值第三步按度量值从大到小分配RB更新统计量。三张图用相同的母版每次只高亮一步就形成一次配合讲解的动画。如果不方便画图用表格也能表达同样的流程步骤输入处理输出1用户CQI反馈将CQI映射为可达速率 r[i][k]速率矩阵2速率矩阵、历史平均速率计算 metric r / R_avg度量值矩阵3度量值矩阵每个RB选最大度量用户更新R_avg分配表 统计值这个表相当于流程图的“无箭头版本”适合放在第5页。讲到第6页时可以手动选3个RB、5个用户逐步算一遍。这一步非常值得做因为比例公平算法必须手算一次才能看到为什么速率低的用户偶尔会被调度到。3.3 用python-pptx搭出教案骨架准备教案时我习惯用python-pptx先搭一个外壳把页面和标题都占好位避免在PPT里反复改版式。最小示例from pptx import Presentation prs Presentation() # 使用默认模板中的“标题和内容”版式具体索引按模板调整 slide_layout prs.slide_layouts[1] slide prs.slides.add_slide(slide_layout) slide.shapes.title.text RRM算法的三种调度度量 # 找到正文占位符并填入要点 body slide.placeholders[1] body.text RR: 循环分配\nMax C/I: 瞬时速率优先\nPF: r / R_avg prs.save(rrm_intro_skeleton.pptx)逻辑说明上面代码用python-pptx生成一个含标题和正文的PPT页面在此之上可以继续按页循环添加内容。slide_layouts[1]在不同模板中含义可能不同打开PPT确认占位符类型后修改索引即可。这样生成的骨架文件可以直接用PowerPoint/WPS打开继续编辑适合批量创建多页教案。3.4 参数表格与仿真结果展示教案中必须有一张“算法横向对比”的参数表。常用的对比维度是公平性、频谱效率、时延和适用场景。调度算法度量值公平性频谱效率典型场景轮询 RR无循环分配最高低语音、低负载最大载干比 Max C/I瞬时速率最低高资源充足、时延敏感比例公平 PFr / R_avg中高中高分组数据业务改进 PFr / (R_avg^α)可调可调移动边缘、频选调度这张表的价值在于“可查”学员在后续听到某个算法时能快速对应到公平性和频谱效率的折中。仿真结果展示则要注意不要只放收敛后的吞吐条带图至少放一张随时间变化的用户速率曲线让听众看到调度结果每个周期都在跳动。RRM算法不是一个静态规划而是一个实时计算问题。4. 在教案中嵌入RRM仿真最小可复现Python示例4.1 构建一个单小区比例公平调度器为了让教案不空转我通常会准备一个不需要无线环境也能跑的Python示例用随机数模拟每个用户在每个RB上的SINR然后实现轮询、最大载干比和比例公平三种调度器。代码量控制在120行以内学员课后能自己改参数。import numpy as np class Simulator: def __init__(self, users8, rbs25, tti200, window50, seed1): self.users users self.rbs rbs self.tti tti self.window window rng np.random.default_rng(seed) # 每个RB上每个用户的基础SINR单位dB边缘用户偏低 self.sinr rng.normal(10 - 3 * (np.arange(users) / users), 4, size(users, rbs)) def rate_matrix(self): # 香农近似C B * log2(1 10^(SINR/10)) B 180e3 # 每个RB带宽约180kHz return B * np.log2(1 10 ** (self.sinr / 10)) def rr(self): total np.zeros(self.users) for t in range(self.tti): r self.rate_matrix() for k in range(self.rbs): user t % self.users total[user] r[user, k] return total / self.tti def max_carrier(self): total np.zeros(self.users) for t in range(self.tti): r self.rate_matrix() best np.argmax(r, axis0) # 每个RB选信道最好的用户 total[best] r[best, np.arange(self.rbs)] return total / self.tti def proportional_fair(self): total np.zeros(self.users) avg np.ones(self.users) # 历史平均速率初始化为1 for t in range(self.tti): r self.rate_matrix() metric r / avg[:, None] # 每个RB上的PF度量 best np.argmax(metric, axis0) assigned r[best, np.arange(self.rbs)] total[best] assigned # 指数移动平均更新 avg[best] (1 - 1/self.window) * avg[best] (1/self.window) * assigned return total / self.tti sim Simulator() for name, fn in [(RR, sim.rr), (MaxC/I, sim.max_carrier), (PF, sim.proportional_fair)]: rates fn() print(f{name}: 总吞吐{rates.sum()/1e6:.2f} Mbps, f最低用户{rates.min()/1e3:.1f} kbps)逻辑说明rate_matrix 把SINR转成每秒比特数每个RB带宽设为180kHz香农公式是常用近似。rr 用时间模运算轮流分配max_carrier 直接用argmax把每个RB给瞬时速率最高的用户proportional_fair 用 avg[:, None] 做广播除法避免显式循环。最后的指数移动平均更新是PF的关键window控制平滑程度。参数说明users8 模拟8个用户边缘SINR比中心低约3dBrbs25 对应5MHz带宽想模拟20MHz可改100tti200 是200个调度周期window50 是PF平均窗口调小会让调度更激进调大更平均seed1 固定随机种子保证结果可复现。4.2 三个必调参数窗口长度、公平性因子、信道粒度上面代码中真正值得调的是三个参数。第一个是window单位是TTI个数。设成1avg几乎每步都被瞬时速率覆盖PF退化成Max C/I设成500历史速率更新很慢算法对信道变化不敏感。第二个是公平性因子完整PF会把度量值写成 r[i][k] / (R_avg[i])^αα控制公平性强度α0 是Max C/Iα1 是标准PFα1 会进一步照顾低速率用户。第三个是信道粒度也就是SINR是每个RB独立变化还是整段一样。真实系统中CQI上报会压缩课堂模拟可以把sinr矩阵的方差调大调小观察调度器是否需要频选。建议在教案中加一页“参数敏感度”固定其他条件只改window画公平性和吞吐量两条曲线。你会发现总吞吐变化不大但最低用户速率在window较小时会明显下降。这个实验比任何文字都更有说服力。参数推荐初始值调参方向与效果window50 TTI减小机会主义更强边缘用户波动大增大更公平响应更慢公平性因子 α1.0增大低速率用户权重更高减小更接近最大吞吐信道随机扰动2~4 dB增大频选收益更明显减小所有RB差异变小4.3 输出图表与解读import matplotlib.pyplot as plt rates_rr sim.rr() rates_mc sim.max_carrier() rates_pf sim.proportional_fair() x np.arange(sim.users) plt.figure(figsize(8, 4)) plt.bar(x - 0.2, rates_rr / 1e3, 0.2, labelRR) plt.bar(x, rates_mc / 1e3, 0.2, labelMax C/I) plt.bar(x 0.2, rates_pf / 1e3, 0.2, labelPF) plt.xlabel(用户编号) plt.ylabel(平均速率 (kbps)) plt.legend() plt.tight_layout() plt.savefig(rrm_scheduler_compare.png, dpi150)这段代码会生成三组柱状图。第一组RR的柱形几乎等高但整体较低因为每个用户平均只分到1/8的时间机会。第二组Max C/I最不均匀靠近用户0的中心用户柱子很高后面的边缘用户可能很低。第三组PF的分布介于两者之间中心用户被让出部分资源给边缘用户。讲解时要注意总吞吐不是唯一指标。Max C/I总吞吐通常最高但边缘用户可能只有几十kbps实际无法看视频。所以在教案中要同时给出“最低用户速率”这个指标比平均速率更能说明调度算法的公平性。5. 教案交付前的四步自检与常见坑位5.1 自检一数字是否前后一致每张幻灯片里的仿真结果必须指向同一个随机种子或数据文件。如果第11页的总吞吐是17.2 Mbps而第6页手工演算的RB速率加起来只有1.2 Mbps学员一定会产生怀疑。常见做法是给每个仿真图表标注参数摘要用户数、RB数、TTI数、window。这样即使数字有舍入也能看出计算口径是否一致。5.2 自检二动画是否“一次揭示”PPT动画最忌讳把整页所有文本框一起飞入。RRM算法的教学动画应当是配合讲解的一次揭示每次点击只出现一个新步骤旧内容保持不动。比如第5页的调度流程第一次点击出现“收集CQI”第二次出现“计算度量值矩阵”第三次才出现“循环分配”。检查方法是从头按一遍幻灯片放映确认没有元素在非预期时机出现。5.3 自检三PPT转PDF后图表是否清晰发给学员的版本通常导出PDF。PPT导出PDF变糊的常见原因是图片被拉得超过原始分辨率。检查方法在PPT里把图片缩放回100%看清晰度导出后用阅读器放大到200%看柱状图边缘是否发虚。如果发虚把原始图表保存成高分辨率PNG后再嵌入不要直接在PPT里粘贴位图。5.4 自检四作业题能否在30分钟内完成教案最后一页至少要留一道不需要仿真环境的计算题。例如3个用户、2个RB给定SINR矩阵和历史平均速率要求手算比例公平调度结果。这样能验证学员是否真的掌握了度量值计算。如果作业需要跑代码就把代码文件一起打包并在PPT中给出运行命令pip install numpy matplotlib python rrm_sim.py在脚本开头用import numpy as np不依赖新语法。最后再核一遍作业答案和仿真代码运行结果是否一致否则学员会消耗大量时间在纠错上。本文还有配套的精品资源点击获取