NG Toolset开发笔记--5GNR Resource Grid(40)

本文详细解析了Msg3 PUSCH的调度机制,包括由RAR进行调度,使用RA type1,支持transform precoding及frequency hopping。阐述了14位'frequencydomainresourceassignment'字段在RAR UL Grant中的应用,以及当位宽大于14位时的插入位必须全为0的要求,避免无效的RB_start和L_RBs组合。同时,讨论了transform precoding启用时,L_RBs必须遵循2^x*3^y*5^z的模式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Implementation notes on 'Msg3 PUSCH':

Note 1: 'msg3 pusch' is scheduled by RAR.

Note 2: 'msg3 pusch' use RA type1, can be configured in RACH-ConfigCommon to use 'transform precoding', and can be configured in RAR UL Grant to use 'frequency hopping'.

Note 3: 'frequency domain resource assignment' fields in RAR UL Grant:

*fixed to 14bits

*bitwidth of initial ul bwp: can < 14bits and can >=14bits

self.bitwidthType1IniUlBwp = math.ceil(math.log2(bwpSize * (bwpSize + 1) / 2))
self.bitwidthType1Msg3Pusch = max(14, self.bitwidthType1IniUlBwp)

*relation of 14bits-'freq alloc field' in rar ul grant, and bitwidth of riv(=bitwidth of initial ul bwp) as below:

When bitwidthType1IniUlBwp(denoted as n) > 14bits, (n-14) bits will be inserted into the 14bits-'freq alloc field' in rar ul grant, so that we have n bits RIV, and the (n-14)bits must be all '0'.

This means that, some L_RBs/RB_start combinations is not valid when n>14.

For example, assume msg3PuschTp=enabled, msg3PuschFreqHop=enabled, bwpSizeIniUlBwp=270(and n=16bits), RB_start=0, and L_RBs=160:

The 16bits RIV is: 0111011000011111, 2MSBs(='01') is for freq hop, next two bits(='11') is the inserted bits which is apperently not all '0'.

For this kind of invalid combination, you will get an Error message:

[2018-11-30 08:27:52]Error: Inserted bits(="11") must be all zeros! Please refer to 3GPP 38.213 vf30 Section 8.2 for details.

Note 4: when 'transform precoding' is enabled, the L_RBs must be of 2^x*3^y*5^z (with x/y/z>=0) pattern which is similar to LTE.

 if self.nrRachMsg3TpComb.currentText() == 'enabled':
            self.lrbsMsg3PuschTp = []
            for x in range(math.ceil(math.log(bwpSize, 2))):
                for y in range(math.ceil(math.log(bwpSize, 3))):
                    for z in range(math.ceil(math.log(bwpSize, 5))):
                        lrbs = 2 ** x * 3 ** y * 5 ** z
                        if lrbs <= bwpSize:
                            self.lrbsMsg3PuschTp.append(lrbs)
                        else:
                            break
            #sort in ascending order
            self.lrbsMsg3PuschTp.sort()           

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值