Commit 2f81e507 authored by francescomani's avatar francescomani

fixes for pbch detection and measurements on multiple SSBs

parent 9277afe3
......@@ -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) {
......
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