上行功率控制之二:PUSCH功控
上篇结尾说到PUSCH功控与链路自适应之间其实有很密切的关系。具体啥关系呢?
咱先从规范中PUSCH功率计算公式入手,有个整体的认识。
上边两个公式中:
第一个是针对PUSCH传输并没有并行的PUCCH传输,所以PUSCH发射功率的上限是P_CMAX;
第二个是针对PUSCH传输并有同时的PUCCH传输时,那么根据上篇文章中咱们说到的原则,即控制信道PUCCH功率分配优先,那么PUSCH发射功率的上限是P_CMAX-P_PUCCH, 第二个公式中这两个值是线性功率值,所以外边又取了个对数。
然后对于每个公式的下边部分是相同的,咱们分别说明一下每个参数的物理意义:
10log10(M_pusch): 这个是给PUSCH分配的RB(Resource Block)个数;
P0_pusch: 可以理解成基站期待接收到的PUSCH功率,这个功率是每个RB的功率,这也就理解了为啥要加上上一个参数10log10(M_pusch). 因为PUSCH传输要占的RB个数越多,也就需要相应越高的接收功率,由此也就需要更高的发射功率。 这里大家可能会觉得为啥PUCCH没有,其实PUCCH公式里也隐含了这个条件,只不过PUCCH只占1个RB, 所以10 log1=0.
alpha*PL, 这是估计的下行路损乘上了一个alpha因子。alpha是一个小于等于1的值。如果等于1, 也就是全路径损耗补偿,其公式也就跟PUCCH功控的公式很类似了。当alpha取一个小于1的因子,那就是部分路损补偿。
delta_TF, 其实是跟MCS (Modulation Code Scheme)有关的参数。可以理解成delta_MCS. 由于PUSCH本身会有链路自适应机制,即根据不同信道条件,自适应调整MCS: 当接收侧的SINR比较好时,会反馈给发射机,让其去使用更高阶的调制方式和编码速率,即更高的MCS; 反之,降MCS. 公式中的这个delta_MCS可以理解成不同MCS对SINR的要求不同。其实类似于PUCCH功控中的delta_F_pucch(不同UCI对SINR要求不同),这些解码所需的最小SINR不同,而导致的发射功率调整。
f(i) 就是闭环功控中通过TPC要调整的值。
下边进一步理解一下PUSCH功控中对链路自适应的考虑:
上边参数中提到的部分路损补偿,也就是增加的路损其实通过功控只补偿了部分功率(由于alpha小于1),所以最终接收功率及相应的SINR都会降低,那么自适应调整后的MCS就会降低。
alpha是通过SIB2广播给终端的,delta_MCS是UE_specific的参数,即下图蓝色框里的两个参数。可以看到当alpha小于1时(图中参数配置0.8),对应deltaMCS_Enabled是0,也就是没有使能这个参数功能。为什么呢?
因为刚刚说到部分路损补偿机制下,路损增加本身可能会导致MCS降低,那如果此时delta_MCS功能发挥作用,降低了的MCS正常解码所需要的接收SINR进一步降低,由此导致终端发射功率的进一步降低。
相比全路损补偿,部分路损补偿机制有个好处:当终端远离基站,到达小区边缘时,路损增加,功控补偿后的发射功率相对小,对其他小区的干扰会小。当然这是以终端自己降MCS来实现的,也就是终端的数据速率会降低。
这是一种折中的做法,牺牲自己的速率换来了对邻小区的干扰降低。这种牺牲在小区规划中当然很重要,但是其实更优的一个做法,应该是降MCS不仅取决于自己小区的路损,也要考虑邻干扰小区的路损。在某些场景下可能终端不降速率,发射功率按照全路损补偿后,对邻小区的干扰也没那么大,这其实是算法优化的一个方向。
以上是对PUSCH功控算法和设计的一个基本理解。