Generate SRS sequence only when needed
This commit is contained in:
@@ -206,6 +206,7 @@ typedef struct {
|
|||||||
uint8_t k_0_p[MAX_NUM_NR_SRS_AP][MAX_NUM_NR_SRS_SYMBOLS];
|
uint8_t k_0_p[MAX_NUM_NR_SRS_AP][MAX_NUM_NR_SRS_SYMBOLS];
|
||||||
uint8_t srs_generated_signal_bits;
|
uint8_t srs_generated_signal_bits;
|
||||||
int32_t **srs_generated_signal;
|
int32_t **srs_generated_signal;
|
||||||
|
nfapi_nr_srs_pdu_t srs_pdu;
|
||||||
} nr_srs_info_t;
|
} nr_srs_info_t;
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
|
|||||||
@@ -670,6 +670,20 @@ int fill_srs_channel_matrix(uint8_t *channel_matrix,
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int check_srs_pdu(const nfapi_nr_srs_pdu_t *srs_pdu, nfapi_nr_srs_pdu_t *saved_srs_pdu)
|
||||||
|
{
|
||||||
|
if (saved_srs_pdu->bwp_start == srs_pdu->bwp_start &&
|
||||||
|
saved_srs_pdu->bwp_size == srs_pdu->bwp_size &&
|
||||||
|
saved_srs_pdu->num_ant_ports == srs_pdu->num_ant_ports &&
|
||||||
|
saved_srs_pdu->time_start_position == srs_pdu->time_start_position &&
|
||||||
|
saved_srs_pdu->num_symbols == srs_pdu->num_symbols &&
|
||||||
|
saved_srs_pdu->config_index == srs_pdu->config_index) {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
*saved_srs_pdu = *srs_pdu;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
int phy_procedures_gNB_uespec_RX(PHY_VARS_gNB *gNB, int frame_rx, int slot_rx) {
|
int phy_procedures_gNB_uespec_RX(PHY_VARS_gNB *gNB, int frame_rx, int slot_rx) {
|
||||||
/* those variables to log T_GNB_PHY_PUCCH_PUSCH_IQ only when we try to decode */
|
/* those variables to log T_GNB_PHY_PUCCH_PUSCH_IQ only when we try to decode */
|
||||||
int pucch_decode_done = 0;
|
int pucch_decode_done = 0;
|
||||||
@@ -875,7 +889,9 @@ int phy_procedures_gNB_uespec_RX(PHY_VARS_gNB *gNB, int frame_rx, int slot_rx) {
|
|||||||
int8_t snr;
|
int8_t snr;
|
||||||
|
|
||||||
start_meas(&gNB->generate_srs_stats);
|
start_meas(&gNB->generate_srs_stats);
|
||||||
|
if (check_srs_pdu(srs_pdu, &gNB->nr_srs_info[i]->srs_pdu) == 0) {
|
||||||
generate_srs_nr(srs_pdu, frame_parms, gNB->nr_srs_info[i]->srs_generated_signal, 0, gNB->nr_srs_info[i], AMP, frame_rx, slot_rx);
|
generate_srs_nr(srs_pdu, frame_parms, gNB->nr_srs_info[i]->srs_generated_signal, 0, gNB->nr_srs_info[i], AMP, frame_rx, slot_rx);
|
||||||
|
}
|
||||||
stop_meas(&gNB->generate_srs_stats);
|
stop_meas(&gNB->generate_srs_stats);
|
||||||
|
|
||||||
start_meas(&gNB->get_srs_signal_stats);
|
start_meas(&gNB->get_srs_signal_stats);
|
||||||
|
|||||||
Reference in New Issue
Block a user