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

4/8 update:

*sendPucch for Msg4 HARQ feedback is ok

 

After receiving Msg4 ending in slot n, UE should send corresponding HARQ feedback in slot n+K1.

For Msg4 harq feedback, common pucch set is used as specified in 38.213 9.2.1.

(1)  In monitorPdcch(dci='dci10', rnti='tc-rnti'), keep msg4Cce0(the )

cceSet = [pdcchCandidate * self.nrCss0AggLevel + k for k in range(self.nrCss0AggLevel)]
self.msg4Cce0 = cceSet[0]
self.ngwin.logEdit.append('cceSet=%s, msg4Cce0=%d' % (cceSet, self.msg4Cce0))
qApp.processEvents()

(2)  Calculate rPucch(the )

#refer to 3GPP 38.213 vf40 9.2.1
#determine PUCCH index r_PUCCH
rPucch = math.floor(2 * self.msg4Cce0 / self.coreset0NumCces) + 2 * self.nrMsg4DeltaPri

pucchFmt, firstSymb, numSymbs, prbOffset, initialCsSet = commonPucchResSets[rPucch]
if rPucch == 15:
    prbOffset = math.floor(self.nrIniUlBwpNumRbs / 4)

(3) determine slot for sending Msg4 HARQ

Note: Before calculating slotMsg4Harq, we need to convert (hsfn+sfn+slotMsg4) which based on nrMibCommonScs(common scs in mib) into (hsfn, sfn, slotInPuschScs) which based on nrIniUlBwpScs(scs of initial ul bwp).

#refer to 3GPP 38.213 vf40 9.2.3
#For DCI format 1_0, the PDSCH-to-HARQ-timing-indicator field values map to {1, 2, 3, 4, 5, 6, 7, 8}.
#With reference to slots for PUCCH transmissions, if the UE detects a DCI format 1_0 or a DCI format 1_1 scheduling a PDSCH reception ending in slot n or if the UE detects a DCI format 1_0 indicating a SPS PDSCH release through a PDCCH reception ending in slot n, the UE provides corresponding HARQ-ACK information in a PUCCH transmission within slot n+k, where k is a number of slots and is indicated by the PDSCH-to-HARQ-timing-indicator field in the DCI format, if present, or provided by dl-DataToUL-ACK.
k1 = [1,2,3,4,5,6,7,8][self.nrMsg4TdK1]

slotMsg4Harq = slotInPuschScs + k1
if slotMsg4Harq >= self.nrSlotPerRf[self.nrScs2Mu[self.nrIniUlBwpScs]]:
    slotMsg4Harq = slotMsg4Harq % self.nrSlotPerRf[self.nrScs2Mu[self.nrIniUlBwpScs]]
    hsfn, sfn = self.incSfn(hsfn, sfn, 1)
    self.alwaysOnTr(hsfn, sfn)

(4) DMRS for PUCCH format 1

Note: For common pucch set, only format 0/1 is supported.

pucchDmrsSymbs = []
if pucchFmt == 1:
    for i in range(numSymbs):
        if i % 2 == 0:
            pucchDmrsSymbs.append(i)
    self.ngwin.logEdit.append('contents of pucchDmrsSymbs(w.r.t to firstSymb(=%d) of PUCCH): %s' % (firstSymb, pucchDmrsSymbs))
    qApp.processEvents()

(5) Frequency hopping for 'Common PUCCH Set'

As specified in 38.213, harq feedback with 'common pucch set' uses frequency hopping.

Final note: After msg4 harq, we are generally done with 'initial dl bwp' and 'initial ul bwp'. We will use 'dedicated ul/dl bwp' for CSI-RS/SRS/DSR/CSI-feedback and PDSCH/PUSCH/PUCCH, and PDCCH will always use Coreset1/USS1 (CORESET with id=1 and UE-specific search space with id=1).

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