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, ...@@ -211,14 +211,11 @@ void nr_ue_ssb_rsrp_measurements(PHY_VARS_NR_UE *ue,
int k_start = 55; int k_start = 55;
int k_end = 183; int k_end = 183;
unsigned int ssb_offset = ue->frame_parms.first_carrier_offset + ue->frame_parms.ssb_start_subcarrier; unsigned int ssb_offset = ue->frame_parms.first_carrier_offset + ue->frame_parms.ssb_start_subcarrier;
uint8_t l_sss = ue->symbol_offset + 2; uint8_t l_sss = (ue->symbol_offset + 2) % ue->frame_parms.symbols_per_slot;
if (ssb_offset>= ue->frame_parms.ofdm_symbol_size){
if (ssb_offset>= ue->frame_parms.ofdm_symbol_size)
ssb_offset -= ue->frame_parms.ofdm_symbol_size; ssb_offset -= ue->frame_parms.ofdm_symbol_size;
}
uint32_t rsrp = 0; 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); 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, ...@@ -267,7 +264,7 @@ void nr_ue_rrc_measurements(PHY_VARS_NR_UE *ue,
uint8_t k_left = 48; uint8_t k_left = 48;
uint8_t k_right = 183; uint8_t k_right = 183;
uint8_t k_length = 8; 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; 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 = openair0_cfg[0].rx_gain[0];
double rx_gain_offset = openair0_cfg[0].rx_gain_offset[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, ...@@ -393,6 +393,7 @@ int nr_rx_pbch( PHY_VARS_NR_UE *ue,
MIMO_mode_t mimo_mode, MIMO_mode_t mimo_mode,
NR_UE_PDCCH_CONFIG *phy_pdcch_config, NR_UE_PDCCH_CONFIG *phy_pdcch_config,
fapiPbch_t *result) { fapiPbch_t *result) {
NR_UE_COMMON *nr_ue_common_vars = &ue->common_vars; NR_UE_COMMON *nr_ue_common_vars = &ue->common_vars;
int max_h=0; int max_h=0;
int symbol; int symbol;
...@@ -416,7 +417,7 @@ int nr_rx_pbch( PHY_VARS_NR_UE *ue, ...@@ -416,7 +417,7 @@ int nr_rx_pbch( PHY_VARS_NR_UE *ue,
int symbol_offset=1; int symbol_offset=1;
if (ue->is_synchronized > 0) 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 else
symbol_offset=0; symbol_offset=0;
......
...@@ -1364,7 +1364,7 @@ int phy_procedures_nrUE_RX(PHY_VARS_NR_UE *ue, ...@@ -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); 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 // 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; fp->ssb_index = ssb_index;
if(ssb_index == fp->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