From 78e0af5893b0596ef449fe00e407d706d7b8b5a2 Mon Sep 17 00:00:00 2001 From: Francesco Mani Date: Wed, 18 Nov 2020 17:45:05 +0100 Subject: [PATCH] adding 10MHz option (values to be verified) --- executables/nr-ru.c | 9 +++++++++ openair1/PHY/INIT/nr_parms.c | 8 +++++++- openair1/SCHED_NR/phy_procedures_nr_gNB.c | 1 + 3 files changed, 17 insertions(+), 1 deletion(-) diff --git a/executables/nr-ru.c b/executables/nr-ru.c index feff0c29c2..7d4e3607df 100644 --- a/executables/nr-ru.c +++ b/executables/nr-ru.c @@ -1113,6 +1113,15 @@ void fill_rf_config(RU_t *ru, char *rf_config_file) { cfg->tx_bw = 40e6; cfg->rx_bw = 40e6; } + } else if(N_RB == 24) { + if (fp->threequarter_fs) { + AssertFatal(0 == 1,"three quarter sampling not supported for N_RB 24\n"); + } else { + cfg->sample_rate=15.36e6; + cfg->samples_per_frame = 153600; + cfg->tx_bw = 10e6; + cfg->rx_bw = 10e6; + } } else { AssertFatal(0==1,"N_RB %d not yet supported for numerology %d\n",N_RB,mu); } diff --git a/openair1/PHY/INIT/nr_parms.c b/openair1/PHY/INIT/nr_parms.c index 92d8c2a1c6..db7a30183b 100644 --- a/openair1/PHY/INIT/nr_parms.c +++ b/openair1/PHY/INIT/nr_parms.c @@ -108,6 +108,12 @@ void set_scs_parameters (NR_DL_FRAME_PARMS *fp, int mu, uint16_t bw) switch(bw){ case 5: + case 10: + fp->ofdm_symbol_size = 512; + fp->first_carrier_offset = 368; //512 - ( (24*12) / 2 ) + fp->nb_prefix_samples0 = 44; + fp->nb_prefix_samples = 36; + break; case 15: case 20: case 25: @@ -200,7 +206,7 @@ void set_scs_parameters (NR_DL_FRAME_PARMS *fp, int mu, uint16_t bw) break; case 50: fp->ofdm_symbol_size = 512; - fp->first_carrier_offset = 320; //1024 - ( (66*12) / 2 ) + fp->first_carrier_offset = 320; //512 - ( (32*12) / 2 ) fp->nb_prefix_samples0 = 68; fp->nb_prefix_samples = 36; break; diff --git a/openair1/SCHED_NR/phy_procedures_nr_gNB.c b/openair1/SCHED_NR/phy_procedures_nr_gNB.c index 9ad0afba85..3ab58c35a7 100644 --- a/openair1/SCHED_NR/phy_procedures_nr_gNB.c +++ b/openair1/SCHED_NR/phy_procedures_nr_gNB.c @@ -379,6 +379,7 @@ void nr_fill_indication(PHY_VARS_gNB *gNB, int frame, int slot_rx, int ULSCH_id, // scale the 16 factor in N_TA calculation in 38.213 section 4.2 according to the used FFT size switch (gNB->frame_parms.N_RB_DL) { + case 24: timing_advance_update /= 4; break; case 106: timing_advance_update /= 16; break; case 217: timing_advance_update /= 32; break; case 245: timing_advance_update /= 32; break;