Fix DMRS for PUCCH format 2

This commit is contained in:
rmagueta
2025-05-07 15:55:36 +01:00
parent 9b878d920d
commit 51dfab0c56
+8 -7
View File
@@ -930,12 +930,13 @@ void nr_decode_pucch2(PHY_VARS_gNB *gNB,
int l2 = pucch_pdu->start_symbol_index;
int soffset = (slot % RU_RX_SLOT_DEPTH) * frame_parms->symbols_per_slot * frame_parms->ofdm_symbol_size;
uint16_t starting_prb = pucch_pdu->prb_start + pucch_pdu->bwp_start;
int re_offset[nb_symbols];
re_offset[0] =
(12 * (pucch_pdu->prb_start + pucch_pdu->bwp_start) + frame_parms->first_carrier_offset) % frame_parms->ofdm_symbol_size;
if (nb_symbols==2) {
if (pucch_pdu->freq_hop_flag )
re_offset[1] = (12*(pucch_pdu->second_hop_prb+pucch_pdu->bwp_start) + frame_parms->first_carrier_offset) % frame_parms->ofdm_symbol_size ;
re_offset[0] = (12 * starting_prb + frame_parms->first_carrier_offset) % frame_parms->ofdm_symbol_size;
if (nb_symbols == 2) {
if (pucch_pdu->freq_hop_flag)
re_offset[1] = (12 * (pucch_pdu->second_hop_prb + pucch_pdu->bwp_start) + frame_parms->first_carrier_offset)
% frame_parms->ofdm_symbol_size;
else
re_offset[1] = re_offset[0];
}
@@ -1074,10 +1075,10 @@ void nr_decode_pucch2(PHY_VARS_gNB *gNB,
printf("slot %d, start_symbol_index %d, symbol %d, dmrs_scrambling_id %d\n",
slot,pucch_pdu->start_symbol_index,symb,pucch_pdu->dmrs_scrambling_id);
#endif
uint32_t *sGold = gold_cache(x2, pucch_pdu->prb_start / 4 + ngroup / 2);
uint32_t *sGold = gold_cache(x2, starting_prb / 4 + ngroup / 2);
// Compute pilot conjugate
c16_t pil_dmrs[nb_re_dmrs] __attribute__((aligned(32)));
uint8_t *sGold8 = (uint8_t *)(sGold + pucch_pdu->prb_start / 4);
uint8_t *sGold8 = (uint8_t *)(sGold + starting_prb / 4);
for (int group = 0; group < nb_re_dmrs; group += 4)
*(simde__m128i *)(pil_dmrs + group) = oai_mm_conj(byte2m128i[*sGold8++]);