基于3GPP TS 38.213 V19.x Section 7.1.1 / TS 38.321 Section 6.1.3.5 / TS 38.214 Section 6.2.1
NR上行功率控制是gNB射频资源管理的核心抓手。与LTE简单的开环+闭环模式不同,NR引入了双环功率控制架构:开环路径损耗补偿(OLPC)负责粗调,闭环TPC命令积累(CLPC)负责精调,两环协同在毫秒级时间尺度上维持目标SINR。
设计哲学的核心矛盾在于:终端发射功率是稀缺资源(最大23dBm/200MHz),而NR的灵活参数集(numerology)、BWP切换、波束赋形切换都会改变路径损耗模型,导致功率控制必须动态适配。
┌─────────────────────────────────────────────────────────────┐
│ PUSCH 功率控制双环架构 │
│ │
│ ┌──────────────────┐ ┌──────────────────┐ │
│ │ 开环环 (OLPC) │ │ 闭环环 (CLPC) │ │
│ │ │ │ │ │
│ │ P0 + α·PL + │ 基准 │ ∑ TPC命令 │ │
│ │ 10log10(M) + │───────→ │ 累积修正 │ │
│ │ ΔTF + ΔMCSS │ │ (DCI format 0_1)│ │
│ └──────────────────┘ └──────────────────┘ │
│ │ │ │
│ └──────────┬───────────────────┘ │
│ ▼ │
│ PUSCH发射功率 = min{PCMAX, PPUSCH} │
│ │ │
│ ▼ │
│ gNB测量SINR │
│ │ │
│ ┌─────────┴──────────┐ │
│ │ TPC命令生成 │ │
│ │ DCI 0_1 / DCI 2_2 │ │
│ └────────────────────┘ │
└─────────────────────────────────────────────────────────────┘
根据TS 38.213 Section 7.1.1,PUSCH发射功率计算公式为:
$$P_{PUSCH} = \min{P_{CMAX}, P_{O_PUSCH} + \alpha \cdot PL + 10\log_{10}(M) + \Delta_{TF} + f(\Delta_{TPC})}$$
| 参数 | 含义 | 取值范围 | 配置来源 | 调整粒度 |
|---|---|---|---|---|
| P_CMAX | 终端最大发射功率 | -40~23 dBm | TS 38.101-1 | 按UE能力固定 |
| P_O_PUSCH | 开环基准功率目标 | -202~+24 dBm | RRC + DCI | 16-bit精度 |
| α (alpha) | 路径损耗补偿因子 | 0, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1 | RRC | 离散8值 |
| PL | 下行路径损耗估计 | — | UE测量RSRP | 连续值 |
| M | PUSCH RB分配数 | 1~275 | DCI调度 | 按调度动态 |
| Δ_TF | MCS相关功率偏移 | — | RRC配置 | 半静态 |
| f(Δ_TPC) | 闭环TPC累积量 | 累积/绝对 | DCI | ±1~±4 dB |
P_O_PUSCH由两部分组成,这是NR相比LTE的重要增强:
$$P_{O_PUSCH} = P_{O_NOMINAL_PUSCH} + P_{O_UE_PUSCH}$$
graph TD
A[P_O_PUSCH 二维结构] --> B[P_O_NOMINAL_PUSCH<br/>小区级广播]
A --> C[P_O_UE_PUSCH<br/>UE级专用]
B --> B1[SIB1下发<br/>所有UE共享]
B --> B2[RRC重配更新<br/>半静态调整]
C --> C1[初始接入: 由Msg2配置]
C --> C2[连接态: RRCReconfiguration]
C --> C3[按UE位置/业务差异化]
B1 --> D[设计意图:<br/>小区边缘UE vs 中心UE<br/>差异化功率基准]
C3 --> D
style A fill:#ff6b6b,color:#fff
style D fill:#4ecdc4,color:#fff
α是路径损耗补偿因子,直接决定UE对路径损耗的补偿程度:
| 策略 | α值 | 上行干扰 | 小区边缘性能 | 终端功耗 | 典型场景 |
|---|---|---|---|---|---|
| 全补偿 | 1.0 | 高(边缘UE满功率) | 最优 | 最高 | VoNR保障 |
| 部分补偿-高 | 0.8 | 中等 | 良好 | 中等 | eMBB城区 |
| 部分补偿-中 | 0.6 | 较低 | 一般 | 较低 | 混合业务 |
| 部分补偿-低 | 0.4 | 低 | 较差 | 低 | 密集城区 |
| 不补偿 | 0 | 最低 | 最差 | 最低 | 理论参考 |
运营商核心矛盾:α越大,小区边缘用户上行吞吐量越好,但对邻小区干扰也越大(尤其同频部署)。这就是经典的功率控制与干扰协调的权衡。
UE通过测量SSB或CSI-RS的RSRP来估计下行路径损耗:
$$PL = P_{RS} - RSRP_{measured}$$
其中P_RS是参考信号发射功率,由gNB通过RRC参数ss-PBCH-BlockPower或referenceSignalPower配置。
关键细节(TS 38.214 Section 6.2.1):
- UE使用与PUSCH传输在同一BWP内的RS资源进行PL估计
- BWP切换后,PL估计参考的RS可能改变,导致功率跳变
- gNB可通过p0-AlphaSetId为不同BWP配置不同的α-P0组合
TS 38.213 Section 7.1.1定义了两种TPC累积模式:
模式一:累积模式(Accumulation Mode)
$$f(i) = f(i-1) + \delta_{TPC}(i)$$
每次收到的TPC命令叠加在之前的累积值上。初始值f(0)=0。
模式二:绝对模式(Absolute Mode)
$$f(i) = \delta_{TPC}(i)$$
TPC命令直接替换当前值,不累积历史。
sequenceDiagram
participant UE as UE
participant gNB as gNB
participant Scheduler as 调度器
Note over UE,gNB: 闭环功率控制流程
gNB->>UE: DCI Format 0_1 (调度PUSCH)
Note right of UE: P_PUSCH = OLPC + f(i-1)
UE->>gNB: PUSCH传输 (功率P1)
gNB->>Scheduler: 测量PUSCH SINR
Scheduler->>Scheduler: 计算偏差 ΔSINR = SINR_target - SINR_measured
Scheduler->>Scheduler: 生成TPC命令 δ_TPC
alt 累积模式
gNB->>UE: DCI 0_1 with TPC = +1dB
Note right of UE: f(i) = f(i-1) + 1dB
else 绝对模式
gNB->>UE: DCI 0_1 with TPC = +3dB
Note right of UE: f(i) = +3dB (直接替换)
end
UE->>gNB: PUSCH传输 (功率P2 = P1 + δ_TPC)
Note over gNB: TPC命令映射表 (TS 38.213 Table 7.1.1-1)
DCI中TPC命令字段为2 bit,映射关系如下(TS 38.213 Table 7.1.1-1):
| TPC命令字段 | 累积模式 δ_TPC | 绝对模式 δ_TPC |
|---|---|---|
| 00 | -1 dB | -4 dB |
| 01 | 0 dB | -1 dB |
| 10 | +1 dB | +1 dB |
| 11 | +3 dB | +4 dB |
设计意图解读: - 累积模式步长小(±1dB),适合缓慢衰落环境的精调 - 绝对模式步长大(±4dB),适合快衰落或跨BWP切换时的快速修正
TPC命令不仅通过调度DCI携带,还有专用TPC机制:
| 承载方式 | DCI格式 | 适用场景 | 特点 |
|---|---|---|---|
| 调度DCI内嵌 | DCI 0_1 / 0_2 | UE有PUSCH调度时 | 每次调度必带 |
| 组TPC (Group TPC) | DCI 2_2 | 多UE同时调整 | 节省DCI开销 |
| RNTI寻址 | DCI 2_2 + TPC-PUSCH-RNTI | 非调度UE功率维护 | 不需调度即可调功率 |
DCI 2_2的组TPC机制是NR的重要创新:
graph LR
subgraph DCI 2_2 Payload结构
A[blockNumber 1] --> B[blockNumber 2]
B --> C[...]
C --> D[blockNumber N]
end
subgraph 每个block内容
E[TPC命令 2bit] --> F[UE ID 指示<br/>通过RRC配置的<br/>tpc-PUSCH-Index]
end
subgraph 寻址方式
G[TPC-PUSCH-RNTI<br/>组播RNTI] --> H[组内所有UE<br/>解码同一DCI]
end
style A fill:#3498db,color:#fff
style E fill:#e74c3c,color:#fff
style G fill:#2ecc71,color:#fff
实战价值:在VoNR场景中,UE可能长时间处于SPS调度(无动态DCI),此时通过DCI 2_2组TPC可以在不改变调度的情况下维持闭环功率控制——这直接影响了VoNR的上行覆盖性能。
Msg3(RRCSetupRequest等)的功率控制有独立规则(TS 38.213 Section 7.1.1.1):
$$P_{Msg3} = P_{O_PRE} + \alpha \cdot PL + 10\log_{10}(M_{Msg3}) + \Delta_{Msg3} + (PREAMBLE_POWER_RAMPING_COUNTER - 1) \times POWER_RAMPING_STEP$$
其中:
- P_O_PRE = preambleReceivedTargetPower,由SIB1配置
- Δ_Msg3 = msg3-DeltaPreamble,RRC配置的Msg3额外偏移(0~6 dB)
- PREAMBLE_POWER_RAMPING_COUNTER:前导码重传计数器,每次重传增加
- POWER_RAMPING_STEP:功率爬升步长,通常为2 dB
stateDiagram-v2
[*] --> 初始功率计算
初始功率计算 --> Msg3首次传输: PREAMBLE_POWER_RAMPING_COUNTER=1
Msg3首次传输 --> 检测Msg4响应
检测Msg4响应 --> Msg3功率确定: 收到Msg4(RAR)
检测Msg4响应 --> 重传判断: 未收到Msg4
重传判断 --> Msg3功率爬升: preambleCounter < maxTransmissions
重传判断 --> 随机接入失败: preambleCounter >= maxTransmissions
Msg3功率爬升 --> Msg3重传: 功率 + POWER_RAMPING_STEP
Msg3重传 --> 检测Msg4响应
Msg3功率确定 --> 连接态功率控制: 切换到PUSCH闭环
state Msg3功率爬升 {
[*] --> 爬升计数器递增
爬升计数器递增 --> Preamble重传
Preamble重传 --> 等待RAR
}
关键细节:Msg3到连接态PUSCH功率控制的衔接点。Msg3传输成功后,UE进入连接态。此时闭环TPC累积值f(0)的初始化有两种情况: - 如果Msg3使用第1个前导码即成功,f(0) = 0 - 如果Msg3经过多次重传(功率爬升),f(0)仍从0开始——功率爬升积累量不会传递到闭环
这意味着gNB需要在Msg3之后快速通过TPC命令调整UE功率到稳态,否则会出现功率突变。
当UE发生BWP切换时(DCI触发或定时器触发),功率控制参数可能发生以下变化:
| 参数 | BWP切换时行为 | 影响 |
|---|---|---|
| P_O_PUSCH | 可通过p0-PUSCH-AlphaSet为每个BWP独立配置 |
基准功率跳变 |
| α | 可按BWP独立配置 | 补偿因子跳变 |
| PL参考信号 | 切换到新BWP的SSB/CSI-RS | PL估计值跳变 |
| f(Δ_TPC) | 累积值不重置 | 功率连续性保持 |
| M (RB数) | 由新BWP的调度决定 | 按调度动态 |
sequenceDiagram
participant UE as UE
participant gNB as gNB
Note over UE: BWP1 (DL BWP ID=0)
UE->>gNB: PUSCH (P0=-90dBm, α=0.8, PL=120dB)
Note right of UE: P = -90 + 0.8×120 + 10log10(50)<br/>= -90 + 96 + 17 = 23dBm
gNB->>UE: DCI 0_1 (BWP switch to BWP2)
Note over UE: BWP2 (DL BWP ID=1)
Note over UE: P0=-95dBm, α=0.6, PL=125dB (不同RS)
UE->>gNB: PUSCH (BWP2首次传输)
Note right of UE: P = -95 + 0.6×125 + 10log10(25)<br/>= -95 + 75 + 14 = -6dBm
Note over gNB: 功率从23dBm骤降到-6dBm!<br/>gNB需要快速发送TPC命令修正
gNB->>UE: DCI 2_2 TPC = +3dB (连续多次)
UE->>gNB: PUSCH (功率逐步恢复)
运营商实际策略:大多数厂商在BWP切换时会预先配置好BWP间的P0/α参数映射,使功率跳变在可接受范围内(±3dB以内)。华为的实现中,BWP切换时gNB会主动发送一轮DCI 2_2 TPC命令预补偿。
NR支持多种子载波间隔(SCS),不同SCS下的功率控制参数需要适配:
根据TS 38.213 Section 7.1.1,P_O_PUSCH和α通过p0-PUSCH-AlphaSetId关联到具体的上行BWP配置。对于不同SCS(15kHz/30kHz/60kHz/120kHz),关键差异在于:
| SCS | 时隙时长 | TPC反馈周期 | 开环调整频率 | 典型场景 |
|---|---|---|---|---|
| 15 kHz | 1 ms | 1~4 ms | 低 | eMBB广覆盖 |
| 30 kHz | 0.5 ms | 0.5~2 ms | 中 | eMBB城区 |
| 60 kHz | 0.25 ms | 0.25~1 ms | 高 | URLLC/毫米波 |
| 120 kHz | 0.125 ms | 0.125~0.5 ms | 最高 | 毫米波固定接入 |
SCS越大,时隙越短,TPC闭环调整频率越高,功率控制响应越快。这也是毫米波场景选择大SCS的原因之一——快速功率跟踪。
步骤一:提取TPC命令序列 在Wireshark中过滤DCI 0_1/2_2,提取TPC字段:
Filter: nr-dci.format == "0_1" || nr-dci.format == "2_2"
Display: TPC Command field
步骤二:重建UE功率轨迹 根据公式逆推UE发射功率:
P_PUSCH[i] = min(23, P0 + α×PL + 10log10(M[i]) + Δ_TF[i] + f(i))
f(i) = f(i-1) + δ_TPC[i] // 累积模式
步骤三:对比gNB测量报告 通过L1 RSRQ/SINR测量报告,确认gNB实际收到的信号质量。
| 故障现象 | 根因分析 | 排查方法 | 解决方案 |
|---|---|---|---|
| UE功率持续满载 | PL估计偏高(RS配置错误) | 检查ss-PBCH-BlockPower参数 |
修正RS发射功率配置 |
| TPC持续+1dB但SINR不改善 | 邻小区干扰主导 | 查看同频邻区RSSI | 调整α降低或异频切换 |
| BWP切换后上行BLER突增 | P0/α参数组不匹配 | 对比两个BWP的p0-AlphaSet |
统一参数映射 |
| Msg3功率过低导致接入失败 | preambleReceivedTargetPower配置偏低 |
统计Msg3解码成功率 | 提高P_O_PRE或步长 |
| TPC累积值溢出 | 长时间未调度导致累积偏移 | 检查DCI 2_2发送频率 | 定期发送组TPC |
| ## 9. R19增强:Multi-TRP PUSCH功率控制 |
3GPP Release 19在TS 38.213中引入了Multi-TRP场景下的PUSCH功率控制增强(参见TS 38.213 V19.x Section 7.1.1A):
核心问题:当UE同时向多个TRP发送PUSCH(如CoMP场景)时,不同TRP的路径损耗不同,需要独立的功率控制参数。
R19解决方案:
- 为每个TRP配置独立的p0-PUSCH-AlphaSet
- TPC命令通过不同的TCI状态关联到不同TRP
- 引入DL-PRS-RSRP替代传统RSRP用于更精确的PL估计
| 场景 | P_O_NOMINAL | α | TPC模式 | 功率爬升步长 |
|---|---|---|---|---|
| 密集城区eMBB | -100 dBm | 0.6 | 累积 | 1 dB |
| 城区VoNR | -95 dBm | 0.8 | 绝对 | 2 dB |
| 农村/广覆盖 | -105 dBm | 0.9 | 累积 | 2 dB |
| 室内高频 | -90 dBm | 0.7 | 累积 | 1 dB |
| 毫米波固定接入 | -85 dBm | 1.0 | 绝对 | 3 dB |
sequenceDiagram
participant UE as UE
participant gNB as gNB
participant RRC as RRC层
participant MAC as MAC层
participant PHY as PHY层
rect rgb(230, 245, 255)
Note over UE,gNB: 阶段1: RRC参数配置
RRC->>UE: RRCReconfiguration
Note right of UE: p0-NominalWithoutGrant = -95dBm<br/>p0-AlphaSets {α=0.8, P0_UE=3dB}<br/>pathlossReferenceRS = SSB#0
end
rect rgb(255, 245, 230)
Note over UE,gNB: 阶段2: 开环功率计算
UE->>PHY: 测量SSB#0 RSRP
PHY->>PHY: PL = ss-PBCH-BlockPower - RSRP<br/>= 23 - (-85) = 108dB
PHY->>PHY: P_OLPC = P0 + α×PL<br/>= (-95+3) + 0.8×108<br/>= -92 + 86.4 = -5.6dBm
end
rect rgb(230, 255, 230)
Note over UE,gNB: 阶段3: 闭环TPC控制
loop 每个PUSCH调度周期
gNB->>MAC: 调度PUSCH (M=25RB)
MAC->>UE: DCI 0_1 (MCS=15, TPC=+1dB)
UE->>PHY: P = min(23, -5.6 + 10log10(25) + ΔTF + f(i))
Note right of UE: f(i) = f(i-1) + 1dB
PHY->>gNB: PUSCH传输
gNB->>PHY: 测量SINR
alt SINR < SINR_target
PHY->>UE: DCI 0_1 TPC = +1dB (提高功率)
else SINR > SINR_target
PHY->>UE: DCI 0_1 TPC = -1dB (降低功率)
else SINR ≈ SINR_target
PHY->>UE: DCI 0_1 TPC = 0dB (维持)
end
end
end
rect rgb(255, 230, 255)
Note over UE,gNB: 阶段4: BWP切换功率重配
gNB->>UE: DCI 0_1 (BWP switch to BWP1)
Note right of UE: 新参数组: P0=-98dBm, α=0.6<br/>PL参考: CSI-RS#2
UE->>PHY: 重新计算OLPC
gNB->>UE: DCI 2_2 TPC = +3dB (补偿)
UE->>gNB: PUSCH (BWP1首次传输)
end
Q1: 累积模式和绝对模式在实际网络中如何选择?
A: 3GPP标准允许通过RRC参数tpc-Accumulation配置。大多数运营商默认使用累积模式,因为±1dB的小步长更适合慢衰落环境的精细控制。绝对模式主要用于高速移动场景(如高铁)和BWP切换后的快速功率修正,因为±4dB的大步长可以更快响应信道变化。VoNR场景中部分厂商切换到绝对模式以降低端到端时延。
Q2: DCI 2_2组TPC命令与调度DCI中的TPC命令冲突时怎么处理? A: 根据TS 38.213 Section 7.1.1,如果同一时隙内UE同时收到DCI 2_2的TPC命令和调度DCI 0_1中的TPC命令,两个命令独立处理——DCI 2_2更新组TPC累积值,调度DCI更新该次调度的TPC值。实际网络中,厂商通常确保不会在同一时隙给同一UE发送两种TPC。
Q3: P0参数动态调整的粒度是多少?运营商如何优化P0? A: P_O_NOMINAL_PUSCH精度为1dB(16-bit有符号整数,实际有效范围-202~+24dBm)。P_O_UE_PUSCH通过RRC重配消息更新,典型的动态调整周期为100ms~1s。华为设备中,gNB根据小区负载自动调整P_O_NOMINAL:负载高时降低P0以抑制干扰,负载低时提高P0以改善边缘用户吞吐量。
Q4: 路径损耗估计使用SSB还是CSI-RS更好? A: 取决于场景。SSB始终存在且覆盖全小区,适合初始接入和移动性场景。CSI-RS可以配置更密的时频密度,提供更精确的PL估计,适合连接态的精细功率控制。实际网络中,初始接入用SSB,连接态切换到CSI-RS。R19中引入了DL-PRS作为第三种选择,定位精度更高。
Q5: PHR(Power Headroom Report)与PUSCH功率控制是什么关系? A: PHR是UE向gNB上报的功率余量信息(TS 38.321 Section 6.1.3.5),反映UE当前发射功率距离P_CMAX的差值。PHR不直接参与功率控制计算,但gNB利用PHR来辅助调度决策——如果PHR为负值,说明UE功率不足,gNB应减少RB分配或提高MCS冗余。PHR通过MAC CE上报,触发条件包括周期性触发和路径损耗变化超阈值触发。
本文由「51学通信」技术团队出品。51学通信由通信行业18年老兵爱卫生(微信ID: gprshome201101)维护,聚焦5G/6G核心网、3GPP标准解读、通信前沿技术深度分析。 出版作品有《5G核心网原理与实践》《IMS原理与实践》等4本通信专业书籍。知识星球「51学通信」提供深度技术答疑和行业洞察。
[!tip] 51学通信知识星球 星主:爱卫生(微信:gprshome201101)——公众号「51学通信」创办者,19 年通信行业运维与讲师经验,著有《GPRS网络信令实例详解》《EPC原理与实践》《5G核心网原理与实践》三本纸质书(各大电商平台有售)。 星球定位:深耕 5G 核心网、IMS、NFV/AI、云原生等 ICT 领域,主打运维岗位与信令分析。 当前规模:5200 篇主题 / 990 个回答,198 元/年。 加入福利:加入星球后请加爱卫生微信,拉您进知识星球年度陪伴与答疑群——不限量回复您的各种问题,另有群内分享。 AI 加持:51学通信知识星球已作为 skill 接入 WorkBuddy,使用 deepseek-4-flash 在海量星球帖子中精准找贴、找视频、找 FAQ 和案例,做总结、找文档和 PPT 等场景全覆盖。
