Commit f84ed0bb authored by Rakesh Mundlamuri's avatar Rakesh Mundlamuri

Make nb_antenna as a input parameter to generate_srs_nr()

 - We use the same function at gNB and UE.
 - We always use nb_antennas_tx to check the max possible number of ports (which is wrong).
 - At gNB, we should use nb_antennas_rx and at the UE, we should use nb_antennas_tx.
parent dea4508f
...@@ -372,7 +372,8 @@ bool generate_srs_nr(const NR_DL_FRAME_PARMS *frame_parms, ...@@ -372,7 +372,8 @@ bool generate_srs_nr(const NR_DL_FRAME_PARMS *frame_parms,
nr_srs_info_t *nr_srs_info, nr_srs_info_t *nr_srs_info,
int16_t amp, int16_t amp,
frame_t frame_number, frame_t frame_number,
slot_t slot_number); slot_t slot_number,
uint8_t nb_antennas);
void nr_generate_csi_rs(const NR_DL_FRAME_PARMS *frame_parms, void nr_generate_csi_rs(const NR_DL_FRAME_PARMS *frame_parms,
const csi_mapping_parms_t *phy_csi_parms, const csi_mapping_parms_t *phy_csi_parms,
const int16_t amp, const int16_t amp,
......
...@@ -146,11 +146,12 @@ bool generate_srs_nr(const NR_DL_FRAME_PARMS *frame_parms, ...@@ -146,11 +146,12 @@ bool generate_srs_nr(const NR_DL_FRAME_PARMS *frame_parms,
nr_srs_info_t *nr_srs_info, nr_srs_info_t *nr_srs_info,
int16_t amp, int16_t amp,
frame_t frame_number, frame_t frame_number,
slot_t slot_number) slot_t slot_number,
uint8_t nb_antennas)
{ {
uint8_t K_TC = 2 << nr_srs_info->comb_size; uint8_t K_TC = 2 << nr_srs_info->comb_size;
/* Number of antenna ports (M) can't be higher than number of physical antennas (N): M <= N */ /* Number of antenna ports (M) can't be higher than number of physical antennas (N): M <= N */
int N_ap = nr_srs_info->n_srs_ports > frame_parms->nb_antennas_tx ? frame_parms->nb_antennas_tx : nr_srs_info->n_srs_ports; int N_ap = nr_srs_info->n_srs_ports > nb_antennas ? nb_antennas : nr_srs_info->n_srs_ports;
uint8_t l0 = frame_parms->symbols_per_slot - 1 - nr_srs_info->l_offset; // Starting symbol position in the time domain uint8_t l0 = frame_parms->symbols_per_slot - 1 - nr_srs_info->l_offset; // Starting symbol position in the time domain
uint8_t n_SRS_cs_max = srs_max_number_cs[nr_srs_info->comb_size]; uint8_t n_SRS_cs_max = srs_max_number_cs[nr_srs_info->comb_size];
int m_SRS_b = get_m_srs(nr_srs_info->C_SRS, nr_srs_info->B_SRS); // Number of resource blocks int m_SRS_b = get_m_srs(nr_srs_info->C_SRS, nr_srs_info->B_SRS); // Number of resource blocks
......
...@@ -883,7 +883,15 @@ void nr_srs_rx_procedures(PHY_VARS_gNB *gNB, ...@@ -883,7 +883,15 @@ void nr_srs_rx_procedures(PHY_VARS_gNB *gNB,
start_meas(&gNB->generate_srs_stats); start_meas(&gNB->generate_srs_stats);
if (check_and_configure_srs_info(srs_pdu, nr_srs_info)) { if (check_and_configure_srs_info(srs_pdu, nr_srs_info)) {
generate_srs_nr(frame_parms, nr_srs_info->srs_generated_signal, 0, srs_pdu->bwp_start, nr_srs_info, AMP, frame_rx, slot_rx); generate_srs_nr(frame_parms,
nr_srs_info->srs_generated_signal,
0,
srs_pdu->bwp_start,
nr_srs_info,
AMP,
frame_rx,
slot_rx,
nb_antennas_rx);
} }
stop_meas(&gNB->generate_srs_stats); stop_meas(&gNB->generate_srs_stats);
......
...@@ -360,7 +360,8 @@ bool ue_srs_procedures_nr(PHY_VARS_NR_UE *ue, ...@@ -360,7 +360,8 @@ bool ue_srs_procedures_nr(PHY_VARS_NR_UE *ue,
ue->nr_srs_info, ue->nr_srs_info,
AMP, AMP,
proc->frame_tx, proc->frame_tx,
proc->nr_slot_tx); proc->nr_slot_tx,
frame_parms->nb_antennas_tx);
return generated; return generated;
} }
......
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