From 0126bd849b8935ed23a69ddd618c1b2de36604b1 Mon Sep 17 00:00:00 2001 From: rmagueta Date: Wed, 9 Mar 2022 19:18:30 +0000 Subject: [PATCH] Remove redundant info from nr_csi_rs_info_t --- openair1/PHY/NR_TRANSPORT/nr_csi_rs.c | 9 ++++----- openair1/PHY/NR_UE_TRANSPORT/csi_rx.c | 12 ++++++------ openair1/PHY/defs_nr_common.h | 4 ++-- 3 files changed, 12 insertions(+), 13 deletions(-) diff --git a/openair1/PHY/NR_TRANSPORT/nr_csi_rs.c b/openair1/PHY/NR_TRANSPORT/nr_csi_rs.c index 85c49b7eb2..0f687d6878 100644 --- a/openair1/PHY/NR_TRANSPORT/nr_csi_rs.c +++ b/openair1/PHY/NR_TRANSPORT/nr_csi_rs.c @@ -592,7 +592,7 @@ void nr_generate_csi_rs(NR_DL_FRAME_PARMS frame_parms, } } - bzero(nr_csi_rs_info->k_list_length,NR_SYMBOLS_PER_SLOT*sizeof(uint16_t)); + nr_csi_rs_info->k_list_length = 0; uint16_t start_sc = frame_parms.first_carrier_offset; // resource mapping according to 38.211 7.4.1.5.3 @@ -603,7 +603,9 @@ void nr_generate_csi_rs(NR_DL_FRAME_PARMS frame_parms, p = s+j[ji]*gs; // port index for (kp=0; kp<=kprime; kp++) { // loop over frequency resource elements within a group k = (start_sc+(n*NR_NB_SC_PER_RB)+koverline[ji]+kp)%(frame_parms.ofdm_symbol_size); // frequency index of current resource element - // wf according to tables 7.4.5.3-2 to 7.4.5.3-5 + nr_csi_rs_info->map_list[nr_csi_rs_info->k_list_length] = k; + nr_csi_rs_info->k_list_length++; + // wf according to tables 7.4.5.3-2 to 7.4.5.3-5 if (kp == 0) wf = 1; else @@ -627,9 +629,6 @@ void nr_generate_csi_rs(NR_DL_FRAME_PARMS frame_parms, wt = -1; } - nr_csi_rs_info->map_list[l][nr_csi_rs_info->k_list_length[l]] = k; - nr_csi_rs_info->k_list_length[l]++; - // ZP CSI RS if (csi_params->csi_type == 2) { ((int16_t*)dataF[p])[((l*frame_parms.ofdm_symbol_size + k)<<1)+(2*dataF_offset)] = 0; diff --git a/openair1/PHY/NR_UE_TRANSPORT/csi_rx.c b/openair1/PHY/NR_UE_TRANSPORT/csi_rx.c index 5fa1508f23..2cfd43b5a0 100644 --- a/openair1/PHY/NR_UE_TRANSPORT/csi_rx.c +++ b/openair1/PHY/NR_UE_TRANSPORT/csi_rx.c @@ -107,8 +107,8 @@ int nr_get_csi_rs_signal(PHY_VARS_NR_UE *ue, uint64_t symbol_offset = symb*frame_parms->ofdm_symbol_size; int16_t *rx_signal = (int16_t*)&rxdataF[ant][symbol_offset]; int16_t *rx_csi_rs_signal = (int16_t*)&csi_rs_received_signal[ant][symbol_offset]; - for(int k_id = 0; k_idk_list_length[symb]; k_id++) { - uint16_t k = nr_csi_rs_info->map_list[symb][k_id]; + for(int k_id = 0; k_idk_list_length; k_id++) { + uint16_t k = nr_csi_rs_info->map_list[k_id]; rx_csi_rs_signal[k<<1] = rx_signal[k<<1]; rx_csi_rs_signal[(k<<1)+1] = rx_signal[(k<<1)+1]; @@ -117,7 +117,7 @@ int nr_get_csi_rs_signal(PHY_VARS_NR_UE *ue, int16_t *tx_csi_rs_signal = (int16_t*)&nr_csi_rs_info->csi_rs_generated_signal[ant][symbol_offset+dataF_offset]; LOG_I(NR_PHY, "l,k (%2d,%3d) |\ttx (%4d,%4d)\trx (%4d,%4d)\n", symb, - nr_csi_rs_info->map_list[symb][k_id], + nr_csi_rs_info->map_list[k_id], tx_csi_rs_signal[k<<1], tx_csi_rs_signal[(k<<1)+1], rx_csi_rs_signal[k<<1], @@ -155,15 +155,15 @@ int nr_csi_rs_channel_estimation(PHY_VARS_NR_UE *ue, int16_t *rx_csi_rs_signal = (int16_t*)&csi_rs_received_signal[ant][symbol_offset]; int16_t *csi_rs_ls_estimated_channel = (int16_t*)&nr_csi_rs_info->csi_rs_ls_estimated_channel[ant][symbol_offset]; - for(int k_id = 0; k_idk_list_length[symb]; k_id++) { - uint16_t k = nr_csi_rs_info->map_list[symb][k_id]; + for(int k_id = 0; k_idk_list_length; k_id++) { + uint16_t k = nr_csi_rs_info->map_list[k_id]; csi_rs_ls_estimated_channel[k<<1] = (int16_t)(((int32_t)tx_csi_rs_signal[k<<1]*rx_csi_rs_signal[k<<1] + (int32_t)tx_csi_rs_signal[(k<<1)+1]*rx_csi_rs_signal[(k<<1)+1])>>nr_csi_rs_info->csi_rs_generated_signal_bits); csi_rs_ls_estimated_channel[(k<<1)+1] = (int16_t)(((int32_t)tx_csi_rs_signal[k<<1]*rx_csi_rs_signal[(k<<1)+1] - (int32_t)tx_csi_rs_signal[(k<<1)+1]*rx_csi_rs_signal[k<<1])>>nr_csi_rs_info->csi_rs_generated_signal_bits); #ifdef NR_CSIRS_DEBUG LOG_I(NR_PHY, "l,k (%2d,%3d) |\ttx (%4d,%4d)\trx (%4d,%4d)\tls (%4d,%4d)\n", symb, - nr_csi_rs_info->map_list[symb][k_id], + nr_csi_rs_info->map_list[k_id], tx_csi_rs_signal[k<<1], tx_csi_rs_signal[(k<<1)+1], rx_csi_rs_signal[k<<1], diff --git a/openair1/PHY/defs_nr_common.h b/openair1/PHY/defs_nr_common.h index de307dac32..cbc8bc8508 100644 --- a/openair1/PHY/defs_nr_common.h +++ b/openair1/PHY/defs_nr_common.h @@ -266,8 +266,8 @@ typedef struct { typedef struct { uint32_t ***nr_gold_csi_rs; - uint16_t k_list_length[NR_SYMBOLS_PER_SLOT]; - uint16_t map_list[NR_SYMBOLS_PER_SLOT][NR_MAX_CSI_RS_LENGTH]; + uint16_t k_list_length; + uint16_t map_list[NR_MAX_CSI_RS_LENGTH]; uint8_t csi_rs_generated_signal_bits; int32_t **csi_rs_generated_signal; int32_t **csi_rs_received_signal;