NG Toolset開發筆記--5GNR Resource Grid(40)

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()           

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章