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,
}
}
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;
......
......@@ -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_id<nr_csi_rs_info->k_list_length[symb]; k_id++) {
uint16_t k = nr_csi_rs_info->map_list[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[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_id<nr_csi_rs_info->k_list_length[symb]; k_id++) {
uint16_t k = nr_csi_rs_info->map_list[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[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],
......
......@@ -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;
......
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