remove unused SSB ue phy unit tests
This commit is contained in:
@@ -237,8 +237,6 @@ typedef struct {
|
||||
|
||||
/// estimated frequency offset (in radians) for all subcarriers
|
||||
int32_t freq_offset;
|
||||
/// nid2 is the PSS value, the PCI (physical cell id) will be: 3*NID1 (SSS value) + NID2 (PSS value)
|
||||
int32_t nid2;
|
||||
} NR_UE_COMMON;
|
||||
|
||||
#define NR_PRS_IDFT_OVERSAMP_FACTOR 1 // IDFT oversampling factor for NR PRS channel estimates in time domain, ALLOWED value 16x, and 1x is default(ie. IDFT size is frame_params->ofdm_symbol_size)
|
||||
@@ -413,12 +411,6 @@ typedef struct PHY_VARS_NR_UE_s {
|
||||
uint32_t PF;
|
||||
uint32_t PO;
|
||||
|
||||
#if defined(UPGRADE_RAT_NR)
|
||||
|
||||
/// demodulation reference signal for NR PBCH
|
||||
uint32_t dmrs_pbch_bitmap_nr[DMRS_PBCH_I_SSB][DMRS_PBCH_N_HF][DMRS_BITMAP_SIZE];
|
||||
|
||||
#endif
|
||||
// Scrambling IDs used in PUSCH DMRS
|
||||
c16_t X_u[64][839];
|
||||
|
||||
@@ -502,11 +494,6 @@ typedef struct PHY_VARS_NR_UE_s {
|
||||
/// RF and Interface devices per CC
|
||||
openair0_device rfdevice;
|
||||
|
||||
#if ENABLE_RAL
|
||||
hash_table_t *ral_thresholds_timed;
|
||||
SLIST_HEAD(ral_thresholds_gen_poll_s, ral_threshold_phy_t) ral_thresholds_gen_polled[RAL_LINK_PARAM_GEN_MAX];
|
||||
SLIST_HEAD(ral_thresholds_lte_poll_s, ral_threshold_phy_t) ral_thresholds_lte_polled[RAL_LINK_PARAM_LTE_MAX];
|
||||
#endif
|
||||
void* scopeData;
|
||||
// Pointers to hold PDSCH data only for phy simulators
|
||||
void *phy_sim_rxdataF;
|
||||
|
||||
@@ -55,18 +55,6 @@ set(INC_UNIT_TESTS
|
||||
${OPENAIR1_DIR}/SIMULATION/NR_UE_PHY/unit_tests/src/pss_util_test.h
|
||||
)
|
||||
|
||||
add_executable(pss_test ${OPENAIR1_DIR}/SIMULATION/NR_UE_PHY/unit_tests/src/pss_test.c ${SRC_UNIT_TESTS} )
|
||||
target_link_libraries(pss_test
|
||||
-Wl,--start-group UTIL SCHED_NR_UE_LIB PHY PHY_COMMON PHY_UE PHY_NR_UE -Wl,--end-group
|
||||
pthread m ${ATLAS_LIBRARIES}
|
||||
)
|
||||
|
||||
add_executable(sss_test ${OPENAIR1_DIR}/SIMULATION/NR_UE_PHY/unit_tests/src/sss_test.c ${SRC_UNIT_TESTS} )
|
||||
target_link_libraries(sss_test
|
||||
-Wl,--start-group UTIL SCHED_NR_UE_LIB PHY PHY_COMMON PHY_UE PHY_NR_UE -Wl,--end-group
|
||||
pthread m ${ATLAS_LIBRARIES}
|
||||
)
|
||||
|
||||
add_executable(frame_config_test ${OPENAIR1_DIR}/SIMULATION/NR_UE_PHY/unit_tests/src/frame_config_test.c ${SRC_UNIT_TESTS} )
|
||||
target_link_libraries(frame_config_test
|
||||
-Wl,--start-group UTIL SCHED_NR_UE_LIB PHY PHY_COMMON PHY_UE PHY_NR_UE -Wl,--end-group
|
||||
|
||||
@@ -1,179 +0,0 @@
|
||||
PSS TEST
|
||||
----------
|
||||
log init done
|
||||
Start lte_param_init, frame_type 0, extended_prefix 0
|
||||
[PHY][I][nr_init_frame_parms_ue] Initializing frame parms for mu 1, N_RB 106, Ncp 0
|
||||
Initializing UE vars (abstraction 0) for eNB TXant 1, UE RXant 1
|
||||
***********************************
|
||||
PSS NR Test synchronisation
|
||||
***********************************
|
||||
------------------------------------------------
|
||||
Test nr pss with Nid2 0 at position 0
|
||||
[PHY][I][pss_search_time_nr] [UE] nr_synchro_time: Sync source = 0, Peak found at pos 0, val = 232379536 (41 dB)
|
||||
[UE] nr_synchro_time: Sync source = 0, Peak found at pos 0, val = 232379536 (41 dB)
|
||||
PSS NR Test is pass: pss detected at right position
|
||||
------------------------------------------------
|
||||
Test nr pss with Nid2 1 at position 0
|
||||
[PHY][I][pss_search_time_nr] [UE] nr_synchro_time: Sync source = 1, Peak found at pos 0, val = 232105225 (41 dB)
|
||||
[UE] nr_synchro_time: Sync source = 1, Peak found at pos 0, val = 232105225 (41 dB)
|
||||
PSS NR Test is pass: pss detected at right position
|
||||
------------------------------------------------
|
||||
Test nr pss with Nid2 2 at position 0
|
||||
[PHY][I][pss_search_time_nr] [UE] nr_synchro_time: Sync source = 2, Peak found at pos 0, val = 231344100 (41 dB)
|
||||
[UE] nr_synchro_time: Sync source = 2, Peak found at pos 0, val = 231344100 (41 dB)
|
||||
PSS NR Test is pass: pss detected at right position
|
||||
------------------------------------------------
|
||||
Test nr pss with Nid2 0 at position 492
|
||||
[PHY][I][pss_search_time_nr] [UE] nr_synchro_time: Sync source = 0, Peak found at pos 492, val = 232379536 (41 dB)
|
||||
[UE] nr_synchro_time: Sync source = 0, Peak found at pos 492, val = 232379536 (41 dB)
|
||||
PSS NR Test is pass: pss detected at right position
|
||||
------------------------------------------------
|
||||
Test nr pss with Nid2 1 at position 492
|
||||
[PHY][I][pss_search_time_nr] [UE] nr_synchro_time: Sync source = 1, Peak found at pos 492, val = 232105225 (41 dB)
|
||||
[UE] nr_synchro_time: Sync source = 1, Peak found at pos 492, val = 232105225 (41 dB)
|
||||
PSS NR Test is pass: pss detected at right position
|
||||
------------------------------------------------
|
||||
Test nr pss with Nid2 2 at position 492
|
||||
[PHY][I][pss_search_time_nr] [UE] nr_synchro_time: Sync source = 2, Peak found at pos 492, val = 231344100 (41 dB)
|
||||
[UE] nr_synchro_time: Sync source = 2, Peak found at pos 492, val = 231344100 (41 dB)
|
||||
PSS NR Test is pass: pss detected at right position
|
||||
------------------------------------------------
|
||||
Test nr pss with Nid2 0 at position 493
|
||||
[PHY][I][pss_search_time_nr] [UE] nr_synchro_time: Sync source = 0, Peak found at pos 492, val = 230217517 (41 dB)
|
||||
[UE] nr_synchro_time: Sync source = 0, Peak found at pos 492, val = 230217517 (41 dB)
|
||||
PSS NR Test is pass with warning: pss detected with a shift of 1
|
||||
------------------------------------------------
|
||||
Test nr pss with Nid2 1 at position 493
|
||||
[PHY][I][pss_search_time_nr] [UE] nr_synchro_time: Sync source = 1, Peak found at pos 492, val = 230099437 (41 dB)
|
||||
[UE] nr_synchro_time: Sync source = 1, Peak found at pos 492, val = 230099437 (41 dB)
|
||||
PSS NR Test is pass with warning: pss detected with a shift of 1
|
||||
------------------------------------------------
|
||||
Test nr pss with Nid2 2 at position 493
|
||||
[PHY][I][pss_search_time_nr] [UE] nr_synchro_time: Sync source = 2, Peak found at pos 492, val = 229165600 (41 dB)
|
||||
[UE] nr_synchro_time: Sync source = 2, Peak found at pos 492, val = 229165600 (41 dB)
|
||||
PSS NR Test is pass with warning: pss detected with a shift of 1
|
||||
------------------------------------------------
|
||||
Test nr pss with Nid2 0 at position 56788
|
||||
[PHY][I][pss_search_time_nr] [UE] nr_synchro_time: Sync source = 0, Peak found at pos 56788, val = 232379536 (41 dB)
|
||||
[UE] nr_synchro_time: Sync source = 0, Peak found at pos 56788, val = 232379536 (41 dB)
|
||||
PSS NR Test is pass: pss detected at right position
|
||||
------------------------------------------------
|
||||
Test nr pss with Nid2 1 at position 56788
|
||||
[PHY][I][pss_search_time_nr] [UE] nr_synchro_time: Sync source = 1, Peak found at pos 56788, val = 232105225 (41 dB)
|
||||
[UE] nr_synchro_time: Sync source = 1, Peak found at pos 56788, val = 232105225 (41 dB)
|
||||
PSS NR Test is pass: pss detected at right position
|
||||
------------------------------------------------
|
||||
Test nr pss with Nid2 2 at position 56788
|
||||
[PHY][I][pss_search_time_nr] [UE] nr_synchro_time: Sync source = 2, Peak found at pos 56788, val = 231344100 (41 dB)
|
||||
[UE] nr_synchro_time: Sync source = 2, Peak found at pos 56788, val = 231344100 (41 dB)
|
||||
PSS NR Test is pass: pss detected at right position
|
||||
------------------------------------------------
|
||||
Test nr pss with Nid2 0 at position 56888
|
||||
[PHY][I][pss_search_time_nr] [UE] nr_synchro_time: Sync source = 0, Peak found at pos 56888, val = 232379536 (41 dB)
|
||||
[UE] nr_synchro_time: Sync source = 0, Peak found at pos 56888, val = 232379536 (41 dB)
|
||||
PSS NR Test is pass: pss detected at right position
|
||||
------------------------------------------------
|
||||
Test nr pss with Nid2 1 at position 56888
|
||||
[PHY][I][pss_search_time_nr] [UE] nr_synchro_time: Sync source = 1, Peak found at pos 56888, val = 232105225 (41 dB)
|
||||
[UE] nr_synchro_time: Sync source = 1, Peak found at pos 56888, val = 232105225 (41 dB)
|
||||
PSS NR Test is pass: pss detected at right position
|
||||
------------------------------------------------
|
||||
Test nr pss with Nid2 2 at position 56888
|
||||
[PHY][I][pss_search_time_nr] [UE] nr_synchro_time: Sync source = 2, Peak found at pos 56888, val = 231344100 (41 dB)
|
||||
[UE] nr_synchro_time: Sync source = 2, Peak found at pos 56888, val = 231344100 (41 dB)
|
||||
PSS NR Test is pass: pss detected at right position
|
||||
------------------------------------------------
|
||||
Test nr pss with Nid2 0 at position 111111
|
||||
[PHY][I][pss_search_time_nr] [UE] nr_synchro_time: Sync source = 0, Peak found at pos 111112, val = 230349320 (41 dB)
|
||||
[UE] nr_synchro_time: Sync source = 0, Peak found at pos 111112, val = 230349320 (41 dB)
|
||||
PSS NR Test is pass with warning: pss detected with a shift of 1
|
||||
------------------------------------------------
|
||||
Test nr pss with Nid2 1 at position 111111
|
||||
[PHY][I][pss_search_time_nr] [UE] nr_synchro_time: Sync source = 1, Peak found at pos 111112, val = 230409881 (41 dB)
|
||||
[UE] nr_synchro_time: Sync source = 1, Peak found at pos 111112, val = 230409881 (41 dB)
|
||||
PSS NR Test is pass with warning: pss detected with a shift of 1
|
||||
------------------------------------------------
|
||||
Test nr pss with Nid2 2 at position 111111
|
||||
[PHY][I][pss_search_time_nr] [UE] nr_synchro_time: Sync source = 2, Peak found at pos 111112, val = 229601794 (41 dB)
|
||||
[UE] nr_synchro_time: Sync source = 2, Peak found at pos 111112, val = 229601794 (41 dB)
|
||||
PSS NR Test is pass with warning: pss detected with a shift of 1
|
||||
------------------------------------------------
|
||||
Test nr pss with Nid2 0 at position 151234
|
||||
[PHY][I][pss_search_time_nr] [UE] nr_synchro_time: Sync source = 0, Peak found at pos 151236, val = 219912170 (41 dB)
|
||||
[UE] nr_synchro_time: Sync source = 0, Peak found at pos 151236, val = 219912170 (41 dB)
|
||||
PSS NR Test is pass with warning: pss detected with a shift of 2
|
||||
------------------------------------------------
|
||||
Test nr pss with Nid2 1 at position 151234
|
||||
[PHY][I][pss_search_time_nr] [UE] nr_synchro_time: Sync source = 1, Peak found at pos 151236, val = 219714314 (41 dB)
|
||||
[UE] nr_synchro_time: Sync source = 1, Peak found at pos 151236, val = 219714314 (41 dB)
|
||||
PSS NR Test is pass with warning: pss detected with a shift of 2
|
||||
------------------------------------------------
|
||||
Test nr pss with Nid2 2 at position 151234
|
||||
[PHY][I][pss_search_time_nr] [UE] nr_synchro_time: Sync source = 2, Peak found at pos 151236, val = 219588850 (41 dB)
|
||||
[UE] nr_synchro_time: Sync source = 2, Peak found at pos 151236, val = 219588850 (41 dB)
|
||||
PSS NR Test is pass with warning: pss detected with a shift of 2
|
||||
------------------------------------------------
|
||||
Test nr pss with Nid2 0 at position 151500
|
||||
[PHY][I][pss_search_time_nr] [UE] nr_synchro_time: Sync source = 0, Peak found at pos 151500, val = 232379536 (41 dB)
|
||||
[UE] nr_synchro_time: Sync source = 0, Peak found at pos 151500, val = 232379536 (41 dB)
|
||||
PSS NR Test is pass: pss detected at right position
|
||||
------------------------------------------------
|
||||
Test nr pss with Nid2 1 at position 151500
|
||||
[PHY][I][pss_search_time_nr] [UE] nr_synchro_time: Sync source = 1, Peak found at pos 151500, val = 232105225 (41 dB)
|
||||
[UE] nr_synchro_time: Sync source = 1, Peak found at pos 151500, val = 232105225 (41 dB)
|
||||
PSS NR Test is pass: pss detected at right position
|
||||
------------------------------------------------
|
||||
Test nr pss with Nid2 2 at position 151500
|
||||
[PHY][I][pss_search_time_nr] [UE] nr_synchro_time: Sync source = 2, Peak found at pos 151500, val = 231344100 (41 dB)
|
||||
[UE] nr_synchro_time: Sync source = 2, Peak found at pos 151500, val = 231344100 (41 dB)
|
||||
PSS NR Test is pass: pss detected at right position
|
||||
------------------------------------------------
|
||||
Test nr pss with Nid2 0 at position 200000
|
||||
[PHY][I][pss_search_time_nr] [UE] nr_synchro_time: Sync source = 0, Peak found at pos 200000, val = 232379536 (41 dB)
|
||||
[UE] nr_synchro_time: Sync source = 0, Peak found at pos 200000, val = 232379536 (41 dB)
|
||||
PSS NR Test is pass: pss detected at right position
|
||||
------------------------------------------------
|
||||
Test nr pss with Nid2 1 at position 200000
|
||||
[PHY][I][pss_search_time_nr] [UE] nr_synchro_time: Sync source = 1, Peak found at pos 200000, val = 232105225 (41 dB)
|
||||
[UE] nr_synchro_time: Sync source = 1, Peak found at pos 200000, val = 232105225 (41 dB)
|
||||
PSS NR Test is pass: pss detected at right position
|
||||
------------------------------------------------
|
||||
Test nr pss with Nid2 2 at position 200000
|
||||
[PHY][I][pss_search_time_nr] [UE] nr_synchro_time: Sync source = 2, Peak found at pos 200000, val = 231344100 (41 dB)
|
||||
[UE] nr_synchro_time: Sync source = 2, Peak found at pos 200000, val = 231344100 (41 dB)
|
||||
PSS NR Test is pass: pss detected at right position
|
||||
------------------------------------------------
|
||||
Test nr pss with Nid2 0 at position 250004
|
||||
[PHY][I][pss_search_time_nr] [UE] nr_synchro_time: Sync source = 0, Peak found at pos 250004, val = 232379536 (41 dB)
|
||||
[UE] nr_synchro_time: Sync source = 0, Peak found at pos 250004, val = 232379536 (41 dB)
|
||||
PSS NR Test is pass: pss detected at right position
|
||||
------------------------------------------------
|
||||
Test nr pss with Nid2 1 at position 250004
|
||||
[PHY][I][pss_search_time_nr] [UE] nr_synchro_time: Sync source = 1, Peak found at pos 250004, val = 232105225 (41 dB)
|
||||
[UE] nr_synchro_time: Sync source = 1, Peak found at pos 250004, val = 232105225 (41 dB)
|
||||
PSS NR Test is pass: pss detected at right position
|
||||
------------------------------------------------
|
||||
Test nr pss with Nid2 2 at position 250004
|
||||
[PHY][I][pss_search_time_nr] [UE] nr_synchro_time: Sync source = 2, Peak found at pos 250004, val = 231344100 (41 dB)
|
||||
[UE] nr_synchro_time: Sync source = 2, Peak found at pos 250004, val = 231344100 (41 dB)
|
||||
PSS NR Test is pass: pss detected at right position
|
||||
------------------------------------------------
|
||||
Test nr pss with Nid2 0 at position 305152
|
||||
[PHY][I][pss_search_time_nr] [UE] nr_synchro_time: Sync source = 0, Peak found at pos 305148, val = 185066768 (41 dB)
|
||||
[UE] nr_synchro_time: Sync source = 0, Peak found at pos 305148, val = 185066768 (41 dB)
|
||||
PSS NR Test is pass with warning: pss detected with a shift of 4
|
||||
------------------------------------------------
|
||||
Test nr pss with Nid2 1 at position 305152
|
||||
[PHY][I][pss_search_time_nr] [UE] nr_synchro_time: Sync source = 1, Peak found at pos 305148, val = 185490842 (41 dB)
|
||||
[UE] nr_synchro_time: Sync source = 1, Peak found at pos 305148, val = 185490842 (41 dB)
|
||||
PSS NR Test is pass with warning: pss detected with a shift of 4
|
||||
------------------------------------------------
|
||||
Test nr pss with Nid2 2 at position 305152
|
||||
[PHY][I][pss_search_time_nr] [UE] nr_synchro_time: Sync source = 2, Peak found at pos 305148, val = 185637380 (41 dB)
|
||||
[UE] nr_synchro_time: Sync source = 2, Peak found at pos 305148, val = 185637380 (41 dB)
|
||||
PSS NR Test is pass with warning: pss detected with a shift of 4
|
||||
|
||||
PSS NR Number of tests : 33 Pass : 21 Pass with warning : 12 Fail : 0
|
||||
|
||||
PSS NR Synchronisaton test is terminated.
|
||||
|
||||
@@ -1,709 +0,0 @@
|
||||
SSS TEST
|
||||
----------
|
||||
log init done
|
||||
Start lte_param_init, frame_type 0, extended_prefix 0
|
||||
[PHY][I][nr_init_frame_parms_ue] Initializing frame parms for mu 1, N_RB 106, Ncp 0
|
||||
Initializing UE vars (abstraction 0) for eNB TXant 1, UE RXant 1
|
||||
***********************************
|
||||
SSS NR Test synchronisation
|
||||
***********************************
|
||||
------------------------------------------------
|
||||
Test nr pss with Nid2 0 at position 0
|
||||
[PHY][I][pss_search_time_nr] [UE] nr_synchro_time: Sync source = 0, Peak found at pos 0, val = 232379536 (41 dB)
|
||||
[UE] nr_synchro_time: Sync source = 0, Peak found at pos 0, val = 232379536 (41 dB)
|
||||
Test nr sss with Nid1 0
|
||||
(phase,Nid1) (0,0), metric_phase -201728 tot_metric -201728, phase_max 0
|
||||
(phase,Nid1) (0,1), metric_phase 2048 tot_metric 2048, phase_max 0
|
||||
(phase,Nid1) (0,3), metric_phase 18432 tot_metric 18432, phase_max 0
|
||||
(phase,Nid1) (0,8), metric_phase 19456 tot_metric 19456, phase_max 0
|
||||
(phase,Nid1) (0,13), metric_phase 22528 tot_metric 22528, phase_max 0
|
||||
(phase,Nid1) (0,113), metric_phase 43008 tot_metric 43008, phase_max 0
|
||||
(phase,Nid1) (0,135), metric_phase 45056 tot_metric 45056, phase_max 0
|
||||
(phase,Nid1) (0,287), metric_phase 46080 tot_metric 46080, phase_max 0
|
||||
(phase,Nid1) (1,0), metric_phase 48128 tot_metric 48128, phase_max 1
|
||||
(phase,Nid1) (2,0), metric_phase 310272 tot_metric 310272, phase_max 2
|
||||
(phase,Nid1) (3,0), metric_phase 498176 tot_metric 498176, phase_max 3
|
||||
(phase,Nid1) (4,0), metric_phase 642048 tot_metric 642048, phase_max 4
|
||||
(phase,Nid1) (5,0), metric_phase 760832 tot_metric 760832, phase_max 5
|
||||
Nid2 0 Nid1 0 tot_metric 760832, phase_max 5
|
||||
SSS NR Test is pass with warning due to phase difference 5 (instead of 3) offset 0 Nid1 0 Nid2 0
|
||||
------------------------------------------------
|
||||
Test nr pss with Nid2 0 at position 492
|
||||
[PHY][I][pss_search_time_nr] [UE] nr_synchro_time: Sync source = 0, Peak found at pos 492, val = 232379536 (41 dB)
|
||||
[UE] nr_synchro_time: Sync source = 0, Peak found at pos 492, val = 232379536 (41 dB)
|
||||
Test nr sss with Nid1 0
|
||||
(phase,Nid1) (0,0), metric_phase -201728 tot_metric -201728, phase_max 0
|
||||
(phase,Nid1) (0,1), metric_phase 2048 tot_metric 2048, phase_max 0
|
||||
(phase,Nid1) (0,3), metric_phase 18432 tot_metric 18432, phase_max 0
|
||||
(phase,Nid1) (0,8), metric_phase 19456 tot_metric 19456, phase_max 0
|
||||
(phase,Nid1) (0,13), metric_phase 22528 tot_metric 22528, phase_max 0
|
||||
(phase,Nid1) (0,113), metric_phase 43008 tot_metric 43008, phase_max 0
|
||||
(phase,Nid1) (0,135), metric_phase 45056 tot_metric 45056, phase_max 0
|
||||
(phase,Nid1) (0,287), metric_phase 46080 tot_metric 46080, phase_max 0
|
||||
(phase,Nid1) (1,0), metric_phase 48128 tot_metric 48128, phase_max 1
|
||||
(phase,Nid1) (2,0), metric_phase 310272 tot_metric 310272, phase_max 2
|
||||
(phase,Nid1) (3,0), metric_phase 498176 tot_metric 498176, phase_max 3
|
||||
(phase,Nid1) (4,0), metric_phase 642048 tot_metric 642048, phase_max 4
|
||||
(phase,Nid1) (5,0), metric_phase 760832 tot_metric 760832, phase_max 5
|
||||
Nid2 0 Nid1 0 tot_metric 760832, phase_max 5
|
||||
SSS NR Test is pass with warning due to phase difference 5 (instead of 3) offset 492 Nid1 0 Nid2 0
|
||||
------------------------------------------------
|
||||
Test nr pss with Nid2 0 at position 493
|
||||
[PHY][I][pss_search_time_nr] [UE] nr_synchro_time: Sync source = 0, Peak found at pos 492, val = 230217517 (41 dB)
|
||||
[UE] nr_synchro_time: Sync source = 0, Peak found at pos 492, val = 230217517 (41 dB)
|
||||
Test nr sss with Nid1 0
|
||||
(phase,Nid1) (0,0), metric_phase -201728 tot_metric -201728, phase_max 0
|
||||
(phase,Nid1) (0,1), metric_phase 2048 tot_metric 2048, phase_max 0
|
||||
(phase,Nid1) (0,3), metric_phase 18432 tot_metric 18432, phase_max 0
|
||||
(phase,Nid1) (0,8), metric_phase 19456 tot_metric 19456, phase_max 0
|
||||
(phase,Nid1) (0,13), metric_phase 22528 tot_metric 22528, phase_max 0
|
||||
(phase,Nid1) (0,113), metric_phase 43008 tot_metric 43008, phase_max 0
|
||||
(phase,Nid1) (0,135), metric_phase 45056 tot_metric 45056, phase_max 0
|
||||
(phase,Nid1) (0,287), metric_phase 46080 tot_metric 46080, phase_max 0
|
||||
(phase,Nid1) (1,0), metric_phase 48128 tot_metric 48128, phase_max 1
|
||||
(phase,Nid1) (2,0), metric_phase 310272 tot_metric 310272, phase_max 2
|
||||
(phase,Nid1) (3,0), metric_phase 498176 tot_metric 498176, phase_max 3
|
||||
(phase,Nid1) (4,0), metric_phase 642048 tot_metric 642048, phase_max 4
|
||||
(phase,Nid1) (5,0), metric_phase 760832 tot_metric 760832, phase_max 5
|
||||
Nid2 0 Nid1 0 tot_metric 760832, phase_max 5
|
||||
SSS NR Test is pass with warning due to phase difference 5 (instead of 3) offset 493 Nid1 0 Nid2 0
|
||||
------------------------------------------------
|
||||
Test nr pss with Nid2 0 at position 56788
|
||||
[PHY][I][pss_search_time_nr] [UE] nr_synchro_time: Sync source = 0, Peak found at pos 56788, val = 232379536 (41 dB)
|
||||
[UE] nr_synchro_time: Sync source = 0, Peak found at pos 56788, val = 232379536 (41 dB)
|
||||
Test nr sss with Nid1 0
|
||||
(phase,Nid1) (0,0), metric_phase -201728 tot_metric -201728, phase_max 0
|
||||
(phase,Nid1) (0,1), metric_phase 2048 tot_metric 2048, phase_max 0
|
||||
(phase,Nid1) (0,3), metric_phase 18432 tot_metric 18432, phase_max 0
|
||||
(phase,Nid1) (0,8), metric_phase 19456 tot_metric 19456, phase_max 0
|
||||
(phase,Nid1) (0,13), metric_phase 22528 tot_metric 22528, phase_max 0
|
||||
(phase,Nid1) (0,113), metric_phase 43008 tot_metric 43008, phase_max 0
|
||||
(phase,Nid1) (0,135), metric_phase 45056 tot_metric 45056, phase_max 0
|
||||
(phase,Nid1) (0,287), metric_phase 46080 tot_metric 46080, phase_max 0
|
||||
(phase,Nid1) (1,0), metric_phase 48128 tot_metric 48128, phase_max 1
|
||||
(phase,Nid1) (2,0), metric_phase 310272 tot_metric 310272, phase_max 2
|
||||
(phase,Nid1) (3,0), metric_phase 498176 tot_metric 498176, phase_max 3
|
||||
(phase,Nid1) (4,0), metric_phase 642048 tot_metric 642048, phase_max 4
|
||||
(phase,Nid1) (5,0), metric_phase 760832 tot_metric 760832, phase_max 5
|
||||
Nid2 0 Nid1 0 tot_metric 760832, phase_max 5
|
||||
SSS NR Test is pass with warning due to phase difference 5 (instead of 3) offset 56788 Nid1 0 Nid2 0
|
||||
------------------------------------------------
|
||||
Test nr pss with Nid2 0 at position 111111
|
||||
[PHY][I][pss_search_time_nr] [UE] nr_synchro_time: Sync source = 0, Peak found at pos 111112, val = 230349320 (41 dB)
|
||||
[UE] nr_synchro_time: Sync source = 0, Peak found at pos 111112, val = 230349320 (41 dB)
|
||||
Test nr sss with Nid1 0
|
||||
(phase,Nid1) (0,0), metric_phase -201728 tot_metric -201728, phase_max 0
|
||||
(phase,Nid1) (0,1), metric_phase 2048 tot_metric 2048, phase_max 0
|
||||
(phase,Nid1) (0,3), metric_phase 18432 tot_metric 18432, phase_max 0
|
||||
(phase,Nid1) (0,8), metric_phase 19456 tot_metric 19456, phase_max 0
|
||||
(phase,Nid1) (0,13), metric_phase 22528 tot_metric 22528, phase_max 0
|
||||
(phase,Nid1) (0,113), metric_phase 43008 tot_metric 43008, phase_max 0
|
||||
(phase,Nid1) (0,135), metric_phase 45056 tot_metric 45056, phase_max 0
|
||||
(phase,Nid1) (0,287), metric_phase 46080 tot_metric 46080, phase_max 0
|
||||
(phase,Nid1) (1,0), metric_phase 48128 tot_metric 48128, phase_max 1
|
||||
(phase,Nid1) (2,0), metric_phase 310272 tot_metric 310272, phase_max 2
|
||||
(phase,Nid1) (3,0), metric_phase 498176 tot_metric 498176, phase_max 3
|
||||
(phase,Nid1) (4,0), metric_phase 642048 tot_metric 642048, phase_max 4
|
||||
(phase,Nid1) (5,0), metric_phase 760832 tot_metric 760832, phase_max 5
|
||||
Nid2 0 Nid1 0 tot_metric 760832, phase_max 5
|
||||
SSS NR Test is pass with warning due to phase difference 5 (instead of 3) offset 111111 Nid1 0 Nid2 0
|
||||
------------------------------------------------
|
||||
Test nr pss with Nid2 0 at position 222222
|
||||
[PHY][I][pss_search_time_nr] [UE] nr_synchro_time: Sync source = 0, Peak found at pos 222224, val = 219912170 (41 dB)
|
||||
[UE] nr_synchro_time: Sync source = 0, Peak found at pos 222224, val = 219912170 (41 dB)
|
||||
Test nr sss with Nid1 0
|
||||
(phase,Nid1) (0,0), metric_phase -201728 tot_metric -201728, phase_max 0
|
||||
(phase,Nid1) (0,1), metric_phase 2048 tot_metric 2048, phase_max 0
|
||||
(phase,Nid1) (0,3), metric_phase 18432 tot_metric 18432, phase_max 0
|
||||
(phase,Nid1) (0,8), metric_phase 19456 tot_metric 19456, phase_max 0
|
||||
(phase,Nid1) (0,13), metric_phase 22528 tot_metric 22528, phase_max 0
|
||||
(phase,Nid1) (0,113), metric_phase 43008 tot_metric 43008, phase_max 0
|
||||
(phase,Nid1) (0,135), metric_phase 45056 tot_metric 45056, phase_max 0
|
||||
(phase,Nid1) (0,287), metric_phase 46080 tot_metric 46080, phase_max 0
|
||||
(phase,Nid1) (1,0), metric_phase 48128 tot_metric 48128, phase_max 1
|
||||
(phase,Nid1) (2,0), metric_phase 310272 tot_metric 310272, phase_max 2
|
||||
(phase,Nid1) (3,0), metric_phase 498176 tot_metric 498176, phase_max 3
|
||||
(phase,Nid1) (4,0), metric_phase 642048 tot_metric 642048, phase_max 4
|
||||
(phase,Nid1) (5,0), metric_phase 760832 tot_metric 760832, phase_max 5
|
||||
Nid2 0 Nid1 0 tot_metric 760832, phase_max 5
|
||||
SSS NR Test is pass with warning due to phase difference 5 (instead of 3) offset 222222 Nid1 0 Nid2 0
|
||||
------------------------------------------------
|
||||
Test nr pss with Nid2 0 at position 0
|
||||
[PHY][I][pss_search_time_nr] [UE] nr_synchro_time: Sync source = 0, Peak found at pos 0, val = 232379536 (41 dB)
|
||||
[UE] nr_synchro_time: Sync source = 0, Peak found at pos 0, val = 232379536 (41 dB)
|
||||
Test nr sss with Nid1 71
|
||||
(phase,Nid1) (0,0), metric_phase -14336 tot_metric -14336, phase_max 0
|
||||
(phase,Nid1) (0,1), metric_phase 2048 tot_metric 2048, phase_max 0
|
||||
(phase,Nid1) (0,3), metric_phase 18432 tot_metric 18432, phase_max 0
|
||||
(phase,Nid1) (0,8), metric_phase 20480 tot_metric 20480, phase_max 0
|
||||
(phase,Nid1) (0,23), metric_phase 22528 tot_metric 22528, phase_max 0
|
||||
(phase,Nid1) (0,79), metric_phase 23552 tot_metric 23552, phase_max 0
|
||||
(phase,Nid1) (0,113), metric_phase 46080 tot_metric 46080, phase_max 0
|
||||
(phase,Nid1) (0,226), metric_phase 47104 tot_metric 47104, phase_max 0
|
||||
(phase,Nid1) (1,71), metric_phase 60928 tot_metric 60928, phase_max 1
|
||||
(phase,Nid1) (2,71), metric_phase 324608 tot_metric 324608, phase_max 2
|
||||
(phase,Nid1) (3,71), metric_phase 509440 tot_metric 509440, phase_max 3
|
||||
(phase,Nid1) (4,71), metric_phase 650240 tot_metric 650240, phase_max 4
|
||||
(phase,Nid1) (5,71), metric_phase 770560 tot_metric 770560, phase_max 5
|
||||
Nid2 0 Nid1 71 tot_metric 770560, phase_max 5
|
||||
SSS NR Test is pass with warning due to phase difference 5 (instead of 3) offset 0 Nid1 71 Nid2 0
|
||||
------------------------------------------------
|
||||
Test nr pss with Nid2 0 at position 492
|
||||
[PHY][I][pss_search_time_nr] [UE] nr_synchro_time: Sync source = 0, Peak found at pos 492, val = 232379536 (41 dB)
|
||||
[UE] nr_synchro_time: Sync source = 0, Peak found at pos 492, val = 232379536 (41 dB)
|
||||
Test nr sss with Nid1 71
|
||||
(phase,Nid1) (0,0), metric_phase -14336 tot_metric -14336, phase_max 0
|
||||
(phase,Nid1) (0,1), metric_phase 2048 tot_metric 2048, phase_max 0
|
||||
(phase,Nid1) (0,3), metric_phase 18432 tot_metric 18432, phase_max 0
|
||||
(phase,Nid1) (0,8), metric_phase 20480 tot_metric 20480, phase_max 0
|
||||
(phase,Nid1) (0,23), metric_phase 22528 tot_metric 22528, phase_max 0
|
||||
(phase,Nid1) (0,79), metric_phase 23552 tot_metric 23552, phase_max 0
|
||||
(phase,Nid1) (0,113), metric_phase 46080 tot_metric 46080, phase_max 0
|
||||
(phase,Nid1) (0,226), metric_phase 47104 tot_metric 47104, phase_max 0
|
||||
(phase,Nid1) (1,71), metric_phase 60928 tot_metric 60928, phase_max 1
|
||||
(phase,Nid1) (2,71), metric_phase 324608 tot_metric 324608, phase_max 2
|
||||
(phase,Nid1) (3,71), metric_phase 509440 tot_metric 509440, phase_max 3
|
||||
(phase,Nid1) (4,71), metric_phase 650240 tot_metric 650240, phase_max 4
|
||||
(phase,Nid1) (5,71), metric_phase 770560 tot_metric 770560, phase_max 5
|
||||
Nid2 0 Nid1 71 tot_metric 770560, phase_max 5
|
||||
SSS NR Test is pass with warning due to phase difference 5 (instead of 3) offset 492 Nid1 71 Nid2 0
|
||||
------------------------------------------------
|
||||
Test nr pss with Nid2 0 at position 493
|
||||
[PHY][I][pss_search_time_nr] [UE] nr_synchro_time: Sync source = 0, Peak found at pos 492, val = 230217517 (41 dB)
|
||||
[UE] nr_synchro_time: Sync source = 0, Peak found at pos 492, val = 230217517 (41 dB)
|
||||
Test nr sss with Nid1 71
|
||||
(phase,Nid1) (0,0), metric_phase -14336 tot_metric -14336, phase_max 0
|
||||
(phase,Nid1) (0,1), metric_phase 2048 tot_metric 2048, phase_max 0
|
||||
(phase,Nid1) (0,3), metric_phase 18432 tot_metric 18432, phase_max 0
|
||||
(phase,Nid1) (0,8), metric_phase 20480 tot_metric 20480, phase_max 0
|
||||
(phase,Nid1) (0,23), metric_phase 22528 tot_metric 22528, phase_max 0
|
||||
(phase,Nid1) (0,79), metric_phase 23552 tot_metric 23552, phase_max 0
|
||||
(phase,Nid1) (0,113), metric_phase 46080 tot_metric 46080, phase_max 0
|
||||
(phase,Nid1) (0,226), metric_phase 47104 tot_metric 47104, phase_max 0
|
||||
(phase,Nid1) (1,71), metric_phase 60928 tot_metric 60928, phase_max 1
|
||||
(phase,Nid1) (2,71), metric_phase 324608 tot_metric 324608, phase_max 2
|
||||
(phase,Nid1) (3,71), metric_phase 509440 tot_metric 509440, phase_max 3
|
||||
(phase,Nid1) (4,71), metric_phase 650240 tot_metric 650240, phase_max 4
|
||||
(phase,Nid1) (5,71), metric_phase 770560 tot_metric 770560, phase_max 5
|
||||
Nid2 0 Nid1 71 tot_metric 770560, phase_max 5
|
||||
SSS NR Test is pass with warning due to phase difference 5 (instead of 3) offset 493 Nid1 71 Nid2 0
|
||||
------------------------------------------------
|
||||
Test nr pss with Nid2 0 at position 56788
|
||||
[PHY][I][pss_search_time_nr] [UE] nr_synchro_time: Sync source = 0, Peak found at pos 56788, val = 232379536 (41 dB)
|
||||
[UE] nr_synchro_time: Sync source = 0, Peak found at pos 56788, val = 232379536 (41 dB)
|
||||
Test nr sss with Nid1 71
|
||||
(phase,Nid1) (0,0), metric_phase -14336 tot_metric -14336, phase_max 0
|
||||
(phase,Nid1) (0,1), metric_phase 2048 tot_metric 2048, phase_max 0
|
||||
(phase,Nid1) (0,3), metric_phase 18432 tot_metric 18432, phase_max 0
|
||||
(phase,Nid1) (0,8), metric_phase 20480 tot_metric 20480, phase_max 0
|
||||
(phase,Nid1) (0,23), metric_phase 22528 tot_metric 22528, phase_max 0
|
||||
(phase,Nid1) (0,79), metric_phase 23552 tot_metric 23552, phase_max 0
|
||||
(phase,Nid1) (0,113), metric_phase 46080 tot_metric 46080, phase_max 0
|
||||
(phase,Nid1) (0,226), metric_phase 47104 tot_metric 47104, phase_max 0
|
||||
(phase,Nid1) (1,71), metric_phase 60928 tot_metric 60928, phase_max 1
|
||||
(phase,Nid1) (2,71), metric_phase 324608 tot_metric 324608, phase_max 2
|
||||
(phase,Nid1) (3,71), metric_phase 509440 tot_metric 509440, phase_max 3
|
||||
(phase,Nid1) (4,71), metric_phase 650240 tot_metric 650240, phase_max 4
|
||||
(phase,Nid1) (5,71), metric_phase 770560 tot_metric 770560, phase_max 5
|
||||
Nid2 0 Nid1 71 tot_metric 770560, phase_max 5
|
||||
SSS NR Test is pass with warning due to phase difference 5 (instead of 3) offset 56788 Nid1 71 Nid2 0
|
||||
------------------------------------------------
|
||||
Test nr pss with Nid2 0 at position 111111
|
||||
[PHY][I][pss_search_time_nr] [UE] nr_synchro_time: Sync source = 0, Peak found at pos 111112, val = 230349320 (41 dB)
|
||||
[UE] nr_synchro_time: Sync source = 0, Peak found at pos 111112, val = 230349320 (41 dB)
|
||||
Test nr sss with Nid1 71
|
||||
(phase,Nid1) (0,0), metric_phase -14336 tot_metric -14336, phase_max 0
|
||||
(phase,Nid1) (0,1), metric_phase 2048 tot_metric 2048, phase_max 0
|
||||
(phase,Nid1) (0,3), metric_phase 18432 tot_metric 18432, phase_max 0
|
||||
(phase,Nid1) (0,8), metric_phase 20480 tot_metric 20480, phase_max 0
|
||||
(phase,Nid1) (0,23), metric_phase 22528 tot_metric 22528, phase_max 0
|
||||
(phase,Nid1) (0,79), metric_phase 23552 tot_metric 23552, phase_max 0
|
||||
(phase,Nid1) (0,113), metric_phase 46080 tot_metric 46080, phase_max 0
|
||||
(phase,Nid1) (0,226), metric_phase 47104 tot_metric 47104, phase_max 0
|
||||
(phase,Nid1) (1,71), metric_phase 60928 tot_metric 60928, phase_max 1
|
||||
(phase,Nid1) (2,71), metric_phase 324608 tot_metric 324608, phase_max 2
|
||||
(phase,Nid1) (3,71), metric_phase 509440 tot_metric 509440, phase_max 3
|
||||
(phase,Nid1) (4,71), metric_phase 650240 tot_metric 650240, phase_max 4
|
||||
(phase,Nid1) (5,71), metric_phase 770560 tot_metric 770560, phase_max 5
|
||||
Nid2 0 Nid1 71 tot_metric 770560, phase_max 5
|
||||
SSS NR Test is pass with warning due to phase difference 5 (instead of 3) offset 111111 Nid1 71 Nid2 0
|
||||
------------------------------------------------
|
||||
Test nr pss with Nid2 0 at position 222222
|
||||
[PHY][I][pss_search_time_nr] [UE] nr_synchro_time: Sync source = 0, Peak found at pos 222224, val = 219912170 (41 dB)
|
||||
[UE] nr_synchro_time: Sync source = 0, Peak found at pos 222224, val = 219912170 (41 dB)
|
||||
Test nr sss with Nid1 71
|
||||
(phase,Nid1) (0,0), metric_phase -14336 tot_metric -14336, phase_max 0
|
||||
(phase,Nid1) (0,1), metric_phase 2048 tot_metric 2048, phase_max 0
|
||||
(phase,Nid1) (0,3), metric_phase 18432 tot_metric 18432, phase_max 0
|
||||
(phase,Nid1) (0,8), metric_phase 20480 tot_metric 20480, phase_max 0
|
||||
(phase,Nid1) (0,23), metric_phase 22528 tot_metric 22528, phase_max 0
|
||||
(phase,Nid1) (0,79), metric_phase 23552 tot_metric 23552, phase_max 0
|
||||
(phase,Nid1) (0,113), metric_phase 46080 tot_metric 46080, phase_max 0
|
||||
(phase,Nid1) (0,226), metric_phase 47104 tot_metric 47104, phase_max 0
|
||||
(phase,Nid1) (1,71), metric_phase 60928 tot_metric 60928, phase_max 1
|
||||
(phase,Nid1) (2,71), metric_phase 324608 tot_metric 324608, phase_max 2
|
||||
(phase,Nid1) (3,71), metric_phase 509440 tot_metric 509440, phase_max 3
|
||||
(phase,Nid1) (4,71), metric_phase 650240 tot_metric 650240, phase_max 4
|
||||
(phase,Nid1) (5,71), metric_phase 770560 tot_metric 770560, phase_max 5
|
||||
Nid2 0 Nid1 71 tot_metric 770560, phase_max 5
|
||||
SSS NR Test is pass with warning due to phase difference 5 (instead of 3) offset 222222 Nid1 71 Nid2 0
|
||||
------------------------------------------------
|
||||
Test nr pss with Nid2 2 at position 0
|
||||
[PHY][I][pss_search_time_nr] [UE] nr_synchro_time: Sync source = 2, Peak found at pos 0, val = 231344100 (41 dB)
|
||||
[UE] nr_synchro_time: Sync source = 2, Peak found at pos 0, val = 231344100 (41 dB)
|
||||
Test nr sss with Nid1 21
|
||||
(phase,Nid1) (0,0), metric_phase 19456 tot_metric 19456, phase_max 0
|
||||
(phase,Nid1) (0,8), metric_phase 21504 tot_metric 21504, phase_max 0
|
||||
(phase,Nid1) (0,13), metric_phase 23552 tot_metric 23552, phase_max 0
|
||||
(phase,Nid1) (0,88), metric_phase 24576 tot_metric 24576, phase_max 0
|
||||
(phase,Nid1) (0,124), metric_phase 41984 tot_metric 41984, phase_max 0
|
||||
(phase,Nid1) (0,135), metric_phase 46080 tot_metric 46080, phase_max 0
|
||||
(phase,Nid1) (0,319), metric_phase 47104 tot_metric 47104, phase_max 0
|
||||
(phase,Nid1) (2,21), metric_phase 308736 tot_metric 308736, phase_max 2
|
||||
(phase,Nid1) (3,21), metric_phase 494592 tot_metric 494592, phase_max 3
|
||||
(phase,Nid1) (4,21), metric_phase 642048 tot_metric 642048, phase_max 4
|
||||
(phase,Nid1) (5,21), metric_phase 759808 tot_metric 759808, phase_max 5
|
||||
Nid2 2 Nid1 21 tot_metric 759808, phase_max 5
|
||||
SSS NR Test is pass with warning due to phase difference 5 (instead of 3) offset 0 Nid1 21 Nid2 2
|
||||
------------------------------------------------
|
||||
Test nr pss with Nid2 2 at position 492
|
||||
[PHY][I][pss_search_time_nr] [UE] nr_synchro_time: Sync source = 2, Peak found at pos 492, val = 231344100 (41 dB)
|
||||
[UE] nr_synchro_time: Sync source = 2, Peak found at pos 492, val = 231344100 (41 dB)
|
||||
Test nr sss with Nid1 21
|
||||
(phase,Nid1) (0,0), metric_phase 19456 tot_metric 19456, phase_max 0
|
||||
(phase,Nid1) (0,8), metric_phase 21504 tot_metric 21504, phase_max 0
|
||||
(phase,Nid1) (0,13), metric_phase 23552 tot_metric 23552, phase_max 0
|
||||
(phase,Nid1) (0,88), metric_phase 24576 tot_metric 24576, phase_max 0
|
||||
(phase,Nid1) (0,124), metric_phase 41984 tot_metric 41984, phase_max 0
|
||||
(phase,Nid1) (0,135), metric_phase 46080 tot_metric 46080, phase_max 0
|
||||
(phase,Nid1) (0,319), metric_phase 47104 tot_metric 47104, phase_max 0
|
||||
(phase,Nid1) (2,21), metric_phase 308736 tot_metric 308736, phase_max 2
|
||||
(phase,Nid1) (3,21), metric_phase 494592 tot_metric 494592, phase_max 3
|
||||
(phase,Nid1) (4,21), metric_phase 642048 tot_metric 642048, phase_max 4
|
||||
(phase,Nid1) (5,21), metric_phase 759808 tot_metric 759808, phase_max 5
|
||||
Nid2 2 Nid1 21 tot_metric 759808, phase_max 5
|
||||
SSS NR Test is pass with warning due to phase difference 5 (instead of 3) offset 492 Nid1 21 Nid2 2
|
||||
------------------------------------------------
|
||||
Test nr pss with Nid2 2 at position 493
|
||||
[PHY][I][pss_search_time_nr] [UE] nr_synchro_time: Sync source = 2, Peak found at pos 492, val = 229165600 (41 dB)
|
||||
[UE] nr_synchro_time: Sync source = 2, Peak found at pos 492, val = 229165600 (41 dB)
|
||||
Test nr sss with Nid1 21
|
||||
(phase,Nid1) (0,0), metric_phase 19456 tot_metric 19456, phase_max 0
|
||||
(phase,Nid1) (0,8), metric_phase 21504 tot_metric 21504, phase_max 0
|
||||
(phase,Nid1) (0,13), metric_phase 23552 tot_metric 23552, phase_max 0
|
||||
(phase,Nid1) (0,88), metric_phase 24576 tot_metric 24576, phase_max 0
|
||||
(phase,Nid1) (0,124), metric_phase 41984 tot_metric 41984, phase_max 0
|
||||
(phase,Nid1) (0,135), metric_phase 46080 tot_metric 46080, phase_max 0
|
||||
(phase,Nid1) (0,319), metric_phase 47104 tot_metric 47104, phase_max 0
|
||||
(phase,Nid1) (2,21), metric_phase 308736 tot_metric 308736, phase_max 2
|
||||
(phase,Nid1) (3,21), metric_phase 494592 tot_metric 494592, phase_max 3
|
||||
(phase,Nid1) (4,21), metric_phase 642048 tot_metric 642048, phase_max 4
|
||||
(phase,Nid1) (5,21), metric_phase 759808 tot_metric 759808, phase_max 5
|
||||
Nid2 2 Nid1 21 tot_metric 759808, phase_max 5
|
||||
SSS NR Test is pass with warning due to phase difference 5 (instead of 3) offset 493 Nid1 21 Nid2 2
|
||||
------------------------------------------------
|
||||
Test nr pss with Nid2 2 at position 56788
|
||||
[PHY][I][pss_search_time_nr] [UE] nr_synchro_time: Sync source = 2, Peak found at pos 56788, val = 231344100 (41 dB)
|
||||
[UE] nr_synchro_time: Sync source = 2, Peak found at pos 56788, val = 231344100 (41 dB)
|
||||
Test nr sss with Nid1 21
|
||||
(phase,Nid1) (0,0), metric_phase 19456 tot_metric 19456, phase_max 0
|
||||
(phase,Nid1) (0,8), metric_phase 21504 tot_metric 21504, phase_max 0
|
||||
(phase,Nid1) (0,13), metric_phase 23552 tot_metric 23552, phase_max 0
|
||||
(phase,Nid1) (0,88), metric_phase 24576 tot_metric 24576, phase_max 0
|
||||
(phase,Nid1) (0,124), metric_phase 41984 tot_metric 41984, phase_max 0
|
||||
(phase,Nid1) (0,135), metric_phase 46080 tot_metric 46080, phase_max 0
|
||||
(phase,Nid1) (0,319), metric_phase 47104 tot_metric 47104, phase_max 0
|
||||
(phase,Nid1) (2,21), metric_phase 308736 tot_metric 308736, phase_max 2
|
||||
(phase,Nid1) (3,21), metric_phase 494592 tot_metric 494592, phase_max 3
|
||||
(phase,Nid1) (4,21), metric_phase 642048 tot_metric 642048, phase_max 4
|
||||
(phase,Nid1) (5,21), metric_phase 759808 tot_metric 759808, phase_max 5
|
||||
Nid2 2 Nid1 21 tot_metric 759808, phase_max 5
|
||||
SSS NR Test is pass with warning due to phase difference 5 (instead of 3) offset 56788 Nid1 21 Nid2 2
|
||||
------------------------------------------------
|
||||
Test nr pss with Nid2 2 at position 111111
|
||||
[PHY][I][pss_search_time_nr] [UE] nr_synchro_time: Sync source = 2, Peak found at pos 111112, val = 229601794 (41 dB)
|
||||
[UE] nr_synchro_time: Sync source = 2, Peak found at pos 111112, val = 229601794 (41 dB)
|
||||
Test nr sss with Nid1 21
|
||||
(phase,Nid1) (0,0), metric_phase 19456 tot_metric 19456, phase_max 0
|
||||
(phase,Nid1) (0,8), metric_phase 21504 tot_metric 21504, phase_max 0
|
||||
(phase,Nid1) (0,13), metric_phase 23552 tot_metric 23552, phase_max 0
|
||||
(phase,Nid1) (0,88), metric_phase 24576 tot_metric 24576, phase_max 0
|
||||
(phase,Nid1) (0,124), metric_phase 41984 tot_metric 41984, phase_max 0
|
||||
(phase,Nid1) (0,135), metric_phase 46080 tot_metric 46080, phase_max 0
|
||||
(phase,Nid1) (0,319), metric_phase 47104 tot_metric 47104, phase_max 0
|
||||
(phase,Nid1) (2,21), metric_phase 308736 tot_metric 308736, phase_max 2
|
||||
(phase,Nid1) (3,21), metric_phase 494592 tot_metric 494592, phase_max 3
|
||||
(phase,Nid1) (4,21), metric_phase 642048 tot_metric 642048, phase_max 4
|
||||
(phase,Nid1) (5,21), metric_phase 759808 tot_metric 759808, phase_max 5
|
||||
Nid2 2 Nid1 21 tot_metric 759808, phase_max 5
|
||||
SSS NR Test is pass with warning due to phase difference 5 (instead of 3) offset 111111 Nid1 21 Nid2 2
|
||||
------------------------------------------------
|
||||
Test nr pss with Nid2 2 at position 222222
|
||||
[PHY][I][pss_search_time_nr] [UE] nr_synchro_time: Sync source = 2, Peak found at pos 222224, val = 219559301 (41 dB)
|
||||
[UE] nr_synchro_time: Sync source = 2, Peak found at pos 222224, val = 219559301 (41 dB)
|
||||
Test nr sss with Nid1 21
|
||||
(phase,Nid1) (0,0), metric_phase 19456 tot_metric 19456, phase_max 0
|
||||
(phase,Nid1) (0,8), metric_phase 21504 tot_metric 21504, phase_max 0
|
||||
(phase,Nid1) (0,13), metric_phase 23552 tot_metric 23552, phase_max 0
|
||||
(phase,Nid1) (0,88), metric_phase 24576 tot_metric 24576, phase_max 0
|
||||
(phase,Nid1) (0,124), metric_phase 41984 tot_metric 41984, phase_max 0
|
||||
(phase,Nid1) (0,135), metric_phase 46080 tot_metric 46080, phase_max 0
|
||||
(phase,Nid1) (0,319), metric_phase 47104 tot_metric 47104, phase_max 0
|
||||
(phase,Nid1) (2,21), metric_phase 308736 tot_metric 308736, phase_max 2
|
||||
(phase,Nid1) (3,21), metric_phase 494592 tot_metric 494592, phase_max 3
|
||||
(phase,Nid1) (4,21), metric_phase 642048 tot_metric 642048, phase_max 4
|
||||
(phase,Nid1) (5,21), metric_phase 759808 tot_metric 759808, phase_max 5
|
||||
Nid2 2 Nid1 21 tot_metric 759808, phase_max 5
|
||||
SSS NR Test is pass with warning due to phase difference 5 (instead of 3) offset 222222 Nid1 21 Nid2 2
|
||||
------------------------------------------------
|
||||
Test nr pss with Nid2 2 at position 0
|
||||
[PHY][I][pss_search_time_nr] [UE] nr_synchro_time: Sync source = 2, Peak found at pos 0, val = 231344100 (41 dB)
|
||||
[UE] nr_synchro_time: Sync source = 2, Peak found at pos 0, val = 231344100 (41 dB)
|
||||
Test nr sss with Nid1 21
|
||||
(phase,Nid1) (0,0), metric_phase 19456 tot_metric 19456, phase_max 0
|
||||
(phase,Nid1) (0,8), metric_phase 21504 tot_metric 21504, phase_max 0
|
||||
(phase,Nid1) (0,13), metric_phase 23552 tot_metric 23552, phase_max 0
|
||||
(phase,Nid1) (0,88), metric_phase 24576 tot_metric 24576, phase_max 0
|
||||
(phase,Nid1) (0,124), metric_phase 41984 tot_metric 41984, phase_max 0
|
||||
(phase,Nid1) (0,135), metric_phase 46080 tot_metric 46080, phase_max 0
|
||||
(phase,Nid1) (0,319), metric_phase 47104 tot_metric 47104, phase_max 0
|
||||
(phase,Nid1) (2,21), metric_phase 308736 tot_metric 308736, phase_max 2
|
||||
(phase,Nid1) (3,21), metric_phase 494592 tot_metric 494592, phase_max 3
|
||||
(phase,Nid1) (4,21), metric_phase 642048 tot_metric 642048, phase_max 4
|
||||
(phase,Nid1) (5,21), metric_phase 759808 tot_metric 759808, phase_max 5
|
||||
Nid2 2 Nid1 21 tot_metric 759808, phase_max 5
|
||||
SSS NR Test is pass with warning due to phase difference 5 (instead of 3) offset 0 Nid1 21 Nid2 2
|
||||
------------------------------------------------
|
||||
Test nr pss with Nid2 2 at position 492
|
||||
[PHY][I][pss_search_time_nr] [UE] nr_synchro_time: Sync source = 2, Peak found at pos 492, val = 231344100 (41 dB)
|
||||
[UE] nr_synchro_time: Sync source = 2, Peak found at pos 492, val = 231344100 (41 dB)
|
||||
Test nr sss with Nid1 21
|
||||
(phase,Nid1) (0,0), metric_phase 19456 tot_metric 19456, phase_max 0
|
||||
(phase,Nid1) (0,8), metric_phase 21504 tot_metric 21504, phase_max 0
|
||||
(phase,Nid1) (0,13), metric_phase 23552 tot_metric 23552, phase_max 0
|
||||
(phase,Nid1) (0,88), metric_phase 24576 tot_metric 24576, phase_max 0
|
||||
(phase,Nid1) (0,124), metric_phase 41984 tot_metric 41984, phase_max 0
|
||||
(phase,Nid1) (0,135), metric_phase 46080 tot_metric 46080, phase_max 0
|
||||
(phase,Nid1) (0,319), metric_phase 47104 tot_metric 47104, phase_max 0
|
||||
(phase,Nid1) (2,21), metric_phase 308736 tot_metric 308736, phase_max 2
|
||||
(phase,Nid1) (3,21), metric_phase 494592 tot_metric 494592, phase_max 3
|
||||
(phase,Nid1) (4,21), metric_phase 642048 tot_metric 642048, phase_max 4
|
||||
(phase,Nid1) (5,21), metric_phase 759808 tot_metric 759808, phase_max 5
|
||||
Nid2 2 Nid1 21 tot_metric 759808, phase_max 5
|
||||
SSS NR Test is pass with warning due to phase difference 5 (instead of 3) offset 492 Nid1 21 Nid2 2
|
||||
------------------------------------------------
|
||||
Test nr pss with Nid2 2 at position 493
|
||||
[PHY][I][pss_search_time_nr] [UE] nr_synchro_time: Sync source = 2, Peak found at pos 492, val = 229165600 (41 dB)
|
||||
[UE] nr_synchro_time: Sync source = 2, Peak found at pos 492, val = 229165600 (41 dB)
|
||||
Test nr sss with Nid1 21
|
||||
(phase,Nid1) (0,0), metric_phase 19456 tot_metric 19456, phase_max 0
|
||||
(phase,Nid1) (0,8), metric_phase 21504 tot_metric 21504, phase_max 0
|
||||
(phase,Nid1) (0,13), metric_phase 23552 tot_metric 23552, phase_max 0
|
||||
(phase,Nid1) (0,88), metric_phase 24576 tot_metric 24576, phase_max 0
|
||||
(phase,Nid1) (0,124), metric_phase 41984 tot_metric 41984, phase_max 0
|
||||
(phase,Nid1) (0,135), metric_phase 46080 tot_metric 46080, phase_max 0
|
||||
(phase,Nid1) (0,319), metric_phase 47104 tot_metric 47104, phase_max 0
|
||||
(phase,Nid1) (2,21), metric_phase 308736 tot_metric 308736, phase_max 2
|
||||
(phase,Nid1) (3,21), metric_phase 494592 tot_metric 494592, phase_max 3
|
||||
(phase,Nid1) (4,21), metric_phase 642048 tot_metric 642048, phase_max 4
|
||||
(phase,Nid1) (5,21), metric_phase 759808 tot_metric 759808, phase_max 5
|
||||
Nid2 2 Nid1 21 tot_metric 759808, phase_max 5
|
||||
SSS NR Test is pass with warning due to phase difference 5 (instead of 3) offset 493 Nid1 21 Nid2 2
|
||||
------------------------------------------------
|
||||
Test nr pss with Nid2 2 at position 56788
|
||||
[PHY][I][pss_search_time_nr] [UE] nr_synchro_time: Sync source = 2, Peak found at pos 56788, val = 231344100 (41 dB)
|
||||
[UE] nr_synchro_time: Sync source = 2, Peak found at pos 56788, val = 231344100 (41 dB)
|
||||
Test nr sss with Nid1 21
|
||||
(phase,Nid1) (0,0), metric_phase 19456 tot_metric 19456, phase_max 0
|
||||
(phase,Nid1) (0,8), metric_phase 21504 tot_metric 21504, phase_max 0
|
||||
(phase,Nid1) (0,13), metric_phase 23552 tot_metric 23552, phase_max 0
|
||||
(phase,Nid1) (0,88), metric_phase 24576 tot_metric 24576, phase_max 0
|
||||
(phase,Nid1) (0,124), metric_phase 41984 tot_metric 41984, phase_max 0
|
||||
(phase,Nid1) (0,135), metric_phase 46080 tot_metric 46080, phase_max 0
|
||||
(phase,Nid1) (0,319), metric_phase 47104 tot_metric 47104, phase_max 0
|
||||
(phase,Nid1) (2,21), metric_phase 308736 tot_metric 308736, phase_max 2
|
||||
(phase,Nid1) (3,21), metric_phase 494592 tot_metric 494592, phase_max 3
|
||||
(phase,Nid1) (4,21), metric_phase 642048 tot_metric 642048, phase_max 4
|
||||
(phase,Nid1) (5,21), metric_phase 759808 tot_metric 759808, phase_max 5
|
||||
Nid2 2 Nid1 21 tot_metric 759808, phase_max 5
|
||||
SSS NR Test is pass with warning due to phase difference 5 (instead of 3) offset 56788 Nid1 21 Nid2 2
|
||||
------------------------------------------------
|
||||
Test nr pss with Nid2 2 at position 111111
|
||||
[PHY][I][pss_search_time_nr] [UE] nr_synchro_time: Sync source = 2, Peak found at pos 111112, val = 229601794 (41 dB)
|
||||
[UE] nr_synchro_time: Sync source = 2, Peak found at pos 111112, val = 229601794 (41 dB)
|
||||
Test nr sss with Nid1 21
|
||||
(phase,Nid1) (0,0), metric_phase 19456 tot_metric 19456, phase_max 0
|
||||
(phase,Nid1) (0,8), metric_phase 21504 tot_metric 21504, phase_max 0
|
||||
(phase,Nid1) (0,13), metric_phase 23552 tot_metric 23552, phase_max 0
|
||||
(phase,Nid1) (0,88), metric_phase 24576 tot_metric 24576, phase_max 0
|
||||
(phase,Nid1) (0,124), metric_phase 41984 tot_metric 41984, phase_max 0
|
||||
(phase,Nid1) (0,135), metric_phase 46080 tot_metric 46080, phase_max 0
|
||||
(phase,Nid1) (0,319), metric_phase 47104 tot_metric 47104, phase_max 0
|
||||
(phase,Nid1) (2,21), metric_phase 308736 tot_metric 308736, phase_max 2
|
||||
(phase,Nid1) (3,21), metric_phase 494592 tot_metric 494592, phase_max 3
|
||||
(phase,Nid1) (4,21), metric_phase 642048 tot_metric 642048, phase_max 4
|
||||
(phase,Nid1) (5,21), metric_phase 759808 tot_metric 759808, phase_max 5
|
||||
Nid2 2 Nid1 21 tot_metric 759808, phase_max 5
|
||||
SSS NR Test is pass with warning due to phase difference 5 (instead of 3) offset 111111 Nid1 21 Nid2 2
|
||||
------------------------------------------------
|
||||
Test nr pss with Nid2 2 at position 222222
|
||||
[PHY][I][pss_search_time_nr] [UE] nr_synchro_time: Sync source = 2, Peak found at pos 222224, val = 219559301 (41 dB)
|
||||
[UE] nr_synchro_time: Sync source = 2, Peak found at pos 222224, val = 219559301 (41 dB)
|
||||
Test nr sss with Nid1 21
|
||||
(phase,Nid1) (0,0), metric_phase 19456 tot_metric 19456, phase_max 0
|
||||
(phase,Nid1) (0,8), metric_phase 21504 tot_metric 21504, phase_max 0
|
||||
(phase,Nid1) (0,13), metric_phase 23552 tot_metric 23552, phase_max 0
|
||||
(phase,Nid1) (0,88), metric_phase 24576 tot_metric 24576, phase_max 0
|
||||
(phase,Nid1) (0,124), metric_phase 41984 tot_metric 41984, phase_max 0
|
||||
(phase,Nid1) (0,135), metric_phase 46080 tot_metric 46080, phase_max 0
|
||||
(phase,Nid1) (0,319), metric_phase 47104 tot_metric 47104, phase_max 0
|
||||
(phase,Nid1) (2,21), metric_phase 308736 tot_metric 308736, phase_max 2
|
||||
(phase,Nid1) (3,21), metric_phase 494592 tot_metric 494592, phase_max 3
|
||||
(phase,Nid1) (4,21), metric_phase 642048 tot_metric 642048, phase_max 4
|
||||
(phase,Nid1) (5,21), metric_phase 759808 tot_metric 759808, phase_max 5
|
||||
Nid2 2 Nid1 21 tot_metric 759808, phase_max 5
|
||||
SSS NR Test is pass with warning due to phase difference 5 (instead of 3) offset 222222 Nid1 21 Nid2 2
|
||||
------------------------------------------------
|
||||
Test nr pss with Nid2 1 at position 0
|
||||
[PHY][I][pss_search_time_nr] [UE] nr_synchro_time: Sync source = 1, Peak found at pos 0, val = 232105225 (41 dB)
|
||||
[UE] nr_synchro_time: Sync source = 1, Peak found at pos 0, val = 232105225 (41 dB)
|
||||
Test nr sss with Nid1 55
|
||||
(phase,Nid1) (0,0), metric_phase -1536 tot_metric -1536, phase_max 0
|
||||
(phase,Nid1) (0,1), metric_phase 1536 tot_metric 1536, phase_max 0
|
||||
(phase,Nid1) (0,2), metric_phase 5632 tot_metric 5632, phase_max 0
|
||||
(phase,Nid1) (0,3), metric_phase 20992 tot_metric 20992, phase_max 0
|
||||
(phase,Nid1) (0,13), metric_phase 23040 tot_metric 23040, phase_max 0
|
||||
(phase,Nid1) (0,120), metric_phase 28160 tot_metric 28160, phase_max 0
|
||||
(phase,Nid1) (0,135), metric_phase 43520 tot_metric 43520, phase_max 0
|
||||
(phase,Nid1) (0,228), metric_phase 44544 tot_metric 44544, phase_max 0
|
||||
(phase,Nid1) (1,55), metric_phase 61440 tot_metric 61440, phase_max 1
|
||||
(phase,Nid1) (2,55), metric_phase 326144 tot_metric 326144, phase_max 2
|
||||
(phase,Nid1) (3,55), metric_phase 507392 tot_metric 507392, phase_max 3
|
||||
(phase,Nid1) (4,55), metric_phase 651264 tot_metric 651264, phase_max 4
|
||||
(phase,Nid1) (5,55), metric_phase 770560 tot_metric 770560, phase_max 5
|
||||
Nid2 1 Nid1 55 tot_metric 770560, phase_max 5
|
||||
SSS NR Test is pass with warning due to phase difference 5 (instead of 3) offset 0 Nid1 55 Nid2 1
|
||||
------------------------------------------------
|
||||
Test nr pss with Nid2 1 at position 492
|
||||
[PHY][I][pss_search_time_nr] [UE] nr_synchro_time: Sync source = 1, Peak found at pos 492, val = 232105225 (41 dB)
|
||||
[UE] nr_synchro_time: Sync source = 1, Peak found at pos 492, val = 232105225 (41 dB)
|
||||
Test nr sss with Nid1 55
|
||||
(phase,Nid1) (0,0), metric_phase -1536 tot_metric -1536, phase_max 0
|
||||
(phase,Nid1) (0,1), metric_phase 1536 tot_metric 1536, phase_max 0
|
||||
(phase,Nid1) (0,2), metric_phase 5632 tot_metric 5632, phase_max 0
|
||||
(phase,Nid1) (0,3), metric_phase 20992 tot_metric 20992, phase_max 0
|
||||
(phase,Nid1) (0,13), metric_phase 23040 tot_metric 23040, phase_max 0
|
||||
(phase,Nid1) (0,120), metric_phase 28160 tot_metric 28160, phase_max 0
|
||||
(phase,Nid1) (0,135), metric_phase 43520 tot_metric 43520, phase_max 0
|
||||
(phase,Nid1) (0,228), metric_phase 44544 tot_metric 44544, phase_max 0
|
||||
(phase,Nid1) (1,55), metric_phase 61440 tot_metric 61440, phase_max 1
|
||||
(phase,Nid1) (2,55), metric_phase 326144 tot_metric 326144, phase_max 2
|
||||
(phase,Nid1) (3,55), metric_phase 507392 tot_metric 507392, phase_max 3
|
||||
(phase,Nid1) (4,55), metric_phase 651264 tot_metric 651264, phase_max 4
|
||||
(phase,Nid1) (5,55), metric_phase 770560 tot_metric 770560, phase_max 5
|
||||
Nid2 1 Nid1 55 tot_metric 770560, phase_max 5
|
||||
SSS NR Test is pass with warning due to phase difference 5 (instead of 3) offset 492 Nid1 55 Nid2 1
|
||||
------------------------------------------------
|
||||
Test nr pss with Nid2 1 at position 493
|
||||
[PHY][I][pss_search_time_nr] [UE] nr_synchro_time: Sync source = 1, Peak found at pos 492, val = 230099437 (41 dB)
|
||||
[UE] nr_synchro_time: Sync source = 1, Peak found at pos 492, val = 230099437 (41 dB)
|
||||
Test nr sss with Nid1 55
|
||||
(phase,Nid1) (0,0), metric_phase -1536 tot_metric -1536, phase_max 0
|
||||
(phase,Nid1) (0,1), metric_phase 1536 tot_metric 1536, phase_max 0
|
||||
(phase,Nid1) (0,2), metric_phase 5632 tot_metric 5632, phase_max 0
|
||||
(phase,Nid1) (0,3), metric_phase 20992 tot_metric 20992, phase_max 0
|
||||
(phase,Nid1) (0,13), metric_phase 23040 tot_metric 23040, phase_max 0
|
||||
(phase,Nid1) (0,120), metric_phase 28160 tot_metric 28160, phase_max 0
|
||||
(phase,Nid1) (0,135), metric_phase 43520 tot_metric 43520, phase_max 0
|
||||
(phase,Nid1) (0,228), metric_phase 44544 tot_metric 44544, phase_max 0
|
||||
(phase,Nid1) (1,55), metric_phase 61440 tot_metric 61440, phase_max 1
|
||||
(phase,Nid1) (2,55), metric_phase 326144 tot_metric 326144, phase_max 2
|
||||
(phase,Nid1) (3,55), metric_phase 507392 tot_metric 507392, phase_max 3
|
||||
(phase,Nid1) (4,55), metric_phase 651264 tot_metric 651264, phase_max 4
|
||||
(phase,Nid1) (5,55), metric_phase 770560 tot_metric 770560, phase_max 5
|
||||
Nid2 1 Nid1 55 tot_metric 770560, phase_max 5
|
||||
SSS NR Test is pass with warning due to phase difference 5 (instead of 3) offset 493 Nid1 55 Nid2 1
|
||||
------------------------------------------------
|
||||
Test nr pss with Nid2 1 at position 56788
|
||||
[PHY][I][pss_search_time_nr] [UE] nr_synchro_time: Sync source = 1, Peak found at pos 56788, val = 232105225 (41 dB)
|
||||
[UE] nr_synchro_time: Sync source = 1, Peak found at pos 56788, val = 232105225 (41 dB)
|
||||
Test nr sss with Nid1 55
|
||||
(phase,Nid1) (0,0), metric_phase -1536 tot_metric -1536, phase_max 0
|
||||
(phase,Nid1) (0,1), metric_phase 1536 tot_metric 1536, phase_max 0
|
||||
(phase,Nid1) (0,2), metric_phase 5632 tot_metric 5632, phase_max 0
|
||||
(phase,Nid1) (0,3), metric_phase 20992 tot_metric 20992, phase_max 0
|
||||
(phase,Nid1) (0,13), metric_phase 23040 tot_metric 23040, phase_max 0
|
||||
(phase,Nid1) (0,120), metric_phase 28160 tot_metric 28160, phase_max 0
|
||||
(phase,Nid1) (0,135), metric_phase 43520 tot_metric 43520, phase_max 0
|
||||
(phase,Nid1) (0,228), metric_phase 44544 tot_metric 44544, phase_max 0
|
||||
(phase,Nid1) (1,55), metric_phase 61440 tot_metric 61440, phase_max 1
|
||||
(phase,Nid1) (2,55), metric_phase 326144 tot_metric 326144, phase_max 2
|
||||
(phase,Nid1) (3,55), metric_phase 507392 tot_metric 507392, phase_max 3
|
||||
(phase,Nid1) (4,55), metric_phase 651264 tot_metric 651264, phase_max 4
|
||||
(phase,Nid1) (5,55), metric_phase 770560 tot_metric 770560, phase_max 5
|
||||
Nid2 1 Nid1 55 tot_metric 770560, phase_max 5
|
||||
SSS NR Test is pass with warning due to phase difference 5 (instead of 3) offset 56788 Nid1 55 Nid2 1
|
||||
------------------------------------------------
|
||||
Test nr pss with Nid2 1 at position 111111
|
||||
[PHY][I][pss_search_time_nr] [UE] nr_synchro_time: Sync source = 1, Peak found at pos 111112, val = 230409881 (41 dB)
|
||||
[UE] nr_synchro_time: Sync source = 1, Peak found at pos 111112, val = 230409881 (41 dB)
|
||||
Test nr sss with Nid1 55
|
||||
(phase,Nid1) (0,0), metric_phase -1536 tot_metric -1536, phase_max 0
|
||||
(phase,Nid1) (0,1), metric_phase 1536 tot_metric 1536, phase_max 0
|
||||
(phase,Nid1) (0,2), metric_phase 5632 tot_metric 5632, phase_max 0
|
||||
(phase,Nid1) (0,3), metric_phase 20992 tot_metric 20992, phase_max 0
|
||||
(phase,Nid1) (0,13), metric_phase 23040 tot_metric 23040, phase_max 0
|
||||
(phase,Nid1) (0,120), metric_phase 28160 tot_metric 28160, phase_max 0
|
||||
(phase,Nid1) (0,135), metric_phase 43520 tot_metric 43520, phase_max 0
|
||||
(phase,Nid1) (0,228), metric_phase 44544 tot_metric 44544, phase_max 0
|
||||
(phase,Nid1) (1,55), metric_phase 61440 tot_metric 61440, phase_max 1
|
||||
(phase,Nid1) (2,55), metric_phase 326144 tot_metric 326144, phase_max 2
|
||||
(phase,Nid1) (3,55), metric_phase 507392 tot_metric 507392, phase_max 3
|
||||
(phase,Nid1) (4,55), metric_phase 651264 tot_metric 651264, phase_max 4
|
||||
(phase,Nid1) (5,55), metric_phase 770560 tot_metric 770560, phase_max 5
|
||||
Nid2 1 Nid1 55 tot_metric 770560, phase_max 5
|
||||
SSS NR Test is pass with warning due to phase difference 5 (instead of 3) offset 111111 Nid1 55 Nid2 1
|
||||
------------------------------------------------
|
||||
Test nr pss with Nid2 1 at position 222222
|
||||
[PHY][I][pss_search_time_nr] [UE] nr_synchro_time: Sync source = 1, Peak found at pos 222224, val = 219714314 (41 dB)
|
||||
[UE] nr_synchro_time: Sync source = 1, Peak found at pos 222224, val = 219714314 (41 dB)
|
||||
Test nr sss with Nid1 55
|
||||
(phase,Nid1) (0,0), metric_phase -1536 tot_metric -1536, phase_max 0
|
||||
(phase,Nid1) (0,1), metric_phase 1536 tot_metric 1536, phase_max 0
|
||||
(phase,Nid1) (0,2), metric_phase 5632 tot_metric 5632, phase_max 0
|
||||
(phase,Nid1) (0,3), metric_phase 20992 tot_metric 20992, phase_max 0
|
||||
(phase,Nid1) (0,13), metric_phase 23040 tot_metric 23040, phase_max 0
|
||||
(phase,Nid1) (0,120), metric_phase 28160 tot_metric 28160, phase_max 0
|
||||
(phase,Nid1) (0,135), metric_phase 43520 tot_metric 43520, phase_max 0
|
||||
(phase,Nid1) (0,228), metric_phase 44544 tot_metric 44544, phase_max 0
|
||||
(phase,Nid1) (1,55), metric_phase 61440 tot_metric 61440, phase_max 1
|
||||
(phase,Nid1) (2,55), metric_phase 326144 tot_metric 326144, phase_max 2
|
||||
(phase,Nid1) (3,55), metric_phase 507392 tot_metric 507392, phase_max 3
|
||||
(phase,Nid1) (4,55), metric_phase 651264 tot_metric 651264, phase_max 4
|
||||
(phase,Nid1) (5,55), metric_phase 770560 tot_metric 770560, phase_max 5
|
||||
Nid2 1 Nid1 55 tot_metric 770560, phase_max 5
|
||||
SSS NR Test is pass with warning due to phase difference 5 (instead of 3) offset 222222 Nid1 55 Nid2 1
|
||||
------------------------------------------------
|
||||
Test nr pss with Nid2 2 at position 0
|
||||
[PHY][I][pss_search_time_nr] [UE] nr_synchro_time: Sync source = 2, Peak found at pos 0, val = 231344100 (41 dB)
|
||||
[UE] nr_synchro_time: Sync source = 2, Peak found at pos 0, val = 231344100 (41 dB)
|
||||
Test nr sss with Nid1 111
|
||||
(phase,Nid1) (0,0), metric_phase 19968 tot_metric 19968, phase_max 0
|
||||
(phase,Nid1) (0,13), metric_phase 22016 tot_metric 22016, phase_max 0
|
||||
(phase,Nid1) (0,109), metric_phase 23040 tot_metric 23040, phase_max 0
|
||||
(phase,Nid1) (0,117), metric_phase 26112 tot_metric 26112, phase_max 0
|
||||
(phase,Nid1) (0,124), metric_phase 37376 tot_metric 37376, phase_max 0
|
||||
(phase,Nid1) (0,161), metric_phase 42496 tot_metric 42496, phase_max 0
|
||||
(phase,Nid1) (0,170), metric_phase 43520 tot_metric 43520, phase_max 0
|
||||
(phase,Nid1) (0,210), metric_phase 45568 tot_metric 45568, phase_max 0
|
||||
(phase,Nid1) (1,111), metric_phase 62464 tot_metric 62464, phase_max 1
|
||||
(phase,Nid1) (2,111), metric_phase 327680 tot_metric 327680, phase_max 2
|
||||
(phase,Nid1) (3,111), metric_phase 511488 tot_metric 511488, phase_max 3
|
||||
(phase,Nid1) (4,111), metric_phase 651264 tot_metric 651264, phase_max 4
|
||||
(phase,Nid1) (5,111), metric_phase 770048 tot_metric 770048, phase_max 5
|
||||
Nid2 2 Nid1 111 tot_metric 770048, phase_max 5
|
||||
SSS NR Test is pass with warning due to phase difference 5 (instead of 3) offset 0 Nid1 111 Nid2 2
|
||||
------------------------------------------------
|
||||
Test nr pss with Nid2 2 at position 492
|
||||
[PHY][I][pss_search_time_nr] [UE] nr_synchro_time: Sync source = 2, Peak found at pos 492, val = 231344100 (41 dB)
|
||||
[UE] nr_synchro_time: Sync source = 2, Peak found at pos 492, val = 231344100 (41 dB)
|
||||
Test nr sss with Nid1 111
|
||||
(phase,Nid1) (0,0), metric_phase 19968 tot_metric 19968, phase_max 0
|
||||
(phase,Nid1) (0,13), metric_phase 22016 tot_metric 22016, phase_max 0
|
||||
(phase,Nid1) (0,109), metric_phase 23040 tot_metric 23040, phase_max 0
|
||||
(phase,Nid1) (0,117), metric_phase 26112 tot_metric 26112, phase_max 0
|
||||
(phase,Nid1) (0,124), metric_phase 37376 tot_metric 37376, phase_max 0
|
||||
(phase,Nid1) (0,161), metric_phase 42496 tot_metric 42496, phase_max 0
|
||||
(phase,Nid1) (0,170), metric_phase 43520 tot_metric 43520, phase_max 0
|
||||
(phase,Nid1) (0,210), metric_phase 45568 tot_metric 45568, phase_max 0
|
||||
(phase,Nid1) (1,111), metric_phase 62464 tot_metric 62464, phase_max 1
|
||||
(phase,Nid1) (2,111), metric_phase 327680 tot_metric 327680, phase_max 2
|
||||
(phase,Nid1) (3,111), metric_phase 511488 tot_metric 511488, phase_max 3
|
||||
(phase,Nid1) (4,111), metric_phase 651264 tot_metric 651264, phase_max 4
|
||||
(phase,Nid1) (5,111), metric_phase 770048 tot_metric 770048, phase_max 5
|
||||
Nid2 2 Nid1 111 tot_metric 770048, phase_max 5
|
||||
SSS NR Test is pass with warning due to phase difference 5 (instead of 3) offset 492 Nid1 111 Nid2 2
|
||||
------------------------------------------------
|
||||
Test nr pss with Nid2 2 at position 493
|
||||
[PHY][I][pss_search_time_nr] [UE] nr_synchro_time: Sync source = 2, Peak found at pos 492, val = 229165600 (41 dB)
|
||||
[UE] nr_synchro_time: Sync source = 2, Peak found at pos 492, val = 229165600 (41 dB)
|
||||
Test nr sss with Nid1 111
|
||||
(phase,Nid1) (0,0), metric_phase 19968 tot_metric 19968, phase_max 0
|
||||
(phase,Nid1) (0,13), metric_phase 22016 tot_metric 22016, phase_max 0
|
||||
(phase,Nid1) (0,109), metric_phase 23040 tot_metric 23040, phase_max 0
|
||||
(phase,Nid1) (0,117), metric_phase 26112 tot_metric 26112, phase_max 0
|
||||
(phase,Nid1) (0,124), metric_phase 37376 tot_metric 37376, phase_max 0
|
||||
(phase,Nid1) (0,161), metric_phase 42496 tot_metric 42496, phase_max 0
|
||||
(phase,Nid1) (0,170), metric_phase 43520 tot_metric 43520, phase_max 0
|
||||
(phase,Nid1) (0,210), metric_phase 45568 tot_metric 45568, phase_max 0
|
||||
(phase,Nid1) (1,111), metric_phase 62464 tot_metric 62464, phase_max 1
|
||||
(phase,Nid1) (2,111), metric_phase 327680 tot_metric 327680, phase_max 2
|
||||
(phase,Nid1) (3,111), metric_phase 511488 tot_metric 511488, phase_max 3
|
||||
(phase,Nid1) (4,111), metric_phase 651264 tot_metric 651264, phase_max 4
|
||||
(phase,Nid1) (5,111), metric_phase 770048 tot_metric 770048, phase_max 5
|
||||
Nid2 2 Nid1 111 tot_metric 770048, phase_max 5
|
||||
SSS NR Test is pass with warning due to phase difference 5 (instead of 3) offset 493 Nid1 111 Nid2 2
|
||||
------------------------------------------------
|
||||
Test nr pss with Nid2 2 at position 56788
|
||||
[PHY][I][pss_search_time_nr] [UE] nr_synchro_time: Sync source = 2, Peak found at pos 56788, val = 231344100 (41 dB)
|
||||
[UE] nr_synchro_time: Sync source = 2, Peak found at pos 56788, val = 231344100 (41 dB)
|
||||
Test nr sss with Nid1 111
|
||||
(phase,Nid1) (0,0), metric_phase 19968 tot_metric 19968, phase_max 0
|
||||
(phase,Nid1) (0,13), metric_phase 22016 tot_metric 22016, phase_max 0
|
||||
(phase,Nid1) (0,109), metric_phase 23040 tot_metric 23040, phase_max 0
|
||||
(phase,Nid1) (0,117), metric_phase 26112 tot_metric 26112, phase_max 0
|
||||
(phase,Nid1) (0,124), metric_phase 37376 tot_metric 37376, phase_max 0
|
||||
(phase,Nid1) (0,161), metric_phase 42496 tot_metric 42496, phase_max 0
|
||||
(phase,Nid1) (0,170), metric_phase 43520 tot_metric 43520, phase_max 0
|
||||
(phase,Nid1) (0,210), metric_phase 45568 tot_metric 45568, phase_max 0
|
||||
(phase,Nid1) (1,111), metric_phase 62464 tot_metric 62464, phase_max 1
|
||||
(phase,Nid1) (2,111), metric_phase 327680 tot_metric 327680, phase_max 2
|
||||
(phase,Nid1) (3,111), metric_phase 511488 tot_metric 511488, phase_max 3
|
||||
(phase,Nid1) (4,111), metric_phase 651264 tot_metric 651264, phase_max 4
|
||||
(phase,Nid1) (5,111), metric_phase 770048 tot_metric 770048, phase_max 5
|
||||
Nid2 2 Nid1 111 tot_metric 770048, phase_max 5
|
||||
SSS NR Test is pass with warning due to phase difference 5 (instead of 3) offset 56788 Nid1 111 Nid2 2
|
||||
------------------------------------------------
|
||||
Test nr pss with Nid2 2 at position 111111
|
||||
[PHY][I][pss_search_time_nr] [UE] nr_synchro_time: Sync source = 2, Peak found at pos 111112, val = 229601794 (41 dB)
|
||||
[UE] nr_synchro_time: Sync source = 2, Peak found at pos 111112, val = 229601794 (41 dB)
|
||||
Test nr sss with Nid1 111
|
||||
(phase,Nid1) (0,0), metric_phase 19968 tot_metric 19968, phase_max 0
|
||||
(phase,Nid1) (0,13), metric_phase 22016 tot_metric 22016, phase_max 0
|
||||
(phase,Nid1) (0,109), metric_phase 23040 tot_metric 23040, phase_max 0
|
||||
(phase,Nid1) (0,117), metric_phase 26112 tot_metric 26112, phase_max 0
|
||||
(phase,Nid1) (0,124), metric_phase 37376 tot_metric 37376, phase_max 0
|
||||
(phase,Nid1) (0,161), metric_phase 42496 tot_metric 42496, phase_max 0
|
||||
(phase,Nid1) (0,170), metric_phase 43520 tot_metric 43520, phase_max 0
|
||||
(phase,Nid1) (0,210), metric_phase 45568 tot_metric 45568, phase_max 0
|
||||
(phase,Nid1) (1,111), metric_phase 62464 tot_metric 62464, phase_max 1
|
||||
(phase,Nid1) (2,111), metric_phase 327680 tot_metric 327680, phase_max 2
|
||||
(phase,Nid1) (3,111), metric_phase 511488 tot_metric 511488, phase_max 3
|
||||
(phase,Nid1) (4,111), metric_phase 651264 tot_metric 651264, phase_max 4
|
||||
(phase,Nid1) (5,111), metric_phase 770048 tot_metric 770048, phase_max 5
|
||||
Nid2 2 Nid1 111 tot_metric 770048, phase_max 5
|
||||
SSS NR Test is pass with warning due to phase difference 5 (instead of 3) offset 111111 Nid1 111 Nid2 2
|
||||
------------------------------------------------
|
||||
Test nr pss with Nid2 2 at position 222222
|
||||
[PHY][I][pss_search_time_nr] [UE] nr_synchro_time: Sync source = 2, Peak found at pos 222224, val = 219559301 (41 dB)
|
||||
[UE] nr_synchro_time: Sync source = 2, Peak found at pos 222224, val = 219559301 (41 dB)
|
||||
Test nr sss with Nid1 111
|
||||
(phase,Nid1) (0,0), metric_phase 19968 tot_metric 19968, phase_max 0
|
||||
(phase,Nid1) (0,13), metric_phase 22016 tot_metric 22016, phase_max 0
|
||||
(phase,Nid1) (0,109), metric_phase 23040 tot_metric 23040, phase_max 0
|
||||
(phase,Nid1) (0,117), metric_phase 26112 tot_metric 26112, phase_max 0
|
||||
(phase,Nid1) (0,124), metric_phase 37376 tot_metric 37376, phase_max 0
|
||||
(phase,Nid1) (0,161), metric_phase 42496 tot_metric 42496, phase_max 0
|
||||
(phase,Nid1) (0,170), metric_phase 43520 tot_metric 43520, phase_max 0
|
||||
(phase,Nid1) (0,210), metric_phase 45568 tot_metric 45568, phase_max 0
|
||||
(phase,Nid1) (1,111), metric_phase 62464 tot_metric 62464, phase_max 1
|
||||
(phase,Nid1) (2,111), metric_phase 327680 tot_metric 327680, phase_max 2
|
||||
(phase,Nid1) (3,111), metric_phase 511488 tot_metric 511488, phase_max 3
|
||||
(phase,Nid1) (4,111), metric_phase 651264 tot_metric 651264, phase_max 4
|
||||
(phase,Nid1) (5,111), metric_phase 770048 tot_metric 770048, phase_max 5
|
||||
Nid2 2 Nid1 111 tot_metric 770048, phase_max 5
|
||||
SSS NR Test is pass with warning due to phase difference 5 (instead of 3) offset 222222 Nid1 111 Nid2 2
|
||||
|
||||
SSS NR Number of tests : 36 Pass : 0 Pass with warning : 36 Fail : 0
|
||||
SSS NR Synchronisaton test is terminated.
|
||||
|
||||
@@ -63,9 +63,6 @@ TESTS_FAIL=0
|
||||
# List of tests
|
||||
|
||||
tst_files="
|
||||
pss_test
|
||||
sss_test
|
||||
pbch_test
|
||||
frame_config_test"
|
||||
|
||||
#---------------------------------------------------------------------------
|
||||
|
||||
@@ -35,13 +35,7 @@ Build NR UE:
|
||||
Specific test files
|
||||
====================
|
||||
|
||||
pss_test.c: test for detection of primary synchronisation signal.
|
||||
sss_test.c: test for detection of secundary synchronisation signal.
|
||||
pbch_test.c: test for decoding of packet braodcast channel.
|
||||
frame_config_test.c : test of frame configurations (FDD/TDD).
|
||||
pss_util_test.c: common functions for running synchronisation tests.
|
||||
pss_util_test.h: common headers for synchronisation tests.
|
||||
input_buffer_test.h: it allows providing samples for pss test.
|
||||
|
||||
How to build & run tests
|
||||
========================
|
||||
@@ -66,16 +60,10 @@ First command to do:
|
||||
cmake CMakeList.txt -> it generates makefiles to build all projects.
|
||||
|
||||
Then build of test:
|
||||
make pss_test -> build pss_test: detection of NR (Primary Synchronisation Channel - synchronisation of UE).
|
||||
make sss_test -> build sss_test: detection of NR SSS (Secundary Synchronisation Channel - second step for UE synchronisation).
|
||||
make pbch_test -> build pbch_test: decoding of NR PBCH (Packet Broadcast Channel -> UE read MIB Master Information Block which gives network parameters).
|
||||
make frame_config_test -> build frame_config_test: NR FDD/TDD configuration.
|
||||
make clean -> clean all projects.
|
||||
|
||||
And execution of tests:
|
||||
./pss_test -> run NR PSS tests.
|
||||
./sss_test -> run NR SSS tests.
|
||||
./pbch_test -> run NR PBCH tests.
|
||||
./frame_config_test -> run NR frame configuration tests.
|
||||
|
||||
There is a script in build/run_test.sh which allows:
|
||||
|
||||
@@ -1,29 +0,0 @@
|
||||
/**********************************************************************
|
||||
* FILENAME : input_buffer_test
|
||||
*
|
||||
* MODULE : test of UE synchronisation
|
||||
*
|
||||
* DESCRIPTION : it allows unitary tests of UE synchronisation on host machine
|
||||
*
|
||||
************************************************************************/
|
||||
|
||||
#ifndef INPUT_BUFFER_H
|
||||
#define INPUT_BUFFER_H
|
||||
|
||||
#ifdef DEFINE_VARIABLES_INPUT_BUFFER_TEST_H
|
||||
#define EXTERNAL
|
||||
#define INIT_VARIABLES_INPUT_BUFFER_H
|
||||
#else
|
||||
#define EXTERNAL extern
|
||||
#undef INIT_VARIABLES_INPUT_BUFFER_H
|
||||
#endif
|
||||
|
||||
#ifndef INIT_VARIABLES_INPUT_BUFFER_H
|
||||
EXTERNAL short input_buffer[]
|
||||
#else
|
||||
EXTERNAL short input_buffer[307360] = {0}
|
||||
#endif /* INIT_VARIABLES_INPUT_BUFFER_H */
|
||||
;
|
||||
#undef EXTERNAL
|
||||
#undef INIT_VARIABLES_INPUT_BUFFER_H
|
||||
#endif /* INPUT_BUFFER_H */
|
||||
@@ -1,464 +0,0 @@
|
||||
/*
|
||||
* Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
|
||||
* contributor license agreements. See the NOTICE file distributed with
|
||||
* this work for additional information regarding copyright ownership.
|
||||
* The OpenAirInterface Software Alliance licenses this file to You under
|
||||
* the OAI Public License, Version 1.1 (the "License"); you may not use this file
|
||||
* except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.openairinterface.org/?page_id=698
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*-------------------------------------------------------------------------------
|
||||
* For more information about the OpenAirInterface (OAI) Software Alliance:
|
||||
* contact@openairinterface.org
|
||||
*/
|
||||
|
||||
/**********************************************************************
|
||||
*
|
||||
* FILENAME : pbch_test.c
|
||||
*
|
||||
* MODULE : UE test bench for sss tests
|
||||
*
|
||||
* DESCRIPTION : it allows unitary tests for SSS on host machine
|
||||
*
|
||||
************************************************************************/
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <math.h>
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <limits.h>
|
||||
|
||||
typedef int nfapi_nr_pfcch_commonSearchSpaces_t;
|
||||
#include "../nfapi/open-nFAPI/nfapi/public_inc/nfapi_nr_interface.h"
|
||||
|
||||
#include "PHY/defs_nr_UE.h"
|
||||
#include "PHY/phy_extern_nr_ue.h"
|
||||
#include "PHY/INIT/init_extern.h"
|
||||
#include "PHY/NR_UE_TRANSPORT/nr_transport_ue.h"
|
||||
#include "PHY/NR_UE_TRANSPORT/nr_transport_proto_ue.h"
|
||||
|
||||
#include "PHY/NR_REFSIG/ss_pbch_nr.h"
|
||||
#include "PHY/NR_REFSIG/pss_nr.h"
|
||||
#include "PHY/NR_REFSIG/sss_nr.h"
|
||||
#include "PHY/NR_REFSIG/dmrs_nr.h"
|
||||
|
||||
#include "../../unit_tests/src/pss_util_test.h"
|
||||
|
||||
/************** EXTERNAL ******************************************/
|
||||
|
||||
extern int pbch_detection(PHY_VARS_NR_UE *ue, runmode_t mode);
|
||||
|
||||
/*******************************************************************
|
||||
*
|
||||
* NAME : test_synchro_pss_sss_nr
|
||||
*
|
||||
* INPUT : UE context
|
||||
* for first and second pss sequence
|
||||
* - position of pss in the received UE buffer
|
||||
* - number of pss sequence
|
||||
*
|
||||
* RETURN : 0 if OK else error
|
||||
*
|
||||
* DESCRIPTION : detect pss sequences in the received UE buffer
|
||||
* then detect sss sequence
|
||||
*
|
||||
* Test procedure:
|
||||
* - reference pss sequences (first, second or both) are written at specific
|
||||
* positions
|
||||
* - correlation is done between the received buffer and the possible pss sequences
|
||||
* - results indicate pss sequence number and correlation result
|
||||
* - reference sss sequences are written at specific positions
|
||||
* - correlation is done with possible sss sequence
|
||||
*
|
||||
* (10 ms)
|
||||
* <--------------------------------------------------------------------------->
|
||||
* -----------------------------------------------------------------------------
|
||||
* | Received UE data buffer |
|
||||
* ----------------------------------------------------------------------------
|
||||
* ---------------------------------------------
|
||||
* <-------------->| pss | pbch | sss | pbch |
|
||||
* ---------------------------------------------
|
||||
* offset
|
||||
*
|
||||
* SSS/PBCH block contains following symbols: pss + pbch + sss + pbch
|
||||
*
|
||||
*********************************************************************/
|
||||
|
||||
int test_synchro_pss_sss_nr(PHY_VARS_NR_UE *PHY_vars_UE, int position_symbol, int pss_sequence_number)
|
||||
{
|
||||
NR_DL_FRAME_PARMS *frame_parms = &(PHY_vars_UE->frame_parms);
|
||||
UE_nr_rxtx_proc_t proc = {0};
|
||||
int synchro_position;
|
||||
int offset;
|
||||
int16_t *tmp;
|
||||
int32_t metric_fdd_ncp=0;
|
||||
uint8_t phase_fdd_ncp;
|
||||
int rate_change = SYNCHRO_RATE_CHANGE_FACTOR;
|
||||
int decoded_pbch = -1;
|
||||
|
||||
set_sequence_pss(PHY_vars_UE, position_symbol, pss_sequence_number);
|
||||
|
||||
synchro_position = pss_synchro_nr(PHY_vars_UE, rate_change);
|
||||
|
||||
synchro_position = synchro_position * rate_change;
|
||||
|
||||
if (abs(synchro_position - position_symbol) > PSS_DETECTION_MARGIN_MAX)
|
||||
{
|
||||
printf("NR Pss has been detected at position %d instead of %d \n", synchro_position, position_symbol);
|
||||
}
|
||||
|
||||
/* symbols order for synchronisation block is PSS - PBCH - SSS */
|
||||
/* knowing that synchronisation position gives pss ofdm start one can deduce start of sss symbol */
|
||||
offset = (position_symbol + (SSS_SYMBOL_NB - PSS_SYMBOL_NB)*(frame_parms->ofdm_symbol_size + frame_parms->nb_prefix_samples));
|
||||
|
||||
tmp = (int16_t *)&PHY_vars_UE->common_vars.rxdata[0][offset];
|
||||
|
||||
insert_sss_nr(tmp, frame_parms);
|
||||
|
||||
//PHY_vars_UE->rx_offset = position_symbol; /* offset is given for samples of type int16 */
|
||||
PHY_vars_UE->rx_offset = synchro_position; /* offset is given for samples of type int16 */
|
||||
|
||||
#if TEST_SYNCHRO_TIMING_PSS
|
||||
|
||||
start_meas(&generic_time[TIME_SSS]);
|
||||
|
||||
#endif
|
||||
|
||||
rx_sss_nr(PHY_vars_UE, &proc, &metric_fdd_ncp, &phase_fdd_ncp);
|
||||
|
||||
#if TEST_SYNCHRO_TIMING_PSS
|
||||
|
||||
stop_meas(&generic_time[TIME_SSS]);
|
||||
|
||||
#ifndef NR_UNIT_TEST
|
||||
|
||||
printf("PSS execution duration %5.2f \n", generic_time[TIME_PSS].p_time/(cpuf*1000.0));
|
||||
|
||||
printf("SSS execution duration %5.2f \n", generic_time[TIME_SSS].p_time/(cpuf*1000.0));
|
||||
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
if (phase_fdd_ncp != INDEX_NO_PHASE_DIFFERENCE) {
|
||||
printf("Error: detected phase on sss is not correct: expected index phase is %d, detected index phase is %d !\n", INDEX_NO_PHASE_DIFFERENCE, phase_fdd_ncp);
|
||||
return -1;
|
||||
}
|
||||
|
||||
generate_dmrs_pbch(PHY_vars_UE->dmrs_pbch_bitmap_nr, frame_parms->Nid_cell);
|
||||
|
||||
decoded_pbch = pbch_detection(PHY_vars_UE, PHY_vars_UE->mode);
|
||||
|
||||
return decoded_pbch;
|
||||
}
|
||||
|
||||
/*******************************************************************
|
||||
*
|
||||
* NAME : set_sequence_sss
|
||||
*
|
||||
* PARAMETERS : UE context
|
||||
* position of sss in the received UE buffer
|
||||
*
|
||||
* RETURN : none
|
||||
*
|
||||
* DESCRIPTION : write reference sss sequence at a specified sample position in the received UE buffer
|
||||
*
|
||||
*********************************************************************/
|
||||
void set_sequence_sss(PHY_VARS_NR_UE *PHY_vars_UE, int offset, int slot_offset)
|
||||
{
|
||||
NR_DL_FRAME_PARMS *frame_parms = &(PHY_vars_UE->frame_parms);
|
||||
int length = frame_parms->ofdm_symbol_size;
|
||||
int size = length * IQ_SIZE; /* i & q */
|
||||
nfapi_config_request_t nfapi_config;
|
||||
int16_t data_sss[LENGTH_SSS_NR];
|
||||
|
||||
nfapi_config.sch_config.physical_cell_id.value = PHY_vars_UE->frame_parms.Nid_cell;
|
||||
|
||||
/* reinitialise random for always getting same data */
|
||||
srand(0);
|
||||
int random;
|
||||
for (int i=0; i< size/2; i++) {
|
||||
random = ((rand() % AMP) - AMP/2); /* AMP allows to get a scaling of samples */
|
||||
synchroF_tmp[i] = random;
|
||||
}
|
||||
|
||||
bzero(synchro_tmp, size);
|
||||
|
||||
/* Computation of below offset has been added due to function generate_sss which is used for eNodeB to process transmission */
|
||||
/* so it is based on a transmitted buffer which has been dimensioned for a full frame */
|
||||
/* here one uses a smaller buffer according to the size of an ofdm symbol so it can not properly work in this case. */
|
||||
/* so in order to only write in this buffer, pointer of the buffer has been modified in such a way that function */
|
||||
/* generate_sss writes correct data at the right buffer location */
|
||||
/* this address offset is applied for SSS which is in the second part of the frame */
|
||||
int Nsymb = (frame_parms->Ncp==NORMAL)?14:12;
|
||||
int index_offset = slot_offset*Nsymb/2*frame_parms->ofdm_symbol_size;
|
||||
int16_t *tmp = synchroF_tmp - (2*index_offset);
|
||||
|
||||
#if 0
|
||||
|
||||
nr_generate_sss(data_sss,
|
||||
(int32_t **)&tmp,
|
||||
AMP,
|
||||
0, // symbol number
|
||||
&nfapi_config,
|
||||
frame_parms);
|
||||
|
||||
/* get sss in the frequency domain by applying an inverse FFT */
|
||||
idft2048(synchroF_tmp, /* complex input */
|
||||
synchro_tmp, /* complex output */
|
||||
1); /* scaling factor */
|
||||
|
||||
for (int aa=0;aa<PHY_vars_UE->frame_parms.nb_antennas_rx;aa++) {
|
||||
|
||||
/* copy sss in rx buffer */
|
||||
for (int i=0; i<length; i++) {
|
||||
((int32_t*)PHY_vars_UE->common_vars.rxdata[aa])[i + offset] = ((int32_t *)synchro_tmp)[i];
|
||||
}
|
||||
}
|
||||
#else
|
||||
|
||||
insert_sss_nr(tmp, frame_parms);
|
||||
|
||||
#endif
|
||||
}
|
||||
|
||||
/*******************************************************************
|
||||
*
|
||||
* NAME : insert_sequence_sss
|
||||
*
|
||||
* PARAMETERS : UE context
|
||||
* position of sss in the received UE buffer
|
||||
*
|
||||
* RETURN : none
|
||||
*
|
||||
* DESCRIPTION : write reference sss sequence at a specified sample position in the received UE buffer
|
||||
*
|
||||
*********************************************************************/
|
||||
|
||||
void insert_sequence_sss(PHY_VARS_NR_UE *PHY_vars_UE, int offset)
|
||||
{
|
||||
NR_DL_FRAME_PARMS *frame_parms = &(PHY_vars_UE->frame_parms);
|
||||
int samples_for_half_frame = frame_parms->samples_per_frame / 2;
|
||||
|
||||
set_sequence_sss(PHY_vars_UE, offset, 0);
|
||||
|
||||
set_sequence_sss(PHY_vars_UE, offset + samples_for_half_frame, 10);
|
||||
}
|
||||
|
||||
/********************************************************************
|
||||
*
|
||||
* NAME : test_synchro_pss_sss
|
||||
*
|
||||
* INPUT : UE context
|
||||
* for first and second pss sequence
|
||||
* - position of pss in the received UE buffer
|
||||
* - number of pss sequence
|
||||
*
|
||||
* RETURN : 0 if OK else error
|
||||
*
|
||||
* DESCRIPTION : detect pss sequences in the received UE buffer
|
||||
* then detect sss sequence
|
||||
*
|
||||
* Test procedure:
|
||||
*
|
||||
* - reference pss sequences (first, second or both) are written at specific
|
||||
* positions
|
||||
* - correlation is done between the received buffer and the possible pss sequences
|
||||
* - results indicate pss sequence number and correlation result
|
||||
* - reference sss sequences are written at specific positions
|
||||
* - correlation is done with possible sss sequence
|
||||
*
|
||||
* (10 ms)
|
||||
* <--------------------------------------------------------------------------->
|
||||
* -----------------------------------------------------------------------------
|
||||
* | Received UE data buffer |
|
||||
* ----------------------------------------------------------------------------
|
||||
* ------------- -------------
|
||||
* <-------------->| first pss |<--------------------->| second pss |
|
||||
* position ------------- (5 ms) -------------
|
||||
* ---------- ----------
|
||||
* | first sss| |second sss|
|
||||
* ------------ -----------
|
||||
* As specified by the standard:
|
||||
* - first and second sss sequence are different -> allow to get frame slot timing
|
||||
* - first sss sequence is located in slot 0 and second sss sequence is in slot 10
|
||||
* - ofdm symbol of sss is just before ofdm symbol of pss
|
||||
*
|
||||
*********************************************************************/
|
||||
|
||||
int test_synchro_pss_sss(PHY_VARS_NR_UE *PHY_vars_UE, int position_symbol, int sequence_number, test_t *test)
|
||||
{
|
||||
VOID_PARAMETER test;
|
||||
NR_DL_FRAME_PARMS *frame_parms = &(PHY_vars_UE->frame_parms);
|
||||
int synchro_position;
|
||||
int offset;
|
||||
int32_t metric_fdd_ncp=0;
|
||||
uint8_t flip_fdd_ncp;
|
||||
uint8_t phase_fdd_ncp;
|
||||
int rate_change = SYNCHRO_RATE_CHANGE_FACTOR; /* by default there is no sampling rate change */
|
||||
int decoded_pbch = -1;
|
||||
|
||||
offset = position_symbol - frame_parms->ofdm_symbol_size - frame_parms->nb_prefix_samples;
|
||||
|
||||
if (offset < 0)
|
||||
{
|
||||
printf("Test aborted because sss position is outside the window\n");
|
||||
exit(0);
|
||||
}
|
||||
|
||||
set_sequence_pss(PHY_vars_UE, position_symbol, sequence_number);
|
||||
|
||||
synchro_position = pss_synchro_nr(PHY_vars_UE, rate_change);
|
||||
|
||||
printf("Pss has been detected at position %d with Nid2 %d \n", synchro_position, PHY_vars_UE->common_vars.eNb_id );
|
||||
|
||||
insert_sequence_sss(PHY_vars_UE, offset);
|
||||
|
||||
if ((frame_parms->Ncp != NORMAL) || (frame_parms->frame_type != FDD)) {
|
||||
printf("This configuration is not supported. Please use call to function ""initial_sync"" for covering others configurations.\n");
|
||||
exit(0);
|
||||
}
|
||||
|
||||
int sync_pos2 = synchro_position - frame_parms->nb_prefix_samples;
|
||||
|
||||
int sync_pos_slot = (frame_parms->samples_per_slot>>1) - frame_parms->ofdm_symbol_size - frame_parms->nb_prefix_samples;
|
||||
|
||||
if (sync_pos2 >= sync_pos_slot)
|
||||
PHY_vars_UE->rx_offset = sync_pos2 - sync_pos_slot;
|
||||
else
|
||||
PHY_vars_UE->rx_offset = FRAME_LENGTH_COMPLEX_SAMPLES + sync_pos2 - sync_pos_slot;
|
||||
|
||||
rx_sss(PHY_vars_UE, &metric_fdd_ncp, &flip_fdd_ncp, &phase_fdd_ncp);
|
||||
|
||||
if (phase_fdd_ncp != INDEX_NO_PHASE_DIFFERENCE) {
|
||||
printf("Error: detected phase on sss is not correct: expected index phase is %d, detected index phase is %d !\n", INDEX_NO_PHASE_DIFFERENCE, phase_fdd_ncp);
|
||||
return -1;
|
||||
}
|
||||
|
||||
init_frame_parms(&PHY_vars_UE->frame_parms,1);
|
||||
|
||||
//lte_gold_new(frame_parms, PHY_vars_UE->lte_gold_table[0],frame_parms->Nid_cell);
|
||||
|
||||
decoded_pbch = pbch_detection(PHY_vars_UE, PHY_vars_UE->mode);
|
||||
|
||||
return decoded_pbch;
|
||||
}
|
||||
|
||||
/*******************************************************************
|
||||
*
|
||||
* NAME : main
|
||||
*
|
||||
* DESCRIPTION : test bench for synchronisation sequence (pss/sss/pbch)
|
||||
* purpose of test is to check that synchronisation sequence can be
|
||||
* properly detected depending of input waveforms.
|
||||
*
|
||||
* - First step of synchronisation consists in pss search (primary synchronisation signal).
|
||||
* pss sequence should be detected at the right position
|
||||
* in the received buffer whatever the position along the
|
||||
* received data buffer.
|
||||
* Detection of position is based on correlation in time domain between
|
||||
* received signal and pss sequence -> position is given by
|
||||
* peak of correlation result.
|
||||
* - Second step of synchronisation is sss decoding (secundary synchronisation signal).
|
||||
* sss detection is based on position of detected pss.
|
||||
*
|
||||
*********************************************************************/
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
VOID_PARAMETER argc;
|
||||
VOID_PARAMETER argv;
|
||||
uint8_t transmission_mode = 1;
|
||||
uint8_t nb_antennas_tx = 1;
|
||||
uint8_t nb_antennas_rx = 1;
|
||||
uint8_t frame_type = FDD;
|
||||
int N_RB_DL=100;
|
||||
lte_prefix_type_t extended_prefix_flag = NORMAL;
|
||||
int decoded_pbch = -1;
|
||||
int Nid1, Nid2;
|
||||
const char *name_test = " PBCH NR ";
|
||||
test_t test = { name_test, 0, 0, 0, 0};
|
||||
|
||||
#if 1
|
||||
int test_position[] = { 20000 }; /* this is the sample number in the frame */
|
||||
#else
|
||||
int test_position[] = { -1 }; /* to get samples from a buffer initialised from an external file */
|
||||
#endif
|
||||
|
||||
int size_test_position;
|
||||
|
||||
/* this is a pointer to the function in charge of the test */
|
||||
int (*p_test_synchro_pss_sss)(PHY_VARS_NR_UE *PHY_vars_UE, int position_symbol, int sequence_number) = test_synchro_pss_sss_nr;
|
||||
|
||||
#if 0
|
||||
int Nid_cell[] = { (3*0+0), (3*71+0), (3*21+2), (3*21+2), (3*55+1), (3*111+2) };
|
||||
#else
|
||||
int Nid_cell[] = { ((3*1+2)) };
|
||||
#endif
|
||||
|
||||
printf(" PBCH TEST \n");
|
||||
printf("----------\n");
|
||||
|
||||
if (init_test(nb_antennas_tx, nb_antennas_rx, transmission_mode, extended_prefix_flag, frame_type, Nid_cell[0], N_RB_DL) != 0) {
|
||||
printf("Initialisation problem for synchronisation test \n");
|
||||
exit(-1);;
|
||||
}
|
||||
|
||||
p_test_synchro_pss_sss = test_synchro_pss_sss_nr;
|
||||
size_test_position = sizeof(test_position)/sizeof(int);
|
||||
|
||||
printf("***********************************\n");
|
||||
printf(" %s Test NR synchroisation \n", test.test_current);
|
||||
printf("***********************************\n");
|
||||
|
||||
for (unsigned int index = 0; index < (sizeof(Nid_cell)/sizeof(int)); index++) {
|
||||
|
||||
Nid2 = GET_NID2(Nid_cell[index]);
|
||||
Nid1 = GET_NID1(Nid_cell[index]);
|
||||
|
||||
for (int position = 0; position < size_test_position; position++) {
|
||||
|
||||
PHY_vars_UE->frame_parms.Nid_cell = (3 * N_ID_1_NUMBER) + N_ID_2_NUMBER; /* set to unvalid value */
|
||||
|
||||
decoded_pbch = (*p_test_synchro_pss_sss)(PHY_vars_UE, test_position[position], Nid2); /* return phase index which gives phase error from an array */
|
||||
|
||||
test.number_of_tests++;
|
||||
printf("\n%s ", test.test_current);
|
||||
|
||||
if (PHY_vars_UE->frame_parms.Nid_cell == (3 * Nid1) + Nid2) {
|
||||
if (decoded_pbch != -1) {
|
||||
printf("Test is pass with offset %d Nid1 %d Nid2 %d \n", test_position[position], Nid1, Nid2);
|
||||
test.number_of_pass++;
|
||||
}
|
||||
else {
|
||||
printf("Test is fail because pbch has not been decoded \n");
|
||||
test.number_of_fail++;
|
||||
}
|
||||
}
|
||||
else {
|
||||
printf("Test is fail with offset %d Nid1 %d Nid2 %d \n", test_position[position], Nid1, Nid2);
|
||||
test.number_of_fail++;
|
||||
}
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
printf("\n %s Number of tests : %d Pass : %d Pass with warning : %d Fail : %d \n", test.test_current, test.number_of_tests, test.number_of_pass, test.number_of_pass_warning, test.number_of_fail);
|
||||
|
||||
printf("%s Synchronisaton test is terminated.\n\n", test.test_current);
|
||||
|
||||
/* reset test statistics */
|
||||
test.number_of_tests = test.number_of_pass = test.number_of_pass_warning = test.number_of_fail = 0;
|
||||
|
||||
free_context_synchro_nr();
|
||||
|
||||
return(0);
|
||||
}
|
||||
@@ -1,239 +0,0 @@
|
||||
/*
|
||||
* Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
|
||||
* contributor license agreements. See the NOTICE file distributed with
|
||||
* this work for additional information regarding copyright ownership.
|
||||
* The OpenAirInterface Software Alliance licenses this file to You under
|
||||
* the OAI Public License, Version 1.1 (the "License"); you may not use this file
|
||||
* except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.openairinterface.org/?page_id=698
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*-------------------------------------------------------------------------------
|
||||
* For more information about the OpenAirInterface (OAI) Software Alliance:
|
||||
* contact@openairinterface.org
|
||||
*/
|
||||
|
||||
/**********************************************************************
|
||||
*
|
||||
* FILENAME : pss_test.c
|
||||
*
|
||||
* MODULE : UE test bench for synchronisation
|
||||
*
|
||||
* DESCRIPTION : it allows unitary tests of UE synchronisation on host machine
|
||||
*
|
||||
************************************************************************/
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <math.h>
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <limits.h>
|
||||
|
||||
#include "../../unit_tests/src/pss_util_test.h"
|
||||
#include "PHY/defs_nr_UE.h"
|
||||
#include "PHY/INIT/init_extern.h"
|
||||
#include "PHY/phy_extern_nr_ue.h"
|
||||
|
||||
#include "PHY/NR_REFSIG/ss_pbch_nr.h"
|
||||
#include "PHY/NR_REFSIG/pss_nr.h"
|
||||
#include "PHY/NR_REFSIG/sss_nr.h"
|
||||
#include "PHY/NR_REFSIG/dmrs_nr.h"
|
||||
|
||||
|
||||
/************** DEFINE *******************************************/
|
||||
|
||||
/*************** LOCAL VARIABLES***********************************/
|
||||
|
||||
/*************** FUNCTIONS ****************************************/
|
||||
|
||||
/********************************************************************
|
||||
*
|
||||
* NAME : pss_test
|
||||
*
|
||||
* INPUT : UE context
|
||||
* for a pss sequence
|
||||
* - position of pss in the received UE buffer
|
||||
* - number of pss sequence
|
||||
*
|
||||
* RETURN : 0 if OK else error
|
||||
*
|
||||
* DESCRIPTION : detect pss sequences in the received UE buffer
|
||||
*
|
||||
* Test procedure:
|
||||
*
|
||||
* - reference pss sequences is written at a specific position
|
||||
* - correlation is done between the received buffer and the possible pss sequences
|
||||
* - results indicate pss sequence number and correlation result.
|
||||
*
|
||||
* Test is pass if detection of pss position is the one which has been set.
|
||||
*
|
||||
* (10 ms)
|
||||
* <--------------------------------------------------------------------------->
|
||||
* -----------------------------------------------------------------------------
|
||||
* | Received UE data buffer |
|
||||
* ----------------------------------------------------------------------------
|
||||
* +-----------+
|
||||
* <--------->| pss |
|
||||
* position +-----------+
|
||||
* ^
|
||||
* |
|
||||
* peak position
|
||||
* given by maximum of correlation result
|
||||
* position matches beginning of ofdm symbol
|
||||
*
|
||||
* Remark: memory position should be aligned on a multiple of 4 due to I & Q samples of int16
|
||||
* An OFDM symbol is composed of x number of received samples depending of Rf front end sample rate.
|
||||
*
|
||||
* I & Q storage in memory
|
||||
*
|
||||
* First samples Second samples
|
||||
* ------------------------- ------------------------- ...
|
||||
* | I1 | Q1 | I2 | Q2 |
|
||||
* --------------------------------------------------- ...
|
||||
* ^ 16 bits 16 bits ^
|
||||
* | |
|
||||
* --------------------------------------------------- ...
|
||||
* | sample 1 | sample 2 |
|
||||
* ---------------------------------------------------- ...
|
||||
* ^
|
||||
* |
|
||||
* OFDM in time
|
||||
*
|
||||
*********************************************************************/
|
||||
|
||||
void test_synchro_pss_nr(PHY_VARS_NR_UE *PHY_VARS_NR_UE, int position_symbol, int pss_sequence_number, test_t *test)
|
||||
{
|
||||
int rate_change = SYNCHRO_RATE_CHANGE_FACTOR;
|
||||
int synchro_position;
|
||||
int NID2_value;
|
||||
|
||||
display_test_configuration_pss(position_symbol, pss_sequence_number);
|
||||
|
||||
set_sequence_pss(PHY_VARS_NR_UE, position_symbol, pss_sequence_number);
|
||||
|
||||
/* search pss */
|
||||
synchro_position = pss_synchro_nr(PHY_VARS_NR_UE, rate_change);
|
||||
int pss_sequence = get_softmodem_params()->sl_mode == 0 ? NUMBER_PSS_SEQUENCE : NUMBER_PSS_SEQUENCE_SL;
|
||||
|
||||
if (pss_sequence_number < pss_sequence) {
|
||||
NID2_value = pss_sequence_number;
|
||||
} else {
|
||||
NID2_value = pss_sequence;
|
||||
}
|
||||
|
||||
if (NID2_value < pss_sequence) {
|
||||
test->number_of_tests++;
|
||||
/* position should be adjusted with i&q samples which are successively stored as int16 in the received buffer */
|
||||
int test_margin = PSS_DETECTION_MARGIN_MAX; /* warning correlation results give an offset position between 0 and 12 */
|
||||
int delta_position = abs(position_symbol - (synchro_position*rate_change));
|
||||
printf("%s ", test->test_current);
|
||||
if (PHY_VARS_NR_UE->common_vars.eNb_id == pss_sequence_number) {
|
||||
if ( delta_position != 0) {
|
||||
if (delta_position > test_margin*rate_change) {
|
||||
printf("Test is fail due to wrong position %d instead of %d \n", (synchro_position*rate_change), position_symbol);
|
||||
printf("%s ", test->test_current);
|
||||
printf("Test is fail : pss detected with a shift of %d \n", delta_position);
|
||||
test->number_of_fail++;
|
||||
}
|
||||
else {
|
||||
printf("Test is pass with warning: pss detected with a shift of %d \n", delta_position);
|
||||
test->number_of_pass_warning++;
|
||||
}
|
||||
}
|
||||
else {
|
||||
printf("Test is pass: pss detected at right position \n");
|
||||
test->number_of_pass++;
|
||||
}
|
||||
}
|
||||
else {
|
||||
printf("Test is fail due to wrong NID2 detection %d instead of %d \n", PHY_VARS_NR_UE->common_vars.eNb_id, NID2_value);
|
||||
test->number_of_fail++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*******************************************************************
|
||||
*
|
||||
* NAME : main
|
||||
*
|
||||
* DESCRIPTION : test bench for synchronisation sequence (pss/sss/pbch)
|
||||
* purpose of test is to check that synchronisation sequence can be
|
||||
* properly detected depending of input waveforms.
|
||||
*
|
||||
* - First step of synchronisation is pss sequence.
|
||||
* pss sequence should be detected at the right position
|
||||
* in the received buffer whatever the position along the
|
||||
* received data buffer.
|
||||
* Detection of position is based on correlation in time domain between
|
||||
* received signal and pss sequence -> position is given by
|
||||
* peak of correlation result.
|
||||
*
|
||||
*********************************************************************/
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
VOID_PARAMETER argc;
|
||||
VOID_PARAMETER argv;
|
||||
uint8_t transmission_mode = 1;
|
||||
uint8_t nb_antennas_tx = 1;
|
||||
uint8_t nb_antennas_rx = 1;
|
||||
uint16_t Nid_cell=123;
|
||||
uint8_t frame_type=FDD;
|
||||
int N_RB_DL=100;
|
||||
lte_prefix_type_t extended_prefix_flag=NORMAL;
|
||||
const char *name_test = "PSS NR";
|
||||
test_t test = { name_test, 0, 0, 0, 0};
|
||||
/* this is a pointer to the function in charge of the test */
|
||||
void (*p_test_synchro_pss)(PHY_VARS_NR_UE *PHY_VARS_NR_UE, int position_symbol, int pss_sequence_number, test_t *test) = test_synchro_pss_nr;
|
||||
|
||||
int test_position[] = { 0, 492, 493, 56788, 56888, 111111, 151234, 151500, 200000, 250004, (307200-2048) };
|
||||
int size_test_position = sizeof(test_position)/sizeof(int);
|
||||
|
||||
printf(" PSS TEST \n");
|
||||
printf("----------\n");
|
||||
|
||||
if (init_test(nb_antennas_tx, nb_antennas_rx, transmission_mode, extended_prefix_flag, frame_type, Nid_cell, N_RB_DL) != 0) {
|
||||
printf("Initialisation problem for synchronisation test \n");
|
||||
exit(-1);;
|
||||
}
|
||||
|
||||
printf("***********************************\n");
|
||||
printf(" %s Test synchronisation \n", test.test_current);
|
||||
printf("***********************************\n");
|
||||
|
||||
#if 0
|
||||
|
||||
printf("Synchronisation with random data\n");
|
||||
|
||||
test_synchro_pss_nr(PHY_vars_UE, 0, INVALID_PSS_SEQUENCE, &test);
|
||||
|
||||
#endif
|
||||
int pss_sequence = get_softmodem_params()->sl_mode == 0 ? NUMBER_PSS_SEQUENCE : NUMBER_PSS_SEQUENCE_SL;
|
||||
|
||||
for (int index_position = 0; index_position < size_test_position; index_position++) {
|
||||
for (int number_pss_sequence = 0; number_pss_sequence < pss_sequence; number_pss_sequence++) {
|
||||
|
||||
p_test_synchro_pss(PHY_vars_UE, test_position[index_position], number_pss_sequence, &test);
|
||||
|
||||
//break;
|
||||
}
|
||||
//break;
|
||||
}
|
||||
|
||||
printf("\n%s Number of tests : %d Pass : %d Pass with warning : %d Fail : %d \n\n", test.test_current, test.number_of_tests, test.number_of_pass, test.number_of_pass_warning, test.number_of_fail);
|
||||
|
||||
printf("%s Synchronisaton test is terminated.\n\n", test.test_current);
|
||||
|
||||
/* reset test statistics */
|
||||
test.number_of_tests = test.number_of_pass = test.number_of_pass_warning = test.number_of_fail = 0;
|
||||
|
||||
free_context_synchro_nr();
|
||||
|
||||
return(0);
|
||||
}
|
||||
@@ -1,523 +0,0 @@
|
||||
/*
|
||||
* Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
|
||||
* contributor license agreements. See the NOTICE file distributed with
|
||||
* this work for additional information regarding copyright ownership.
|
||||
* The OpenAirInterface Software Alliance licenses this file to You under
|
||||
* the OAI Public License, Version 1.1 (the "License"); you may not use this file
|
||||
* except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.openairinterface.org/?page_id=698
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*-------------------------------------------------------------------------------
|
||||
* For more information about the OpenAirInterface (OAI) Software Alliance:
|
||||
* contact@openairinterface.org
|
||||
*/
|
||||
|
||||
/*********************************************************************
|
||||
*
|
||||
* FILENAME : pss_util_test.c
|
||||
*
|
||||
* MODULE : UE test bench for unit tests
|
||||
*
|
||||
* DESCRIPTION : it allows unitary tests of NR UE
|
||||
*
|
||||
************************************************************************/
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <math.h>
|
||||
#include <limits.h>
|
||||
#include <signal.h>
|
||||
#include <time.h>
|
||||
|
||||
#include "PHY/defs_nr_UE.h"
|
||||
#include "PHY/INIT/phy_init.h"
|
||||
#include "PHY/phy_extern_nr_ue.h"
|
||||
|
||||
/* to declare ue variables */
|
||||
#include "PHY/phy_vars_nr_ue.h"
|
||||
#include "PHY/LTE_TRANSPORT/transport_vars.h"
|
||||
|
||||
#include "PHY/NR_REFSIG/pss_nr.h"
|
||||
#include "PHY/NR_REFSIG/sss_nr.h"
|
||||
#include "PHY/NR_UE_TRANSPORT/cic_filter_nr.h"
|
||||
|
||||
#define DEFINE_VARIABLES_PSS_NR_H
|
||||
#include "../../unit_tests/src/pss_util_test.h"
|
||||
#undef DEFINE_VARIABLES_PSS_NR_H
|
||||
|
||||
#define DEFINE_VARIABLES_INPUT_BUFFER_TEST_H
|
||||
#include "../../unit_tests/src/input_buffer_test.h"
|
||||
#undef DEFINE_VARIABLES_INPUT_BUFFER_TEST_H
|
||||
|
||||
#include "common/utils/LOG/log.h"
|
||||
|
||||
/************** DEFINE *******************************************/
|
||||
|
||||
/*************** LOCAL VARIABLES***********************************/
|
||||
|
||||
static nfapi_config_request_t config_t;
|
||||
static nfapi_config_request_t *config =&config_t;
|
||||
|
||||
/*************** FUNCTIONS ****************************************/
|
||||
|
||||
//void phy_init_nr_top(NR_DL_FRAME_PARMS *frame_parms);
|
||||
int init_nr_ue_signal(PHY_VARS_NR_UE *ue, int nb_connected_eNB);
|
||||
|
||||
/*******************************************************************
|
||||
*
|
||||
* NAME : apply phase shift
|
||||
*
|
||||
* PARAMETERS : pointer to buffer in frequency
|
||||
* length of sample
|
||||
*
|
||||
* RETURN : none
|
||||
*
|
||||
* DESCRIPTION : apply phase shift to samples
|
||||
*
|
||||
*********************************************************************/
|
||||
|
||||
void phase_shift_samples(int16_t *samples, int length, int16_t phase_shift_re, int16_t phase_shift_im) {
|
||||
int16_t sample_re, sample_im;
|
||||
|
||||
for (int i = 0; i < length; i++) {
|
||||
sample_re = (((phase_shift_re*samples[2*i])>>SCALING_METRIC_SSS_NR) - ((phase_shift_im*samples[2*i+1])>>SCALING_METRIC_SSS_NR));
|
||||
sample_im = (((phase_shift_im*samples[2*i])>>SCALING_METRIC_SSS_NR) + ((phase_shift_re*samples[2*i+1])>>SCALING_METRIC_SSS_NR));
|
||||
samples[2*i] = sample_re;
|
||||
samples[2*i+1] = sample_im;
|
||||
}
|
||||
}
|
||||
|
||||
/*******************************************************************
|
||||
*
|
||||
* NAME : display_data
|
||||
*
|
||||
* PARAMETERS : pointer to buffer
|
||||
* position in the buffer
|
||||
*
|
||||
* RETURN : none
|
||||
*
|
||||
* DESCRIPTION : display pss sequence and data of a buffer
|
||||
*
|
||||
*
|
||||
*********************************************************************/
|
||||
|
||||
void display_data(int pss_sequence_number, int16_t *rxdata, int position) {
|
||||
#ifdef DEBUG_TEST_PSS
|
||||
int pss_sequence = get_softmodem_params()->sl_mode == 0 ? NUMBER_PSS_SEQUENCE : NUMBER_PSS_SEQUENCE_SL;
|
||||
int16_t *pss_sequence[pss_sequence] = {primary_synch0_time, primary_synch1_time, primary_synch2_time};
|
||||
int16_t *pss_sequence_sl[pss_sequence] = {primary_synch0_time, primary_synch1_time};
|
||||
int16_t *pss_sequence_time = pss_sequence[pss_sequence_number];;
|
||||
if (get_softmodem_params()->sl_mode != 0)
|
||||
pss_sequence_time = pss_sequence_sl[pss_sequence_number];
|
||||
printf(" pss %6d data \n", pss_sequence_number);
|
||||
for (int i = 0; i < 4; i++) {
|
||||
if (pss_sequence_number < pss_sequence) {
|
||||
printf("[i %6d] : %4d [i %6d] : %8i at address : %p \n", i, pss_sequence_time[2*i], (i + position), rxdata[2*i + (position*2)], &(rxdata[2*i + (position*2)]));
|
||||
printf("[q %6d] : %4d [q %6d] : %8i at address : %p \n", i, pss_sequence_time[2*i+1], (i + position), rxdata[2*i + 1 + (position*2)], &(rxdata[2*i + 1 + (position*2)]));
|
||||
} else {
|
||||
printf("[i %6d] : Undef [i %6d] : %8i at address : %p \n", i, (i + position), rxdata[2*i + (position*2)], &(rxdata[2*i + (position*2)]));
|
||||
printf("[q %6d] : Undef [q %6d] : %8i at address : %p \n", i, (i + position), rxdata[2*i + 1 + (position*2)], &(rxdata[2*i + 1 + (position*2)]));
|
||||
}
|
||||
}
|
||||
|
||||
nr_init_frame_parms
|
||||
printf(" ... ... \n");
|
||||
#else
|
||||
(void) pss_sequence_number;
|
||||
(void) rxdata;
|
||||
(void) position;
|
||||
#endif
|
||||
}
|
||||
|
||||
/*******************************************************************
|
||||
*
|
||||
* NAME : display_test_configuration_pss
|
||||
*
|
||||
* PARAMETERS :
|
||||
*
|
||||
*
|
||||
* RETURN : none
|
||||
*
|
||||
* DESCRIPTION : display test configuration of pss
|
||||
*
|
||||
*********************************************************************/
|
||||
|
||||
void display_test_configuration_pss(int position, int pss_sequence_number) {
|
||||
const char next_test_text[] = "------------------------------------------------\n";
|
||||
const char test_text_pss[] = "Test nr pss with Nid2 %i at position %i \n";
|
||||
printf(next_test_text);
|
||||
printf(test_text_pss, pss_sequence_number, position);
|
||||
}
|
||||
|
||||
/*******************************************************************
|
||||
*
|
||||
* NAME : display_test_configuration_sss
|
||||
*
|
||||
* PARAMETERS :
|
||||
*
|
||||
*
|
||||
* RETURN : none
|
||||
*
|
||||
* DESCRIPTION : display test configuration of pss
|
||||
*
|
||||
*********************************************************************/
|
||||
|
||||
void display_test_configuration_sss(int sss_sequence_number) {
|
||||
const char test_text_sss[] = "Test nr sss with Nid1 %i \n";
|
||||
printf(test_text_sss, sss_sequence_number);
|
||||
}
|
||||
|
||||
/*******************************************************************
|
||||
*
|
||||
* NAME : undefinedFunction
|
||||
*
|
||||
* PARAMETERS : function name
|
||||
*
|
||||
* RETURN : none
|
||||
*
|
||||
* DESCRIPTION : these functions allow to solve undefined functions at link
|
||||
* function name is printed at execution time for checking that
|
||||
* each function is not called
|
||||
*
|
||||
*********************************************************************/
|
||||
|
||||
void undefined_function(const char *function) {
|
||||
printf("%s undefined \n", function);
|
||||
printf("Warning: function \"%s\" has been replaced by an empty function for avoiding undefined function error at build \n", function);
|
||||
}
|
||||
|
||||
/*******************************************************************
|
||||
*
|
||||
* NAME : init_synchro_test
|
||||
*
|
||||
* PARAMETERS : configuration for UE and eNB
|
||||
*
|
||||
* RETURN : 0 if OK else error
|
||||
*
|
||||
* DESCRIPTION : initialisation of UE and eNode contexts
|
||||
*
|
||||
*********************************************************************/
|
||||
|
||||
int init_test(unsigned char N_tx, unsigned char N_rx, unsigned char transmission_mode,
|
||||
unsigned char extended_prefix_flag, uint8_t frame_type, uint16_t Nid_cell, int N_RB_DL) {
|
||||
(void) transmission_mode;
|
||||
NR_DL_FRAME_PARMS *frame_parms;
|
||||
int log_level = OAILOG_TRACE;
|
||||
logInit();
|
||||
// enable these lines if you need debug info
|
||||
//set_comp_log(PHY,LOG_DEBUG,LOG_HIGH,1);
|
||||
set_glog(log_level);
|
||||
#ifndef NR_UNIT_TEST
|
||||
cpuf = get_cpu_freq_GHz();
|
||||
//LOG_I(PHY, "[CONFIG] Test of UE synchronisation \n");
|
||||
set_component_filelog(USIM); // file located in /tmp/testSynchroue.txt
|
||||
#endif
|
||||
//randominit(0);
|
||||
//set_taus_seed(0);
|
||||
printf("Start lte_param_init, frame_type %d, extended_prefix %d\n",frame_type,extended_prefix_flag);
|
||||
PHY_vars_UE = malloc(sizeof(PHY_VARS_NR_UE));
|
||||
bzero(PHY_vars_UE, sizeof(PHY_VARS_NR_UE));
|
||||
|
||||
if (PHY_vars_UE == NULL)
|
||||
return(-1);
|
||||
|
||||
frame_parms = &(PHY_vars_UE->frame_parms);
|
||||
frame_parms->N_RB_DL = N_RB_DL; //50 for 10MHz and 25 for 5 MHz
|
||||
frame_parms->N_RB_UL = N_RB_DL;
|
||||
frame_parms->Ncp = extended_prefix_flag;
|
||||
frame_parms->Nid_cell = Nid_cell;
|
||||
frame_parms->nb_antennas_tx = N_tx;
|
||||
frame_parms->nb_antennas_rx = N_rx;
|
||||
frame_parms->frame_type = frame_type;
|
||||
frame_parms->nb_antenna_ports_gNB = 1;
|
||||
frame_parms->threequarter_fs = 0;
|
||||
frame_parms->numerology_index = NUMEROLOGY_INDEX_MAX_NR;
|
||||
int mu = 1;
|
||||
int n_ssb_crb = 0;
|
||||
int ssb_subcarrier_offset = 0;
|
||||
nr_init_frame_parms_ue(frame_parms, mu, extended_prefix_flag, N_RB_DL, n_ssb_crb, ssb_subcarrier_offset);
|
||||
int nid_2_num = get_softmodem_params()->sl_mode == 0 ? N_ID_2_NUMBER : N_ID_2_NUMBER_SL;
|
||||
PHY_vars_UE->frame_parms.Nid_cell = (3 * N_ID_1_NUMBER) + nid_2_num; /* set to unvalid value */
|
||||
|
||||
//phy_init_nr_top(frame_parms);
|
||||
|
||||
if (init_nr_ue_signal(PHY_vars_UE, 1) != 0) {
|
||||
LOG_E(PHY,"Error at UE NR initialisation : at line %d in function %s of file %s \n", LINE_FILE , __func__, FILE_NAME);
|
||||
return (0);
|
||||
}
|
||||
|
||||
/* dummy initialisation of global structure PHY_vars_UE_g */
|
||||
uint16_t NB_UE_INST=1;
|
||||
PHY_vars_UE_g = (PHY_VARS_NR_UE ** *)calloc( NB_UE_INST, sizeof(PHY_VARS_NR_UE **));
|
||||
|
||||
for (int UE_id=0; UE_id<NB_UE_INST; UE_id++) {
|
||||
PHY_vars_UE_g[UE_id] = (PHY_VARS_NR_UE **) calloc( MAX_NUM_CCs, sizeof(PHY_VARS_NR_UE *));
|
||||
|
||||
for (int CC_id=0; CC_id<MAX_NUM_CCs; CC_id++) {
|
||||
//(frame_parms[CC_id])->nb_antennas_tx = 1;
|
||||
//(frame_parms[CC_id])->nb_antennas_rx = nb_antennas_rx_ue;
|
||||
// PHY_vars_UE_g[UE_id][CC_id] = init_lte_UE(frame_parms[CC_id], UE_id,abstraction_flag);
|
||||
PHY_vars_UE_g[UE_id][CC_id] = calloc(1, sizeof(PHY_VARS_NR_UE));
|
||||
PHY_vars_UE_g[UE_id][CC_id]->Mod_id=UE_id;
|
||||
PHY_vars_UE_g[UE_id][CC_id]->CC_id=CC_id;
|
||||
}
|
||||
}
|
||||
|
||||
return (0);
|
||||
}
|
||||
|
||||
/*******************************************************************
|
||||
*
|
||||
* NAME : set_random_rx_buffer
|
||||
*
|
||||
* PARAMETERS : Ue context
|
||||
*
|
||||
* RETURN : 0 if OK else error
|
||||
*
|
||||
* DESCRIPTION : write random data in received UE buffer of the synchronisation window
|
||||
*
|
||||
*********************************************************************/
|
||||
|
||||
typedef enum {
|
||||
ZERO_DATA,
|
||||
SINUSOIDAL_DATA,
|
||||
RANDOM_DATA,
|
||||
RANDOM_MAX_DATA
|
||||
} random_data_format_t;
|
||||
|
||||
/* data is a pure cosinus wave */
|
||||
#define SAMPLING_RATE (30720000L)
|
||||
#define SCALING_SINUSOIDAL_DATA (4) /* 16 is max value without decimation */
|
||||
#define FREQUENCY_15_MHZ (15360000L)
|
||||
#define FREQUENCY (FREQUENCY_15_MHZ) /* to generate a frequency with a sampling of 30,72 MHz 5 gives 770 KHz, 20 gives 1,5 MHz, 40 gives 3 MHz */
|
||||
|
||||
void set_random_rx_buffer(PHY_VARS_NR_UE *PHY_vars_UE, int amp) {
|
||||
NR_DL_FRAME_PARMS *frame_parms = &(PHY_vars_UE->frame_parms);
|
||||
int samples_for_frame = frame_parms->samples_per_frame;
|
||||
int16_t random;
|
||||
int16_t *data_p;
|
||||
random_data_format_t data_format = SINUSOIDAL_DATA;
|
||||
/* reinitialise random for always getting same data */
|
||||
srand(0);
|
||||
double n = 0;
|
||||
|
||||
for (int aa=0; aa<PHY_vars_UE->frame_parms.nb_antennas_rx; aa++) {
|
||||
data_p = (int16_t *) &(PHY_vars_UE->common_vars.rxdata[aa][0]);
|
||||
int frequency_switch = samples_for_frame/LTE_NUMBER_OF_SUBFRAMES_PER_FRAME;
|
||||
int frequency_step = 0;
|
||||
double beat = (2*M_PI*FREQUENCY_15_MHZ)/(SAMPLING_RATE);
|
||||
|
||||
for (int i=0; i< samples_for_frame; i++) {
|
||||
switch(data_format) {
|
||||
case ZERO_DATA: {
|
||||
/* all data are forced to zero */
|
||||
random = 0;
|
||||
break;
|
||||
}
|
||||
|
||||
case SINUSOIDAL_DATA: {
|
||||
/* sinusoidal signal */
|
||||
n = cos(beat*i);
|
||||
random = n * (amp * SCALING_SINUSOIDAL_DATA);
|
||||
frequency_step++;
|
||||
|
||||
if (frequency_step == frequency_switch) {
|
||||
beat = beat/2; /* frequency is divided by 2 */
|
||||
//printf("frequency %f at %d\n", (beat/2*M_PI), i);
|
||||
frequency_step = 0;
|
||||
}
|
||||
|
||||
//printf("%d : cos %d %d \n", i, n, random);
|
||||
break;
|
||||
}
|
||||
|
||||
case RANDOM_DATA: {
|
||||
/* random data can take any value between -SHRT_MAX and SHRT_MAX */
|
||||
/* in this case one can use maxim value for uint16 because there is no saturation */
|
||||
#define SCALING_RANDOM_DATA (24) /* 48 is max value without decimation */
|
||||
#define RANDOM_MAX_AMP (amp * SCALING_RANDOM_DATA)
|
||||
random = ((rand() % RANDOM_MAX_AMP) - RANDOM_MAX_AMP/2);
|
||||
break;
|
||||
}
|
||||
|
||||
case RANDOM_MAX_DATA: {
|
||||
/* random data can take only two value (-RANDOM_MAX) or RANDOM_MAX */
|
||||
/* In this case saturation can occur with value of scaling_value greater than 23 */
|
||||
#define SCALING_RANDOM_MAX_DATA (8)
|
||||
#define RANDOM_VALUE (amp * SCALING_RANDOM_DATA)
|
||||
const int random_number[2] = {-1,+1};
|
||||
random = random_number[rand()%2] * RANDOM_VALUE;
|
||||
break;
|
||||
}
|
||||
|
||||
default: {
|
||||
printf("Format of data is undefined \n");
|
||||
assert(0);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
data_p[2*i] = random;
|
||||
data_p[2*i+1] = random;
|
||||
#if 0
|
||||
|
||||
if (i < 10) {
|
||||
printf("random %d \n", random);
|
||||
printf("data[%d] : %d %d at address %p \n", i, data_p[2*i], data_p[2*i+1], &data_p[2*i]);
|
||||
}
|
||||
|
||||
#endif
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*******************************************************************
|
||||
*
|
||||
* NAME : set_pss_in_rx_buffer_from_external_buffer
|
||||
*
|
||||
* PARAMETERS : UE context
|
||||
* position of pss in the received UE buffer
|
||||
* number of pss sequence*
|
||||
*
|
||||
* RETURN : 0 if OK else error
|
||||
*
|
||||
* DESCRIPTION : set received buffer according to an external buffer
|
||||
*
|
||||
*********************************************************************/
|
||||
|
||||
int set_pss_in_rx_buffer_from_external_buffer(PHY_VARS_NR_UE *PHY_vars_UE, short *input_buffer) {
|
||||
NR_DL_FRAME_PARMS *frame_parms = &(PHY_vars_UE->frame_parms);
|
||||
int samples_for_frame = frame_parms->samples_per_frame; /* both i and q */
|
||||
|
||||
for (int aa=0; aa<PHY_vars_UE->frame_parms.nb_antennas_rx; aa++) {
|
||||
for (int i = 0; i < samples_for_frame; i++) {
|
||||
((int16_t *)PHY_vars_UE->common_vars.rxdata[aa])[2*i] = input_buffer[2*i]; /* real part */
|
||||
((int16_t *)PHY_vars_UE->common_vars.rxdata[aa])[2*i+1] = input_buffer[2*i+1]; /* imaginary part */
|
||||
}
|
||||
}
|
||||
|
||||
/* check that sequence has been properly copied */
|
||||
for (int aa=0; aa<PHY_vars_UE->frame_parms.nb_antennas_rx; aa++) {
|
||||
for (int i=0; i<samples_for_frame; i++) {
|
||||
if ((input_buffer[2*i] != ((int16_t *)PHY_vars_UE->common_vars.rxdata[aa])[2*i])
|
||||
|| (input_buffer[2*i+1] != ((int16_t *)PHY_vars_UE->common_vars.rxdata[aa])[2*i+1])) {
|
||||
printf("Sequence pss was not properly copied into received buffer at index %d \n", i);
|
||||
exit(-1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return (0);
|
||||
}
|
||||
|
||||
/*******************************************************************
|
||||
*
|
||||
* NAME : set_pss_in_rx_buffer
|
||||
*
|
||||
* PARAMETERS : UE context
|
||||
* position of pss in the received UE buffer
|
||||
* number of pss sequence*
|
||||
*
|
||||
* RETURN : 0 if OK else error
|
||||
*
|
||||
* DESCRIPTION : write reference pss sequence at a specified sample position in the received UE buffer
|
||||
*
|
||||
* first pss sequence is written into the buffer only if:
|
||||
* - pss sequence is valid
|
||||
* - there is enough room for written the complete sequence
|
||||
*
|
||||
* second sequence is written at a position of 5 ms after first pss sequence if:
|
||||
* - pss sequence is valid
|
||||
* - there is enough room for written the complete sequence*
|
||||
*
|
||||
*********************************************************************/
|
||||
|
||||
int set_pss_in_rx_buffer(PHY_VARS_NR_UE *PHY_vars_UE, int position_symbol, int pss_sequence_number) {
|
||||
NR_DL_FRAME_PARMS *frame_parms = &(PHY_vars_UE->frame_parms);
|
||||
int samples_for_frame = frame_parms->samples_per_frame;
|
||||
int16_t *pss_sequence_time;
|
||||
|
||||
if ((position_symbol > samples_for_frame)
|
||||
|| ((position_symbol + frame_parms->ofdm_symbol_size) > samples_for_frame)) {
|
||||
printf("This pss sequence can not be fully written in the received window \n");
|
||||
return (-1);
|
||||
}
|
||||
int pss_sequence = get_softmodem_params()->sl_mode == 0 ? NUMBER_PSS_SEQUENCE : NUMBER_PSS_SEQUENCE_SL;
|
||||
if ((pss_sequence_number >= pss_sequence) && (pss_sequence_number < 0)) {
|
||||
printf("Unknow pss sequence %d \n", pss_sequence_number);
|
||||
return (-1);
|
||||
}
|
||||
|
||||
pss_sequence_time = primary_synchro_time_nr[pss_sequence_number];
|
||||
|
||||
for (int aa=0; aa<PHY_vars_UE->frame_parms.nb_antennas_rx; aa++) {
|
||||
for (int i = 0; i < frame_parms->ofdm_symbol_size; i++) {
|
||||
((int16_t *)PHY_vars_UE->common_vars.rxdata[aa])[(position_symbol*2) + (2*i)] = pss_sequence_time[2*i]; /* real part */
|
||||
((int16_t *)PHY_vars_UE->common_vars.rxdata[aa])[(position_symbol*2) + (2*i+1)] = pss_sequence_time[2*i+1]; /* imaginary part */
|
||||
}
|
||||
}
|
||||
|
||||
/* check that sequence has been properly copied */
|
||||
for (int aa=0; aa<PHY_vars_UE->frame_parms.nb_antennas_rx; aa++) {
|
||||
for (int i=0; i<(frame_parms->ofdm_symbol_size); i++) {
|
||||
if ((pss_sequence_time[2*i] != ((int16_t *)PHY_vars_UE->common_vars.rxdata[aa])[(position_symbol*2) + (2*i)])
|
||||
|| (pss_sequence_time[2*i+1] != ((int16_t *)PHY_vars_UE->common_vars.rxdata[aa])[(position_symbol*2) + (2*i+1)])) {
|
||||
printf("Sequence pss was not properly copied into received buffer at index %d \n", i);
|
||||
exit(-1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return (0);
|
||||
}
|
||||
|
||||
/*******************************************************************
|
||||
*
|
||||
* NAME : set_sequence_pss
|
||||
*
|
||||
* PARAMETERS : UE context
|
||||
* position of pss in the received UE buffer
|
||||
* number of pss sequence*
|
||||
*
|
||||
* RETURN : 0 if OK else error
|
||||
*
|
||||
* DESCRIPTION : write reference pss sequence at a specified sample position in the received UE buffer
|
||||
*
|
||||
* pss sequence is written into the buffer only if:
|
||||
* - pss sequence is valid
|
||||
* - there is enough room for written the complete sequence*
|
||||
*
|
||||
*********************************************************************/
|
||||
|
||||
void set_sequence_pss(PHY_VARS_NR_UE *PHY_vars_UE, int position_symbol, int pss_sequence_number) {
|
||||
NR_DL_FRAME_PARMS *frame_parms = &(PHY_vars_UE->frame_parms);
|
||||
int samples_for_frame = frame_parms->samples_per_frame;
|
||||
/* initialise received ue data with random */
|
||||
set_random_rx_buffer(PHY_vars_UE, AMP);
|
||||
|
||||
/* in this case input buffer is provided by an external buffer */
|
||||
if (position_symbol < 0) {
|
||||
set_pss_in_rx_buffer_from_external_buffer(PHY_vars_UE, input_buffer);
|
||||
}
|
||||
int pss_sequence = get_softmodem_params()->sl_mode == 0 ? NUMBER_PSS_SEQUENCE : NUMBER_PSS_SEQUENCE_SL;
|
||||
/* write pss sequence in received ue buffer */
|
||||
else if (pss_sequence_number < pss_sequence) {
|
||||
if (position_symbol > (samples_for_frame - frame_parms->ofdm_symbol_size)) {
|
||||
printf("This position for pss sequence %d is not supported because it exceeds the frame length %d!\n", position_symbol, samples_for_frame);
|
||||
exit(0);
|
||||
}
|
||||
|
||||
if (set_pss_in_rx_buffer(PHY_vars_UE, position_symbol, pss_sequence_number) != 0)
|
||||
printf("Warning: pss sequence can not be properly written into received buffer !\n");
|
||||
}
|
||||
|
||||
display_data(pss_sequence_number, (int16_t *)&(PHY_vars_UE->common_vars.rxdata[0][0]), position_symbol);
|
||||
}
|
||||
@@ -1,109 +0,0 @@
|
||||
/*
|
||||
* Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
|
||||
* contributor license agreements. See the NOTICE file distributed with
|
||||
* this work for additional information regarding copyright ownership.
|
||||
* The OpenAirInterface Software Alliance licenses this file to You under
|
||||
* the OAI Public License, Version 1.1 (the "License"); you may not use this file
|
||||
* except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.openairinterface.org/?page_id=698
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*-------------------------------------------------------------------------------
|
||||
* For more information about the OpenAirInterface (OAI) Software Alliance:
|
||||
* contact@openairinterface.org
|
||||
*/
|
||||
|
||||
/**********************************************************************
|
||||
*
|
||||
* FILENAME : pss_util_test.h
|
||||
*
|
||||
* MODULE : UE utilities for test bench of synchronisation
|
||||
*
|
||||
* DESCRIPTION : it allows unitary tests of UE synchronisation on host machine
|
||||
*
|
||||
************************************************************************/
|
||||
|
||||
#ifndef PSS_UTIL_TEST_H
|
||||
#define PSS_UTIL_TEST_H
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <math.h>
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <limits.h>
|
||||
|
||||
#include "PHY/defs_nr_UE.h"
|
||||
#include "PHY/INIT/init_extern.h"
|
||||
#include "PHY/phy_extern_nr_ue.h"
|
||||
|
||||
#include "PHY/NR_REFSIG/pss_nr.h"
|
||||
|
||||
#ifdef DEFINE_VARIABLES_PSS_NR_H
|
||||
#define EXTERN
|
||||
#define INIT_VARIABLES_PSS_NR_H
|
||||
#else
|
||||
#define EXTERN extern
|
||||
#undef INIT_VARIABLES_PSS_NR_H
|
||||
#endif
|
||||
|
||||
/************** DEFINE *******************************************/
|
||||
|
||||
//#define DEBUG_TEST_PSS
|
||||
#define PSS_DETECTION_MARGIN_MAX (4)
|
||||
|
||||
#define NUMEROLOGY_INDEX_MAX_NR (5)
|
||||
|
||||
/*************** TYPE*********************************************/
|
||||
|
||||
typedef struct {
|
||||
const char *test_current;
|
||||
int number_of_tests;
|
||||
int number_of_pass;
|
||||
int number_of_pass_warning;
|
||||
int number_of_fail;
|
||||
} test_t;
|
||||
|
||||
/*************** GLOBAL VARIABLES***********************************/
|
||||
|
||||
EXTERN PHY_VARS_eNB *PHY_vars_eNB;
|
||||
EXTERN PHY_VARS_NR_UE *PHY_vars_UE;
|
||||
|
||||
/*************** FUNCTIONS *****************************************/
|
||||
|
||||
void undefined_function(const char *function);
|
||||
|
||||
void display_data(int pss_sequence_number, int16_t *rxdata, int position);
|
||||
|
||||
void init_decimator_test(void);
|
||||
|
||||
void decimation_synchro_nr(PHY_VARS_NR_UE *PHY_vars_UE, int **rxdata);
|
||||
|
||||
void restore_context_frame(int **rxdata);
|
||||
|
||||
int set_pss_in_rx_buffer(PHY_VARS_NR_UE *PHY_vars_UE, int position_symbol, int pss_sequence_number);
|
||||
|
||||
int init_test(unsigned char N_tx, unsigned char N_rx, unsigned char transmission_mode,
|
||||
unsigned char extended_prefix_flag, uint8_t frame_type, uint16_t Nid_cell,
|
||||
int N_RB_DL);
|
||||
|
||||
void display_test_configuration_pss(int position, int pss_sequence_number);
|
||||
|
||||
void display_test_configuration_sss(int sss_sequence_number);
|
||||
|
||||
int set_pss_nr(int ofdm_symbol_size);
|
||||
|
||||
void set_random_rx_buffer(PHY_VARS_NR_UE *PHY_vars_UE, int amp);
|
||||
|
||||
void set_sequence_pss(PHY_VARS_NR_UE *PHY_vars_UE, int position_symbol, int pss_sequence_number);
|
||||
|
||||
int set_pss_in_rx_buffer_from_external_buffer(PHY_VARS_NR_UE *PHY_vars_UE, short *inputBuffer);
|
||||
|
||||
void phase_shift_samples(int16_t *samples, int length, int16_t phase_shift_re, int16_t phase_shift_im);
|
||||
|
||||
#endif /* PSS_UTIL_TEST_H */
|
||||
@@ -1,269 +0,0 @@
|
||||
/*
|
||||
* Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
|
||||
* contributor license agreements. See the NOTICE file distributed with
|
||||
* this work for additional information regarding copyright ownership.
|
||||
* The OpenAirInterface Software Alliance licenses this file to You under
|
||||
* the OAI Public License, Version 1.1 (the "License"); you may not use this file
|
||||
* except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.openairinterface.org/?page_id=698
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*-------------------------------------------------------------------------------
|
||||
* For more information about the OpenAirInterface (OAI) Software Alliance:
|
||||
* contact@openairinterface.org
|
||||
*/
|
||||
|
||||
/**********************************************************************
|
||||
*
|
||||
* FILENAME : sss_test.c
|
||||
*
|
||||
* MODULE : UE test bench for sss tests
|
||||
*
|
||||
* DESCRIPTION : it allows unitary tests for SSS on host machine
|
||||
*
|
||||
************************************************************************/
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <math.h>
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <limits.h>
|
||||
|
||||
#include "../../unit_tests/src/pss_util_test.h"
|
||||
#include "PHY/defs_nr_UE.h"
|
||||
#include "PHY/INIT/init_extern.h"
|
||||
#include "PHY/phy_extern_nr_ue.h"
|
||||
|
||||
#include "PHY/NR_REFSIG/ss_pbch_nr.h"
|
||||
#include "PHY/NR_REFSIG/pss_nr.h"
|
||||
#include "PHY/NR_REFSIG/sss_nr.h"
|
||||
#include "PHY/NR_REFSIG/dmrs_nr.h"
|
||||
|
||||
|
||||
/*******************************************************************
|
||||
*
|
||||
* NAME : test_synchro_pss_sss_nr
|
||||
*
|
||||
* INPUT : UE context
|
||||
* for first and second pss sequence
|
||||
* - position of pss in the received UE buffer
|
||||
* - number of pss sequence
|
||||
*
|
||||
* RETURN : 0 if OK else error
|
||||
*
|
||||
* DESCRIPTION : detect pss sequences in the received UE buffer
|
||||
* then detect sss sequence
|
||||
*
|
||||
* Test procedure:
|
||||
* - reference pss sequences (first, second or both) are written at specific
|
||||
* positions
|
||||
* - correlation is done between the received buffer and the possible pss sequences
|
||||
* - results indicate pss sequence number and correlation result
|
||||
* - reference sss sequences are written at specific positions
|
||||
* - correlation is done with possible sss sequence
|
||||
*
|
||||
* (10 ms)
|
||||
* <--------------------------------------------------------------------------->
|
||||
* -----------------------------------------------------------------------------
|
||||
* | Received UE data buffer |
|
||||
* ----------------------------------------------------------------------------
|
||||
* ---------------------------------------------
|
||||
* <-------------->| pss | pbch | sss | pbch |
|
||||
* ---------------------------------------------
|
||||
* offset
|
||||
*
|
||||
* SSS/PBCH block contains following symbols: pss + pbch + sss + pbch
|
||||
*
|
||||
*********************************************************************/
|
||||
|
||||
int test_synchro_pss_sss_nr(PHY_VARS_NR_UE *PHY_vars_UE, int position_symbol, NR_DL_FRAME_PARMS *frame_parms_gNB, test_t *test)
|
||||
{
|
||||
UE_nr_rxtx_proc_t proc = {0};
|
||||
VOID_PARAMETER test;
|
||||
int synchro_position;
|
||||
int offset;
|
||||
int16_t *tmp;
|
||||
int32_t metric_fdd_ncp=0;
|
||||
uint8_t phase_fdd_ncp;
|
||||
int rate_change = SYNCHRO_RATE_CHANGE_FACTOR;
|
||||
int Nid2 = GET_NID2(frame_parms_gNB->Nid_cell);
|
||||
int Nid1 = GET_NID1(frame_parms_gNB->Nid_cell);
|
||||
|
||||
display_test_configuration_pss(position_symbol, Nid2);
|
||||
|
||||
set_sequence_pss(PHY_vars_UE, position_symbol, Nid2);
|
||||
|
||||
synchro_position = pss_synchro_nr(PHY_vars_UE, rate_change);
|
||||
|
||||
display_test_configuration_sss(Nid1);
|
||||
|
||||
synchro_position = synchro_position * rate_change;
|
||||
|
||||
if (abs(synchro_position - position_symbol) > PSS_DETECTION_MARGIN_MAX)
|
||||
{
|
||||
printf("NR Pss has been detected at position %d instead of %d \n", synchro_position, position_symbol);
|
||||
}
|
||||
|
||||
/* symbols order for synchronisation block is PSS - PBCH - SSS */
|
||||
/* knowing that synchronisation position gives pss ofdm start one can deduce start of sss symbol */
|
||||
offset = (position_symbol + (SSS_SYMBOL_NB - PSS_SYMBOL_NB)*(PHY_vars_UE->frame_parms.ofdm_symbol_size + PHY_vars_UE->frame_parms.nb_prefix_samples));
|
||||
|
||||
tmp = (int16_t *)&PHY_vars_UE->common_vars.rxdata[0][offset];
|
||||
|
||||
insert_sss_nr(tmp, frame_parms_gNB);
|
||||
|
||||
PHY_vars_UE->rx_offset = position_symbol; /* offset is given for samples of type int16 */
|
||||
|
||||
#if 0
|
||||
|
||||
int samples_for_frame = PHY_vars_UE->frame_parms.samples_per_frame;
|
||||
|
||||
write_output("rxdata0_rand.m","rxd0_rand", &PHY_vars_UE->common_vars.rxdata[0][0], samples_for_frame, 1, 1);
|
||||
|
||||
#endif
|
||||
|
||||
#if TEST_SYNCHRO_TIMING_PSS
|
||||
|
||||
start_meas(&generic_time[TIME_SSS]);
|
||||
|
||||
#endif
|
||||
|
||||
rx_sss_nr(PHY_vars_UE, &proc, &metric_fdd_ncp, &phase_fdd_ncp);
|
||||
|
||||
#if TEST_SYNCHRO_TIMING_PSS
|
||||
|
||||
stop_meas(&generic_time[TIME_SSS]);
|
||||
|
||||
#ifndef NR_UNIT_TEST
|
||||
|
||||
printf("PSS execution duration %5.2f \n", generic_time[TIME_PSS].p_time/(cpuf*1000.0));
|
||||
|
||||
printf("SSS execution duration %5.2f \n", generic_time[TIME_SSS].p_time/(cpuf*1000.0));
|
||||
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
return phase_fdd_ncp;
|
||||
}
|
||||
|
||||
/*******************************************************************
|
||||
*
|
||||
* NAME : main
|
||||
*
|
||||
* DESCRIPTION : test bench for synchronisation sequence (pss/sss/pbch)
|
||||
* purpose of test is to check that synchronisation sequence can be
|
||||
* properly detected depending of input waveforms.
|
||||
*
|
||||
* - First step of synchronisation consists in pss search (primary synchronisation signal).
|
||||
* pss sequence should be detected at the right position
|
||||
* in the received buffer whatever the position along the
|
||||
* received data buffer.
|
||||
* Detection of position is based on correlation in time domain between
|
||||
* received signal and pss sequence -> position is given by
|
||||
* peak of correlation result.
|
||||
* - Second step of synchronisation is sss decoding (secundary synchronisation signal).
|
||||
* sss detection is based on position of detected pss.
|
||||
*
|
||||
*********************************************************************/
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
VOID_PARAMETER argc;
|
||||
VOID_PARAMETER argv;
|
||||
uint8_t transmission_mode = 1;
|
||||
uint8_t nb_antennas_tx = 1;
|
||||
uint8_t nb_antennas_rx = 1;
|
||||
uint8_t frame_type = FDD;
|
||||
int N_RB_DL=100;
|
||||
lte_prefix_type_t extended_prefix_flag = NORMAL;
|
||||
int phase;
|
||||
int Nid1, Nid2;
|
||||
NR_DL_FRAME_PARMS frame_parms_gNB;
|
||||
|
||||
const char *name_test = "SSS NR";
|
||||
test_t test = { name_test, 0, 0, 0, 0};
|
||||
|
||||
#if 1
|
||||
int test_position[] = { 0, 492, 493, 56788, 111111, 222222 }; /* this is the sample number in the frame */
|
||||
#else
|
||||
int test_position[] = {-1}; /* to get samples from an array */
|
||||
#endif
|
||||
|
||||
int size_test_position = sizeof(test_position)/sizeof(int);
|
||||
|
||||
/* this is a pointer to the function in charge of the test */
|
||||
int (*p_test_synchro_pss_sss)(PHY_VARS_NR_UE *PHY_vars_UE, int position_symbol, NR_DL_FRAME_PARMS *frame_parms, test_t *test) = test_synchro_pss_sss_nr;
|
||||
|
||||
#if 1
|
||||
int Nid_cell[] = { (3*0+0), (3*71+0), (3*21+2), (3*21+2), (3*55+1), (3*111+2) };
|
||||
#else
|
||||
int Nid_cell[] = { ((3*1+2)) };
|
||||
#endif
|
||||
|
||||
printf(" SSS TEST \n");
|
||||
printf("----------\n");
|
||||
|
||||
if (init_test(nb_antennas_tx, nb_antennas_rx, transmission_mode, extended_prefix_flag, frame_type, Nid_cell[0], N_RB_DL) != 0) {
|
||||
printf("Initialisation problem for synchronisation test \n");
|
||||
exit(-1);;
|
||||
}
|
||||
|
||||
memcpy((void *)&frame_parms_gNB, (void*)&PHY_vars_UE->frame_parms, sizeof(NR_DL_FRAME_PARMS));
|
||||
|
||||
printf("***********************************\n");
|
||||
printf(" %s Test synchronisation \n", test.test_current);
|
||||
printf("***********************************\n");
|
||||
|
||||
for (unsigned int index = 0; index < (sizeof(Nid_cell)/sizeof(int)); index++) {
|
||||
|
||||
frame_parms_gNB.Nid_cell = Nid_cell[index];
|
||||
|
||||
Nid2 = GET_NID2(Nid_cell[index]);
|
||||
Nid1 = GET_NID1(Nid_cell[index]);
|
||||
int nid_2_num = get_softmodem_params()->sl_mode == 0 ? N_ID_2_NUMBER : N_ID_2_NUMBER_SL;
|
||||
for (int position = 0; position < size_test_position; position++) {
|
||||
|
||||
PHY_vars_UE->frame_parms.Nid_cell = (3 * N_ID_1_NUMBER) + nid_2_num; /* set to invalid value */
|
||||
|
||||
phase = (*p_test_synchro_pss_sss)(PHY_vars_UE, test_position[position], &frame_parms_gNB, &test); /* return phase index which gives phase error from an array */
|
||||
|
||||
test.number_of_tests++;
|
||||
printf("%s ", test.test_current);
|
||||
|
||||
if (PHY_vars_UE->frame_parms.Nid_cell == (3 * Nid1) + Nid2) {
|
||||
if (phase != INDEX_NO_PHASE_DIFFERENCE) {
|
||||
printf("Test is pass with warning due to phase difference %d (instead of %d) offset %d Nid1 %d Nid2 %d \n",
|
||||
phase, INDEX_NO_PHASE_DIFFERENCE, test_position[position], Nid1, Nid2);
|
||||
test.number_of_pass_warning++;
|
||||
} else {
|
||||
printf("Test is pass with offset %d Nid1 %d Nid2 %d \n", test_position[position], Nid1, Nid2);
|
||||
test.number_of_pass++;
|
||||
}
|
||||
}
|
||||
else {
|
||||
printf("Test is fail with offset %d Nid1 %d Nid2 %d \n", test_position[position], Nid1, Nid2);
|
||||
test.number_of_fail++;
|
||||
}
|
||||
//break;
|
||||
}
|
||||
//break;
|
||||
}
|
||||
|
||||
printf("\n%s Number of tests : %d Pass : %d Pass with warning : %d Fail : %d \n", test.test_current, test.number_of_tests, test.number_of_pass, test.number_of_pass_warning, test.number_of_fail);
|
||||
|
||||
printf("%s Synchronisaton test is terminated.\n\n", test.test_current);
|
||||
|
||||
/* reset test statistics */
|
||||
test.number_of_tests = test.number_of_pass = test.number_of_pass_warning = test.number_of_fail = 0;
|
||||
|
||||
free_context_synchro_nr();
|
||||
|
||||
return(0);
|
||||
}
|
||||
Reference in New Issue
Block a user