这篇看下NR PUSCH power control的相关内容,主要内容集中在38.213 7.1章节,功率计算无非就是一个长公式,根据RRC配置的参数及后续DCI field 的内容作出功率的调整;最初这部分看的就云里雾里的,最近再看,相比于之前,理解确实又进了一步,不过有些内容由于工作中不涉及,如果深究的话,某些东西还是需要再细细研究。下面内容的理解难免有误,欢迎指正。
UL功率控制,主要是PUSCH PUCCH SRS PRACH 的传输功率。
对于所有PUSCH/PUCCH/SRS传输,UE 不期望每个服务小区维护4个以上的路损估计,配置SRS-PosResourceSet的SRS传输除外。;如果UE配置的用于计算路损的参考信号resource多于4个,UE要维护与RS resource index对应的用于路径损耗估计的RS资源;如果UE收到针对路损估计的参考信号 resource 变更的MAC CE,UE要在slot k+3N_subframe,u_slot+1 才能应用型的参考信号 resource,其中slot k对应的是UE传输MAC CE PUCCH/PUSCH HARQ-ACK的时隙。
PUSCH/PUCCH/SRS/PRACH 传输时机i,由系统帧号SFN的帧内的时隙索引n_u_s,f及该时隙内的第一个符号S 和多个连续符号L定义。
gNB确定期望的UL发射功率,并向UE提供UL的功率控制命令(TPC);UE使用所提供的UL功率命令(TPC)来调整其发射功率。
NR的UL功控分为开环+闭环,所谓开环是指p0 alpha的等参数是RRC配置的开环功控参数,用于传输功率的计算;进入连接态后,网络端对现有配置,通过DCI 指示TPC来进行调整的部分,就是闭环过程。
上图是38.213中有关PUSCH功率的计算公式,PUSCH 功率由两个值的最小的那个确定,其中一些参数的含义如下(后面的内容也会讲到):
i :如开头所述,是PUSCH/PUCCH/SRS/PRACH 传输时机i,由系统帧号SFN的帧内的时隙索引n_u_s,f及该时隙内的第一个符号S 和多个连续符号L定义。这里对应的就是PUSCH传输时机i。
j:参数集配置索引(parameter set configuration).j=0,代表承载msg3(4-step RA)或msgA(2-step RA)的上行功控(PUSCH)j=1,ConfiguredGrantConfig,代表配置调度时的UL 功控(PUSCH);;j从2到J 是正常情况下的功控。
q_d: 用于下行Pathloss 估计的参考信号的索引,参考信号可以是SSB 或CSI-RS。
l: PUSCH power control adjustment state,l=0,1 或l=0,后面再介绍
b,f,c:b对应 UL BWP索引,f对应载波索引,c是对应的服务小区索引。
P_CMAX,f,c(i)和P_o_pusch_b,f,c两个参数相比,前者带的是f,c 后者带的是b,f,c,结合其含义,b 代表的是对应的UL BWP index,前者f,c对应的是载波级别的功率参数,后者b,f,c对应的是BWP级别的功率参数。
其他参数接下来一个个的来看下。
一、P_CMAXf,c(i)
P_CMAX,f,c(i) 为在PUSCH传输时机i 针对服务小区C/载波f 配置的最大输出功率,对应的是载波级别的功率参数,指每个服务小区c的载波f 上每个时隙的最大output power ,这里没有b ,说明是载波级别的参数,不是BWP 级别的。
38.101-1 6.2.4介绍了取值范围
通过上面的公式看,P_CMAX,f,c 前后两个参数都与PEMAX,c有关系,先看PEMAX,c。
PEMAX,c有SIB1中的p-Max或NR-NS-PmaxList 中的additionalPmax相关。目前看到的log中,SIB1中只会配置P-MAX,没有配置additionalPmax。
PowerClass在UeCapabilityInformation 中上报,每个band支持的powerclass会列出。
之后根据38.101-1 Table 6.2.1-1 确定,例如pc2对应的就是Class 2 26dBm。通常UE都支持PC3 即23dBm,所以支持PC2的UE有个HPUE 的叫法。
Delta P_powerClass确定如下,其余参数先不看了,太多了。
整个计算完后,这个参数就是一个载波级别的最大输出功率。
二、Po_puschb,f,c(j)
公式中的Po_puschb,f,c(j) 是上图2个红框参数的和。
j:参数集配置索引(parameter set configuration).
j=0,代表承载msg3/msgA的上行功控(PUSCH);
Type-1 的随机接入就是 4-step RA,下面是对应参数的取值情况
如下可以确定P o_NOMINAL_PUSCH,f,c(0)=-100+4=-96 P o_UE_PUSCH,B,F,C(0)=0 最终P o_PUSCH b,f,c(0)=-96。
Type-2 的RA 是2-step的RA 参数取值如下
j=1,ConfiguredGrantConfig,代表配置调度时的UL 功控(PUSCH);
P o_NOMINAL_PUSCH,f,c(1)有p0-NominalWithoutGrant 则取其值;没有p0-NominalWithoutGrant 则取值P o_NOMINAL_PUSCH,f,c(0);
P o_UE_PUSCH,b,f,c(1)取值ConfiguredGrantConfig中的p0-PUSCH-Alpha中的p0。
j从2到J-1 是正常情况下的功控。
同样的道理,P o_NOMINAL_PUSCH,f,c(j)有p0-NominalWithoutGrant 则取其值;没有p0-NominalWithoutGrant 则取值P o_NOMINAL_PUSCH,f,c(0);P o_UE_PUSCH,b,f,c(j)取值ConfiguredGrantConfig中的p0-PUSCH-Alpha中的p0。目前看log 都会配置p0-NominalWithGrant。
除了上述情况,如果RRC配置SRI-PUSCH-PowerControl时,就需要根据收到DCI 指示SRI field 应该通过映射找到p0,再确定 P o_UE_PUSCH,b,f,c(j)如下:
(1)配置SRI-PUSCH-PowerControl的情况:
如果UE有配置SRI-PUSCH-PowerControl,其中有不止一个p0-PUSCH-AlphaSetId,这时候收到了DCI 带有SRI field,要根据SRI 与SRI-PUSCH-PowerControlId的映射关系,SRI-PUSCH-PowerControlId有对应的P0-PUSCH-AlphaSetId,找到P0-PUSCH-AlphaSetId->p0,这个p0值作为P o_UE_PUSCH,b,f,c(j)。如下图是配置SRI-PUSCH-PowerControl的配置路径,通过确定DCI field SRI 找到SRI-PUSCH-PowerControlId 就可以确定一个p0。
SRI-PUSCH-PowerControl的配置结构如上,注意在其中还有其他一些与sri-PUSCH-PowerControlId相关的其他参数,例如sri-PUSCH-PathlossReferenceRS-id/sri-P0-PUSCH-AlphaSetId/sri-PUSCH-ClosedLoopIndex等,在后面都会用到相同的逻辑即根据DCI field SRI 确定sri-PUSCH-PowerControlId,进而找到对应的value。
(2)除了上述确认方式,还有另一种通过DCI SRI 确定P o_UE_PUSCH,b,f,c(j)的方式,这种方式要结合另一个DCI field Open-loop power control parameter set indication的配置情况,如下。
如果DCI 带有SRI且Open-loop power control parameter set indication field=1,那P o_UE_PUSCH,b,f,c(j)就取 SRI field 映射的p0-PUSCH-SetId对应的P0-PUSCH-Set中的第一个配置中p0值;Open-loop power control parameter set indication field如上图,如果SRI确定的是P0-PUSCH-Set 0,那P o_UE_PUSCH,b,f,c(j)= 0;如果是P0-PUSCH-Set 1,那P o_UE_PUSCH,b,f,c(j)= -1如下图。
(3) 没有DCI field SRI且没有配置SRI-PUSCH-PowerControl
除RAR UL grant PUSCH 重传外的其他PUSCH传输,如果DCI 没有带SRI field,或者没有配置SRI-PUSCH-PowerControl,j=2时:
UE此时有P0-PUSCH-Set配置且DCI有open-loop power control parameter set indication field,P o_UE_PUSCH,b,f,c(j)取值规则如下
open-loop power control parameter set indication=0 或00,取P0-AlphaSets中第一个P0-PUSCH-AlphaSet 中的p0;
open-loop power control parameter set indication=1 或01,取P0-PUSCH-Set中最小p0-PUSCH-SetID的第一个p0;
open-loop power control parameter set indication=10,取P0-PUSCH-Set中最小p0-PUSCH-SetID的第2个p0;
另外如果没有配置P0-PUSCH-Set,P o_UE_PUSCH,b,f,c(j)取P0-AlphaSets中第一个P0-PUSCH-AlphaSet 中的p0。