From b69920b9f6ac7bfdac4d765874e2cb66fdda72c7 Mon Sep 17 00:00:00 2001 From: Francesco Mani Date: Thu, 24 Sep 2020 18:50:06 +0200 Subject: [PATCH] fix for reference point for k in pucch2 dmrs --- openair1/PHY/NR_TRANSPORT/pucch_rx.c | 11 +++++++++-- openair1/PHY/NR_UE_TRANSPORT/pucch_nr.c | 6 +++++- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/openair1/PHY/NR_TRANSPORT/pucch_rx.c b/openair1/PHY/NR_TRANSPORT/pucch_rx.c index 9950390fb1..38d6b72fc8 100644 --- a/openair1/PHY/NR_TRANSPORT/pucch_rx.c +++ b/openair1/PHY/NR_TRANSPORT/pucch_rx.c @@ -1092,6 +1092,9 @@ void nr_decode_pucch2(PHY_VARS_gNB *gNB, AssertFatal(pucch_pdu->nr_of_symbols==1 || pucch_pdu->nr_of_symbols==2, "Illegal number of symbols for PUCCH 2 %d\n",pucch_pdu->nr_of_symbols); + AssertFatal((pucch_pdu->prb_start-((pucch_pdu->prb_start>>2)<<2))==0, + "Current pucch2 receiver implementation requires a PRB offset multiple of 4. The one selected is %d", + pucch_pdu->prb_start); //extract pucch and dmrs first @@ -1210,7 +1213,11 @@ void nr_decode_pucch2(PHY_VARS_gNB *gNB, printf("slot %d, start_symbol_index %d, dmrs_scrambling_id %d\n", slot,pucch_pdu->start_symbol_index,pucch_pdu->dmrs_scrambling_id); #endif - s = lte_gold_generic(&x1, &x2, 1); + int reset = 1; + for (int i=0; i<=(pucch_pdu->prb_start>>2); i++) { + s = lte_gold_generic(&x1, &x2, reset); + reset = 0; + } for (int group=0;group>2); ii++) { + s = lte_gold_generic(&x1, &x2, reset); + reset = 0; + } m = 0; for (int rb=0; rb