简介:5G高铁专网既服务列车乘客,也承载部分沿线公网用户,公网用户过多会挤占专网资源,导致高铁用户速率下降甚至无法接入。这份资源围绕高铁低速迁出策略展开,面向网络优化工程师,系统讲解其原理、参数配置与现网验证方法:通过多普勒频移与测量值变化识别用户移动速度,将低速公网用户迁出专网,保障高速用户驻留L2100主覆盖频点。案例基于京沪高铁苏州段17公里24站点的实测数据,给出低速门限、A4测量门限、专网PCI及多频互操作等参数设置,并对比部署前后指标,L2100占比升至63%、覆盖率提升至91.83%,上下行速率与切换成功率均获改善。全文以1个docx文档呈现,压缩包约22KB,内容精炼,适合网优专题培训、技术方案沉淀或工程排错参考。已有468人学习该资源。
1. 高铁低速迁出策略:车站里的“隐形流量”才是高铁专网的真正敌人
高铁场景的 5G 网络优化,大多数人的直觉是“先把速率跑满”。真正做过高铁专网优化的人都知道:列车穿行时高速用户的下行速率波动,源头往往不在宏站覆盖,而在车站驻留的低速用户——候车旅客、接站人群、站内商铺的顾客。他们手机连着高铁专网小区,却基本不动,持续占用 PUCCH 和 PUSCH 资源,还把随机接入、切换和 QoS 调度的节奏带乱。高速用户驶过站台时恰恰最需要连续切换和满调度,结果被低速用户“拖累”了整条链路的资源分配。这份《5G网络优化:高铁低速迁出策略应用案例.docx》解决的就是这个问题:把低速用户从高铁专网迁出到覆盖层或低层小区,让车速 120km/h 以上的人独占高铁小区的资源。适合正在做高铁、地铁沿线或高速干线覆盖优化的从业者,也适合想搞明白“低速迁出到底怎么配置、怎么验证、怎么避免来回乒乓”的 KPI 背锅侠。
2. 低速用户怎么认出来:从测量报告到速度判定的完整链路
2.1 理论上:什么情况才叫“低速用户”
低速迁出的核心难点不是“迁出”这个动作,而是“低速”这个判定。5G NR 里没有直接上报“我站着不动”的字段,基站只能靠间接证据推断。最常用的三个证据源是:
- UE 速度估计:gNB 根据上行信号的频偏变化率估算 UE 速度,3GPP 38.331 里有相关 IE,但多数商用设备并不在标准测量报告里直接携带“速度值”。
- 测量报告的波动特征:低速用户的 RSRP、RSRQ 变化非常平稳,信号强度长时间保持在几个 dB 内波动;高速用户则表现为快速深衰落,相邻两次测量报告的 RSRP 差值往往超过 6~10dB。
- TA(Timing Advance)变化率:低速用户 TA 几乎不变,高速用户每个切换周期 TA 都大幅跳变。
工程上喜欢组合式判定,单一维度容易误判。比如列车刚好停靠站台时,车上用户的“瞬时速度”为零,但他下一秒就要随车加速离开,这种用户一旦被当成低速用户迁走,会带来频繁切换甚至掉话。所以在设计时我会加“驻留时长确认”,连续多个周期判定为低速,才标记为低速候选。
2.2 工程上:测量报告里取哪几个字段来写判定规则
一份真实商用网的判定配置,通常基于周期性测量报告和事件测量报告双重输入。字段包括:
- RSRP 和 RSRQ 的标准差:低速用户 2 秒内 RSRP 标准差通常在 1~2dB 以内,高速用户很容易超过 4dB。
- 同频邻区测量到的 RSRP 变化幅度:低速用户邻区关系稳定,主邻小区次序变化很慢。
- PHR(Power Headroom Report)上报频率:低速用户因为信道稳定,PHR 触发次数明显少。
你可以把判定规则按照下面的伪代码来理解:
# 低速用户判定伪代码:用于说明测量输入与判决逻辑 # 输入:周期测量报告集合 reports_periodic[],事件报告集合 reports_event[] # 输出:是否标记为低速用户(low_speed_candidate) RSRP_list = [r["rsrp"] for r in reports_periodic if r["cell_id"] == serving_cell] RSRP_std = np.std(RSRP_list) # 服务小区 RSRP 标准差 RSRP_range = max(RSRP_list) - min(RSRP_list) # 测量窗口内最大波动 ta_list = [r["ta_in_ts"] for r in reports_periodic] ta_shift = max(ta_list) - min(ta_list) # 定时提前波动量(单位:TS) # 低速特征:RSRP 波动 < 3dB,TA 漂移 < 2TS if RSRP_std < 1.5 and RSRP_range < 3.0 and ta_shift < 2: low_speed_candidate += 1 else: low_speed_candidate = 0 # 连续 5 个周期(每周期 200ms)满足条件才判定为低速 if low_speed_candidate >= 5: return True # 标记为低速用户,准备触发迁出 else: return False这段逻辑说明一个关键点:低速判定必须带“连续周期确认”。单次 RSRP 稳定不能证明用户静止,因为高速用户在隧道出口、桥梁遮挡时也可能出现短暂稳定窗口。我把确认窗口设置为 5 个周期、每个周期 200ms,也就是持续 1 秒的低速特征才进入迁出候选。参数具体怎么调,取决于你的测量周期配置。
2.3 判决参数推荐与调整依据
以我拆过的几个高铁专项项目看,周期测量报告一般配置为 200ms 或 320ms。200ms 能更快识别低速用户,但空口信令开销会增大;320ms 更省资源但迁出响应慢。我倾向于 200ms 用于高铁站台覆盖小区,因为这类小区用户密度高、低速用户占比大,快速迁出对整体吞吐率提升更明显。
另外一个容易被忽略的参数是测量报告数量上限。NR 协议规定测量报告里最多携带 8 个邻区(同频、异频按各自列表),如果你把低速迁出的目标小区放在异频层,需要同时配置异频测量 Gap 周期。常见做法是给高铁覆盖小区配置 80ms Gap 周期,确保异频测量结果能被及时上报,避免等了半天邻区信息缺失而切不出去。
提示:判定窗口过短(比如 1 个周期就判定)会导致列车停靠时车上用户被误迁;窗口过长(比如 10 个周期以上)则低速用户在站内刚发起业务就可能被识别为高速用户,失去迁出意义。5 个连续周期是通用起步值。
3. 迁出动作怎么下:A3/A4 切换事件与偏置参数配置
3.1 迁出目标小区怎么选
把低速用户迁到哪,决定了策略的成败。高铁专网通常覆盖在 2.6GHz 或 3.5GHz 频段,而低速迁出目标一般选择与其共覆盖的低层网络,常见的是 1.8GHz/2.1GHz 的宏站覆盖层,或者专门的室内分布层(车站候车厅、地下商业区)。选目标小区的原则有三条:
- 与高铁专网小区有共覆盖关系,切换后信号质量能满足基本业务需求(RSRP 不低于 -105dBm)。
- 目标小区不能与高铁专网同频同 PCI 组的邻区关系混乱,否则切换后容易立刻发生干扰。
- 目标小区负载较低,一般要求 PRB 利用率峰值低于 60%,不然就是从一个拥堵小区迁到另一个拥堵小区。
因为目标是分层结构,所以触发迁出的切换事件通常用 A4(邻区质量高于绝对门限),而不是 A3(邻区质量高于服务小区)。原因也很简单:高铁专网信号天然强于低层网络,等你 A3 条件满足,低速用户已经在高铁小区里消耗了好几分钟资源了。A4 门限设置为“低层网络可正常通信、但比高铁专网 RSRP 低 10~15dB”的区间,低速用户只要检测到低层网络达标就切走。
3.2 A4 事件参数配置表
拿一份典型的华为/中兴 NR 网管参数来对照,低速迁出的 A4 事件配置一般落在这个范围:
| 参数项 | 典型配置 | 作用说明 |
|---|---|---|
| A4 门限(ThresholdRSRP) | -100 ~ -105 dBm | 低于该值不触发迁出,防止低层网络质量太差时强行切换 |
| Hysteresis | 1 ~ 2 dB | 防止测量抖动导致反复触发 |
| TimeToTrigger(TTT) | 320 ~ 640 ms | 满足条件持续该时长后才上报事件 |
| CellSpecificOffset(小区级偏置) | 0 ~ 3 dB | 可对个别低层目标小区临时抬高或压低门限 |
| A4 Report Quantity | RSRP + RSRQ | 上报两种量,便于后台核查切换原因 |
| MaxReportCells | 4 ~ 8 个 | 控制测量上报规模,避免信令拥堵 |
这里我特别说下 TTT 的选择。低速用户信道变化慢,TTT 稍长不影响迁出及时性,用 640ms 更稳妥;但如果站台区域低速用户量大,比如节假日高峰,TTT 过长会导致切换消息排队。我实际项目里 320ms 和 640ms 都试过,日常非高峰 640ms 乒乓率明显低,高峰时段用 320ms 迁出吞吐更高,因为队列压力小了。
3.3 异频测量 Gap 配置不能省
低速迁出的目标小区通常异频,NR 里异频测量依赖测量 Gap。网络配置上要检查:
- Gap Pattern 选择:建议用 40ms/80ms 周期,Gap 长度 6ms 的 Pattern,兼顾测量及时性和调度空窗。
- 测量 Gap 与 TTT 的配合:Gap 出现频率太低,低速用户可能长时间测不到异频邻区,TTT 永远无法启动。现场经常出现“切换迟迟不发生,后台一看异频邻区根本没报上来”的坑,多半就是 Gap 没配或者配的周期过长。
# 5G 网管脚本示例:NR 小区异频测量配置片段 # 以某厂家命令格式为例,实际网管平台命令关键字可能不同,但逻辑结构一致 SET NRCELLMEAS: cellId=101, measFrameStructure=20:40, # 每 40ms 一个测量 Gap gapOffset=8, gapDuration=6, # Gap 长度 6ms reportInterval=200, # 测量报告周期 200ms a4ThresholdRsrp=-102, # A4 绝对门限 -102dBm a4Hyst=2, # 迟滞 2dB a4TimeToTrigger=480, # TTT 480ms measQuantityType=RSRP_RSRQ; # 上报 RSRP 和 RSRQ 两套量这段脚本里的参数组合起来是什么效果?低速用户每 40ms 有一次异频测量机会,200ms 生成一条测量报告,如果 A4 门限持续满足 480ms(约 12 次 Gap 机会),就上报事件触发切换。注意一个细节:reportInterval=200 必须与周期测量报告配置一致,否则基站的测量合并逻辑会混乱,出现门限早已满足但不触发上报的“卡事件”现象。
3.4 切换目标小区的选择权重:别让频率优先级拖后腿
除了 A4 门限,还有一个容易被忽略的配置——频率优先级。NR 的基于频率优先级的重选和切换策略会影响异频测量积极性。如果你把高铁专网频率优先级设得过高(比如优先级 7),低速用户在发起异频测量前会先做频率优先级比较,导致迁出触发滞后。我一般把高铁覆盖频点优先级设为 5,低层网络频点优先级设为 4,保留一个合理的级差但不至于让 UE 在异频测量时“犹豫”。
另外,目标小区侧的频率偏置(FrequencyOffset)也可以配合使用。给低层网络频点配置一个正偏置,相当于在 RSRP 测量值上加上额外补偿,让 A4 门限更容易满足。这种做法对站台边缘区域特别有用,因为那里的低层网络信号可能正好在门限边缘,正偏置 2~3dB 就能把抖动过滤掉。
4. 实施流程:从小区筛选到参数下发再到回退方案
4.1 第一步:高铁专网小区和低速迁出目标小区的配对
拿到一份新区域的工参表,先别急着开参数。我会先把高铁专网小区(一般根据小区名关键字:高铁、GTR、HSR 等)筛选出来,再找出与其共站或共覆盖的低层小区。整理成配对表,格式大致如下:
# 小区配对清单示例:coverage_pairs.csv # source_cell 为高铁专网小区,target_cell 为低速迁出目标小区 # 判定依据:两个小区覆盖区域重叠度 >= 70%,目标小区负载一般低于 50% source_cell,target_cell,overlap_ratio,note GTR-HSR-101,HZBTS-101-1,78%,车站候车厅东区 GTR-HSR-102,HZBTS-101-2,82%,车站候车厅西区 GTR-HSR-201,HZBTS-203-1,71%,站前广场北侧其实这里有个很重要的现场经验:很多低速用户不在站台上,而在站前广场、停车场这些半室内外区域。只做室内分布层作为目标小区肯定漏场景。我通常会同时把室外的低层宏站也纳入目标小区池,并根据 MR 数据里的 TA 分布和到达角(AOA)进一步确认哪些小区确实覆盖到高铁站周边人流密集区。
4.2 第二步:开启低速检测开关与参数下发顺序
参数下发建议按这个顺序走,避免功能级联异常:
- 先开目标小区的测量请求,配置好测量 ID 和报告周期;
- 再开 A4 事件评估开关;
- 然后配置移动性参数,包括频点优先级、小区级偏置;
- 最后生效切换策略开关,把“低速用户允许切换至指定低层小区”的策略绑定到对应邻区对。
# 参数下发顺序 bash 脚本示意:分四步执行 # 请根据实际网管平台命令替换其中的关键字 echo "Step1: configure periodic measurement for source cell" cfg meas create cell=101, reportType=periodical, intervalMs=200, quantity=rsrp-rsrq echo "Step2: configure A4 event" cfg a4 create cell=101, threshold=-102, hyst=2, ttt=480 echo "Step3: adjust frequency priority and cell offsets" cfg freqprio set freq=3500MHz, prio=5 cfg freqprio set freq=2100MHz, prio=4 cfg celloffset set neighbor=HZBTS-101-1, offset=2 echo "Step4: enable low-speed migration policy" cfg mobility enable policy=lowSpeedMigration, sourceCell=101, targetCellList=HZBTS-101-1,HZBTS-101-2为什么先测量后事件、先事件后策略?因为如果先开策略,UE 还没有可用的异频测量数据,策略执行时拿不到目标小区列表,会直接触发失败。很多翻车现场都是工程师图省事一次下发,结果策略“看上去开了”,实际上从不生效,因为测量配置和策略配置之间存在时间窗竞态。
4.3 第三步:批量部署前的抽样验证
不要一上来全量下发。挑一个高铁站客流适中的小区做试点,至少观察一天的 KPI 和信令跟踪。重点看三类指标:
- 低速迁出尝试次数与成功次数(按目标小区统计);
- 高铁专网小区近 24 小时的上行 PRB 利用率变化;
- 高速用户的平均因网速(取了所有用户的下行速率均值,排除低速用户后对比提升幅度)。
只有试点结果符合预期,才做全网批次下发。批次一般按区域划分,每天最多下发 50~100 个小区,避免大面积参数变更到时候出问题没法快速定位。
4.4 回退方案:参数变更记录与一键回滚
优化配置必须有后悔药。实际操作中,我在每次参数变更前都会导出一份全量配置备份到本地,作为回滚基线。网管平台通常支持配置变更记录导出,格式是 XML 或 CSV。我习惯把变更前后参数做 diff,生成一张对照表,一旦出现异常,能按小区批量改回原值。
# 配置文件 diff 检查:对比变更前后的关键参数 # 确保变更只影响低速迁出相关字段,不误碰其他移动性参数 diff pre_check_101.xml post_check_101.xml | grep -E "a4Threshold|a4Hyst|a4Ttt|measGap|freqPrio|cellOffset" # 期望输出:只包含上述关键字对应的变更行 # 如果 diff 结果里出现 t304、ssearchThreshold 等其他参数,说明工具误配置覆盖了原始模板,需要立即回滚这个习惯帮我挡过两次事故。一次是网管工具的批量模板把所有小区的 t304 切换定时器误改成了 200ms,导致全线切换失败率飙升;另一次是异频测量 Gap 的模板字段错位,把 gapOffset 写到了 reportInterval 上。如果没有配置 diff 的习惯,这种问题大概率要到第二天 KPI 统计出来才能发现,而配置 diff 能在下发后几分钟内定位。
5. 避坑清单:低速迁出策略的五个翻车现场
5.1 现象:列车停靠站台时大量车上用户被误判为低速
列车停站 2~5 分钟,车上用户 RSRP 稳定、TA 几乎不变,完全满足低速判定条件,结果被批量迁到低层目标小区。列车启动后又被切回高铁小区,造成大量乒乓切换和切换失败。
原因在于我的连续窗口确认只能筛选“瞬时低速”,不能区分“永久低速”和“暂时停靠”。解决方法是引入列车的运营时刻表联合策略:在列车预计到站前后 10 分钟内,自动降低低速迁出的优先级或直接暂停迁出策略;也可以通过区分小区场景来微调——纯站台覆盖小区关闭迁出,站厅和站前广场覆盖小区保持开启。
5.2 现象:低速迁出后用户发生掉话,RRC 重建率明显上升
低速用户切到低层目标小区后,信号质量低于当初 A4 门限评估时的水平,很快发生 RLF。查看信令,切换完成消息之后没有任何后续测量上报,直接进入重建流程。
原因通常是目标小区负载过高或外部干扰导致下行 SINR 很差,A4 门限评估用的 RSRP 无法反映真实信号质量。解决:目标小区的选择条件要加上 PRB 利用率约束,并在切换策略里配置目标小区信号质量验证(切换前检查邻区 RSRQ 是否高于 -15dB)。如果目标区域有外部干扰源,先做干扰排查再开迁出。
5.3 现象:迁出开关打开后上行流量不降反升
期望是低速用户迁走、高铁小区资源释放,上行 PRB 利用率下降;但实际打开迁出后上行 PRB 利用率反而上涨,而且低速用户迁出数也不多。
原因大概率是周期测量报告本身带来的信令开销。低速用户密度大时,每个用户每 200ms 上报一条测量报告,空口开销约等于增加了几个百分点的负载。解决:适当放宽周期测量报告间隔到 320ms;把测量报告的内容裁剪为只上报 RSRP(RSRQ 在个别低层小区需要时才加),减少测量报告大小。
5.4 现象:低速用户迁出后又被低层小区的重选策略“踢回”高铁小区
切换完成不到 10 秒,低速用户又通过小区重选回高铁专网,形成事实上的来回震荡。后台信令里能连续看到“Handover Complete→RRC Re-establishment→Handover Request”。
原因在于低层小区和高铁专网同覆盖,空闲态重选优先级配置没有同步调整。切换解决了连接态问题,但用户一旦进入空闲态,按频率优先级重选规则又会回到高铁频点。解决:重选优先级要与连接态策略配套,降低高铁频点在低速用户侧的重选优先级,或者给低层频点配置更高的重选门限权重。
5.5 现象:异频测量始终不触发,A4 事件报告迟迟不到
低速迁出功能开启多日,迁出次数为零,信令跟踪里看不到异频测量报告。基站配置看起来没有问题,邻区关系也在。
原因排查下来多是测量 Gap 配置和应用场景不匹配。部分老版本网管平台对 NSA/SA 不同模式下的 Gap 字段支持不一样,配置界面显示成功但底层没有下发到 UE。解决:在目标小区上用测试终端做拉网测试,直接查看 UE 侧上报的测量报告里是否携带异频邻区信息;如果没有,重新创建测量配置,避免复用旧模板时 IE 丢失。
注意:这五个坑是实际项目中频率最高的问题。低速迁出不是“配几个参数就能稳定运行”的功能,它依赖测量、切换、重选、负载均衡多个模块的联动,任何一环掉链子,迁出效果都会打折。
6. 一个值得留着的验证技巧:“低速用户贡献度”指标怎么算
这个技巧适合在每次参数调整后用,用一句话说就是:与其纠结“低速用户有没有被彻底迁走”,不如直接算“低速用户对高铁小区的流量贡献度”。贡献度高就说明迁出不到位,贡献度低说明迁出生效了。
计算方法是取高铁专网小区在迁出功能开启前后的 PRB 量和业务流量数据。把小区下行 PRB 按用户维度拆开有难度,但可以利用话统里的用户流量分布区间来近似:每个用户在统计周期内的下行传输字节数,按大小排序,取前 10% 的流量用户算平均流量,后 10% 的平均流量,比值就是流量分布偏斜度。低速用户贡献的流量通常很小,如果迁出有效,后 10% 用户对应的总流量占比应该明显下降。
# 低速用户贡献度近似计算脚本 # 输入:小区级用户流量话统数据 user_flow_list(单位 KB) # 输出:低速用户流量占比 ratio_low_speed total_flow = sum(user_flow_list) user_count = len(user_flow_list) # 后 10% 的用户按流量排序取尾部,作为低速用户近似集合 sorted_flows = sorted(user_flow_list) low_speed_count = max(int(user_count * 0.1), 1) low_speed_flow = sum(sorted_flows[-low_speed_count:]) # 低速贡献度 = 低流量用户的总流量 / 全小区总流量 ratio_low_speed = low_speed_flow / total_flow * 100 print(f"低速用户近似占比: {low_speed_count}/{user_count}") print(f"低速用户流量贡献度: {ratio_low_speed:.2f}%")通常高铁小区在未开启低速迁出时,低流量用户总量占比约 30%,但流量贡献度只有 5%~8%;迁出走之后这个贡献度会掉到 1%~2%。如果贡献度没变化,说明迁出策略没有真正影响到低流量用户——要么是判定条件太严格,要么是目标小区信号太差迁出失败。
另外一个配套习惯是在试点期间抽测单个用户。挑一个站台候车场景的用户,跟踪其完整切换链:进入高铁小区、触发低速标记、异频测量上报、A4 事件触发、切换执行、目标小区确认。用网管的用户级信令跟踪功能,拉出这条链路的每条消息,做成时间序列表。这样既能验证参数配置,又能发现信令交互中的异常时序。
从那以后,我每次做低速迁出类优化都会强制走一遍这套流程:先从话统里算低速贡献度,再做信令跟踪抽测单个用户,最后才信批量调参。单用户信令链路跟踪往往能发现网管统计看不到的信号细节,比如测量上报的时间和 TTT 之间的关系、异频测量 Gap 是否真正生效、目标小区切换准备时延。这些细枝末节单独看都不算什么,但叠在一起就是“配置看着没问题、KPI 就是不达标”的根源。希望这个通用流程对你有用,省去你在高铁场景里反复试错的时间。
本文还有配套的精品资源,点击获取