Commit 0126bd84 authored by rmagueta's avatar rmagueta

Remove redundant info from nr_csi_rs_info_t

parent 19d8ea27
...@@ -592,7 +592,7 @@ void nr_generate_csi_rs(NR_DL_FRAME_PARMS frame_parms, ...@@ -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; uint16_t start_sc = frame_parms.first_carrier_offset;
// resource mapping according to 38.211 7.4.1.5.3 // resource mapping according to 38.211 7.4.1.5.3
...@@ -603,6 +603,8 @@ void nr_generate_csi_rs(NR_DL_FRAME_PARMS frame_parms, ...@@ -603,6 +603,8 @@ void nr_generate_csi_rs(NR_DL_FRAME_PARMS frame_parms,
p = s+j[ji]*gs; // port index p = s+j[ji]*gs; // port index
for (kp=0; kp<=kprime; kp++) { // loop over frequency resource elements within a group 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 k = (start_sc+(n*NR_NB_SC_PER_RB)+koverline[ji]+kp)%(frame_parms.ofdm_symbol_size); // frequency index of current resource element
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 // wf according to tables 7.4.5.3-2 to 7.4.5.3-5
if (kp == 0) if (kp == 0)
wf = 1; wf = 1;
...@@ -627,9 +629,6 @@ void nr_generate_csi_rs(NR_DL_FRAME_PARMS frame_parms, ...@@ -627,9 +629,6 @@ void nr_generate_csi_rs(NR_DL_FRAME_PARMS frame_parms,
wt = -1; 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 // ZP CSI RS
if (csi_params->csi_type == 2) { if (csi_params->csi_type == 2) {
((int16_t*)dataF[p])[((l*frame_parms.ofdm_symbol_size + k)<<1)+(2*dataF_offset)] = 0; ((int16_t*)dataF[p])[((l*frame_parms.ofdm_symbol_size + k)<<1)+(2*dataF_offset)] = 0;
......
...@@ -107,8 +107,8 @@ int nr_get_csi_rs_signal(PHY_VARS_NR_UE *ue, ...@@ -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; uint64_t symbol_offset = symb*frame_parms->ofdm_symbol_size;
int16_t *rx_signal = (int16_t*)&rxdataF[ant][symbol_offset]; 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]; int16_t *rx_csi_rs_signal = (int16_t*)&csi_rs_received_signal[ant][symbol_offset];
for(int k_id = 0; k_id<nr_csi_rs_info->k_list_length[symb]; k_id++) { for(int k_id = 0; k_id<nr_csi_rs_info->k_list_length; k_id++) {
uint16_t k = nr_csi_rs_info->map_list[symb][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] = rx_signal[k<<1];
rx_csi_rs_signal[(k<<1)+1] = rx_signal[(k<<1)+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, ...@@ -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]; 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", LOG_I(NR_PHY, "l,k (%2d,%3d) |\ttx (%4d,%4d)\trx (%4d,%4d)\n",
symb, 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],
tx_csi_rs_signal[(k<<1)+1], tx_csi_rs_signal[(k<<1)+1],
rx_csi_rs_signal[k<<1], rx_csi_rs_signal[k<<1],
...@@ -155,15 +155,15 @@ int nr_csi_rs_channel_estimation(PHY_VARS_NR_UE *ue, ...@@ -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 *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]; 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_id<nr_csi_rs_info->k_list_length[symb]; k_id++) { for(int k_id = 0; k_id<nr_csi_rs_info->k_list_length; k_id++) {
uint16_t k = nr_csi_rs_info->map_list[symb][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] = (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); 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 #ifdef NR_CSIRS_DEBUG
LOG_I(NR_PHY, "l,k (%2d,%3d) |\ttx (%4d,%4d)\trx (%4d,%4d)\tls (%4d,%4d)\n", LOG_I(NR_PHY, "l,k (%2d,%3d) |\ttx (%4d,%4d)\trx (%4d,%4d)\tls (%4d,%4d)\n",
symb, 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],
tx_csi_rs_signal[(k<<1)+1], tx_csi_rs_signal[(k<<1)+1],
rx_csi_rs_signal[k<<1], rx_csi_rs_signal[k<<1],
......
...@@ -266,8 +266,8 @@ typedef struct { ...@@ -266,8 +266,8 @@ typedef struct {
typedef struct { typedef struct {
uint32_t ***nr_gold_csi_rs; uint32_t ***nr_gold_csi_rs;
uint16_t k_list_length[NR_SYMBOLS_PER_SLOT]; uint16_t k_list_length;
uint16_t map_list[NR_SYMBOLS_PER_SLOT][NR_MAX_CSI_RS_LENGTH]; uint16_t map_list[NR_MAX_CSI_RS_LENGTH];
uint8_t csi_rs_generated_signal_bits; uint8_t csi_rs_generated_signal_bits;
int32_t **csi_rs_generated_signal; int32_t **csi_rs_generated_signal;
int32_t **csi_rs_received_signal; int32_t **csi_rs_received_signal;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment