fixes for pbch detection and measurements on multiple SSBs
This commit is contained in:
@@ -211,14 +211,11 @@ void nr_ue_ssb_rsrp_measurements(PHY_VARS_NR_UE *ue,
|
||||
int k_start = 55;
|
||||
int k_end = 183;
|
||||
unsigned int ssb_offset = ue->frame_parms.first_carrier_offset + ue->frame_parms.ssb_start_subcarrier;
|
||||
uint8_t l_sss = ue->symbol_offset + 2;
|
||||
|
||||
if (ssb_offset>= ue->frame_parms.ofdm_symbol_size){
|
||||
uint8_t l_sss = (ue->symbol_offset + 2) % ue->frame_parms.symbols_per_slot;
|
||||
|
||||
if (ssb_offset>= ue->frame_parms.ofdm_symbol_size)
|
||||
ssb_offset -= ue->frame_parms.ofdm_symbol_size;
|
||||
|
||||
}
|
||||
|
||||
uint32_t rsrp = 0;
|
||||
|
||||
LOG_D(PHY, "In %s: [UE %d] slot %d l_sss %d ssb_offset %d\n", __FUNCTION__, ue->Mod_id, slot, l_sss, ssb_offset);
|
||||
@@ -267,7 +264,7 @@ void nr_ue_rrc_measurements(PHY_VARS_NR_UE *ue,
|
||||
uint8_t k_left = 48;
|
||||
uint8_t k_right = 183;
|
||||
uint8_t k_length = 8;
|
||||
uint8_t l_sss = ue->symbol_offset + 2;
|
||||
uint8_t l_sss = (ue->symbol_offset + 2) % ue->frame_parms.symbols_per_slot;
|
||||
unsigned int ssb_offset = ue->frame_parms.first_carrier_offset + ue->frame_parms.ssb_start_subcarrier;
|
||||
double rx_gain = openair0_cfg[0].rx_gain[0];
|
||||
double rx_gain_offset = openair0_cfg[0].rx_gain_offset[0];
|
||||
|
||||
@@ -393,6 +393,7 @@ int nr_rx_pbch( PHY_VARS_NR_UE *ue,
|
||||
MIMO_mode_t mimo_mode,
|
||||
NR_UE_PDCCH_CONFIG *phy_pdcch_config,
|
||||
fapiPbch_t *result) {
|
||||
|
||||
NR_UE_COMMON *nr_ue_common_vars = &ue->common_vars;
|
||||
int max_h=0;
|
||||
int symbol;
|
||||
@@ -416,7 +417,7 @@ int nr_rx_pbch( PHY_VARS_NR_UE *ue,
|
||||
int symbol_offset=1;
|
||||
|
||||
if (ue->is_synchronized > 0)
|
||||
symbol_offset=(ue->symbol_offset)%(frame_parms->symbols_per_slot);
|
||||
symbol_offset=nr_get_ssb_start_symbol(frame_parms, i_ssb)%(frame_parms->symbols_per_slot);
|
||||
else
|
||||
symbol_offset=0;
|
||||
|
||||
|
||||
@@ -1364,7 +1364,7 @@ int phy_procedures_nrUE_RX(PHY_VARS_NR_UE *ue,
|
||||
nr_ue_ssb_rsrp_measurements(ue, ssb_index, proc, nr_slot_rx);
|
||||
|
||||
// resetting ssb index for PBCH detection if there is a stronger SSB index
|
||||
if(measurements.ssb_rsrp_dBm[ssb_index]>ue->measurements.ssb_rsrp_dBm[fp->ssb_index])
|
||||
if(ue->measurements.ssb_rsrp_dBm[ssb_index] > ue->measurements.ssb_rsrp_dBm[fp->ssb_index])
|
||||
fp->ssb_index = ssb_index;
|
||||
|
||||
if(ssb_index == fp->ssb_index) {
|
||||
|
||||
Reference in New Issue
Block a user