mirror of
https://gitlab.eurecom.fr/oai/openairinterface5g.git
synced 2026-07-13 04:30:28 +00:00
fixes in DLSCH RB extraction
Signed-off-by: Francesco Mani <email@francescomani.it>
This commit is contained in:
@@ -193,8 +193,8 @@ static void nr_dlsch_extract_rbs(uint32_t rxdataF_sz,
|
||||
uint32_t csi_res_odd = (csi_res_bitmap >> 16) & 0xfff;
|
||||
AssertFatal((dmrs_rb_bitmap & csi_res_even) == 0, "DMRS RE overlapping with CSI RE, it shouldn't happen\n");
|
||||
AssertFatal((dmrs_rb_bitmap & csi_res_odd) == 0, "DMRS RE overlapping with CSI RE, it shouldn't happen\n");
|
||||
uint32_t dmrs_csi_overlap_even = csi_res_even + dmrs_rb_bitmap;
|
||||
uint32_t dmrs_csi_overlap_odd = csi_res_odd + dmrs_rb_bitmap;
|
||||
uint32_t dmrs_csi_overlap_even = csi_res_even | dmrs_rb_bitmap;
|
||||
uint32_t dmrs_csi_overlap_odd = csi_res_odd | dmrs_rb_bitmap;
|
||||
int8_t validDmrsEst;
|
||||
if (chest_time_type == 0)
|
||||
validDmrsEst = get_valid_dmrs_idx_for_channel_est(dlsch_config->dlDmrsSymbPos, symbol);
|
||||
@@ -203,16 +203,17 @@ static void nr_dlsch_extract_rbs(uint32_t rxdataF_sz,
|
||||
|
||||
int pos = 0;
|
||||
int block_start, block_end;
|
||||
int offset = 0;
|
||||
while (find_next_rb_block(freq_alloc->bitmap, dlsch_config->BWPSize, &pos, &block_start, &block_end)) {
|
||||
int start_rb = block_start + dlsch_config->BWPStart;
|
||||
int nb_rb = block_end - block_start + 1;
|
||||
const int start_re = (fp->first_carrier_offset + start_rb * NR_NB_SC_PER_RB) % fp->ofdm_symbol_size;
|
||||
for (int aarx = 0; aarx < fp->nb_antennas_rx; aarx++) {
|
||||
c16_t *rxF_ext = rxdataF_ext[aarx];
|
||||
c16_t *rxF_ext = rxdataF_ext[aarx] + offset;
|
||||
c16_t *rxF = &rxdataF[aarx][symbol * fp->ofdm_symbol_size];
|
||||
for (int l = 0; l < Nl; l++) {
|
||||
int32_t *dl_ch0 = &dl_ch_estimates[(l * fp->nb_antennas_rx) + aarx][validDmrsEst * fp->ofdm_symbol_size];
|
||||
int32_t *dl_ch0_ext = dl_ch_estimates_ext[(l * fp->nb_antennas_rx) + aarx];
|
||||
int32_t *dl_ch0_ext = dl_ch_estimates_ext[(l * fp->nb_antennas_rx) + aarx] + offset;
|
||||
if (pilots == 0 && csi_res_bitmap == 0) { // data symbol only
|
||||
if (l == 0) {
|
||||
if (start_re + nb_rb * NR_NB_SC_PER_RB <= fp->ofdm_symbol_size) {
|
||||
@@ -247,6 +248,7 @@ static void nr_dlsch_extract_rbs(uint32_t rxdataF_sz,
|
||||
}
|
||||
}
|
||||
}
|
||||
offset += nb_rb * NR_NB_SC_PER_RB;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user