PDCCH unscrambling: correct c_init modulo
As specified in TS 38.211 Section 7.3.2.3, c_init is the result of a mod 2^31. Before this commit, the code assumed a wrong, implicit mod 2^32, even though the comment says otherwise.
This commit is contained in:
committed by
Robert Schmidt
parent
1cbd6c714b
commit
7479597a37
@@ -800,7 +800,8 @@ void nr_pdcch_unscrambling(int16_t *e_rx,
|
|||||||
uint16_t scrambling_RNTI,
|
uint16_t scrambling_RNTI,
|
||||||
uint32_t length,
|
uint32_t length,
|
||||||
uint16_t pdcch_DMRS_scrambling_id,
|
uint16_t pdcch_DMRS_scrambling_id,
|
||||||
int16_t *z2) {
|
int16_t *z2)
|
||||||
|
{
|
||||||
int i;
|
int i;
|
||||||
uint8_t reset;
|
uint8_t reset;
|
||||||
uint32_t x1 = 0, x2 = 0, s = 0;
|
uint32_t x1 = 0, x2 = 0, s = 0;
|
||||||
@@ -809,7 +810,7 @@ void nr_pdcch_unscrambling(int16_t *e_rx,
|
|||||||
reset = 1;
|
reset = 1;
|
||||||
// x1 is set in first call to lte_gold_generic
|
// x1 is set in first call to lte_gold_generic
|
||||||
n_id = pdcch_DMRS_scrambling_id;
|
n_id = pdcch_DMRS_scrambling_id;
|
||||||
x2 = ((rnti<<16) + n_id); //mod 2^31 is implicit //this is c_init in 38.211 v15.1.0 Section 7.3.2.3
|
x2 = ((rnti << 16) + n_id) % (1U << 31); // this is c_init in 38.211 v15.1.0 Section 7.3.2.3
|
||||||
|
|
||||||
LOG_D(PHY,"PDCCH Unscrambling x2 %x : scrambling_RNTI %x\n", x2, rnti);
|
LOG_D(PHY,"PDCCH Unscrambling x2 %x : scrambling_RNTI %x\n", x2, rnti);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user