@ -80,7 +80,7 @@ private:
// Elements of Table 5.4.2.3-1 in TS 38.104
struct nr_band {
uint 8_t band ;
uint 16_t band ;
delta_f_raster_t delta_f_raster ;
uint32_t ul_nref_first ;
uint32_t ul_nref_step ;
@ -92,12 +92,45 @@ private:
// List of NR bands for FR1 (Table 5.4.2.3-1)
// bands with more than one raster offset have multiple entries
// TODO: add remaining bands
static const uint32_t nof_nr_bands_fr1 = 7 ;
static const uint32_t nof_nr_bands_fr1 = 36 ;
static constexpr std : : array < nr_band , nof_nr_bands_fr1 > nr_band_table_fr1 = { {
// clang-format off
{ 1 , KHZ_100 , 384000 , 20 , 396000 , 422000 , 20 , 434000 } ,
{ 2 , KHZ_100 , 370000 , 20 , 382000 , 386000 , 20 , 398000 } ,
{ 3 , KHZ_100 , 342000 , 20 , 357000 , 361000 , 20 , 376000 } ,
{ 5 , KHZ_100 , 164800 , 20 , 169800 , 173800 , 20 , 178800 } ,
{ 7 , KHZ_100 , 500000 , 20 , 514000 , 524000 , 20 , 538000 } ,
{ 8 , KHZ_100 , 176000 , 20 , 183000 , 185000 , 20 , 192000 } ,
{ 12 , KHZ_100 , 139800 , 20 , 143200 , 145800 , 20 , 149200 } ,
{ 20 , KHZ_100 , 166400 , 20 , 172400 , 158200 , 20 , 164200 } ,
{ 25 , KHZ_100 , 370000 , 20 , 383000 , 386000 , 20 , 399000 } ,
{ 28 , KHZ_100 , 140600 , 20 , 149600 , 151600 , 20 , 160600 } ,
{ 34 , KHZ_100 , 402000 , 20 , 405000 , 402000 , 20 , 405000 } ,
{ 38 , KHZ_100 , 514000 , 20 , 524000 , 514000 , 20 , 524000 } ,
{ 39 , KHZ_100 , 376000 , 20 , 384000 , 376000 , 20 , 384000 } ,
{ 40 , KHZ_100 , 460000 , 20 , 480000 , 460000 , 20 , 480000 } ,
{ 41 , KHZ_15 , 499200 , 3 , 537999 , 499200 , 3 , 537999 } ,
{ 41 , KHZ_30 , 499200 , 6 , 537996 , 499200 , 6 , 537996 } ,
{ 50 , KHZ_100 , 286400 , 20 , 303400 , 286400 , 20 , 303400 } ,
{ 51 , KHZ_100 , 285400 , 20 , 286400 , 285400 , 20 , 286400 } ,
{ 66 , KHZ_100 , 342000 , 20 , 356000 , 422000 , 20 , 440000 } ,
{ 70 , KHZ_100 , 339000 , 20 , 342000 , 399000 , 20 , 404000 } ,
{ 71 , KHZ_100 , 132600 , 20 , 139600 , 123400 , 20 , 130400 } ,
{ 74 , KHZ_100 , 285400 , 20 , 294000 , 295000 , 20 , 303600 } ,
// n75+n76 missing
{ 75 , KHZ_100 , 0 , 0 , 0 , 286400 , 20 , 303400 } ,
{ 76 , KHZ_100 , 0 , 0 , 0 , 285400 , 20 , 286400 } ,
{ 77 , KHZ_15 , 620000 , 1 , 680000 , 620000 , 1 , 680000 } ,
{ 77 , KHZ_30 , 620000 , 2 , 680000 , 620000 , 2 , 680000 } ,
@ -105,9 +138,31 @@ private:
{ 78 , KHZ_30 , 620000 , 2 , 653332 , 620000 , 2 , 653332 } ,
{ 79 , KHZ_15 , 693334 , 2 , 733333 , 693334 , 2 , 733333 } ,
{ 79 , KHZ_30 , 693334 , 2 , 733332 , 693334 , 2 , 733332 }
{ 79 , KHZ_30 , 693334 , 2 , 733332 , 693334 , 2 , 733332 } ,
{ 80 , KHZ_100 , 342000 , 20 , 357000 , 0 , 0 , 0 } ,
{ 81 , KHZ_100 , 176000 , 20 , 183000 , 0 , 0 , 0 } ,
{ 82 , KHZ_100 , 166400 , 20 , 172400 , 0 , 0 , 0 } ,
{ 83 , KHZ_100 , 140600 , 20 , 149600 , 0 , 0 , 0 } ,
{ 84 , KHZ_100 , 384000 , 20 , 396000 , 0 , 0 , 0 } ,
{ 86 , KHZ_100 , 342000 , 20 , 356000 , 0 , 0 , 0 }
// clang-format on
} } ;
static const uint32_t nof_nr_bands_fr2 = 36 ;
static constexpr std : : array < nr_band , nof_nr_bands_fr2 > nr_band_table_fr2 = { {
{ 257 , KHZ_60 , 2054166 , 1 , 2104165 , 2054166 , 1 , 2104165 } ,
{ 257 , KHZ_120 , 2054167 , 2 , 2104165 , 2054167 , 20 , 2104165 } ,
{ 258 , KHZ_60 , 2016667 , 1 , 2070832 , 2016667 , 1 , 2070832 } ,
{ 258 , KHZ_120 , 2016667 , 2 , 2070831 , 2016667 , 2 , 2070832 } ,
{ 260 , KHZ_60 , 2229166 , 1 , 2279165 , 2229166 , 1 , 2279165 } ,
{ 260 , KHZ_120 , 2229167 , 2 , 2279165 , 2229167 , 2 , 2279165 } ,
{ 261 , KHZ_60 , 2070833 , 1 , 2084999 , 2070833 , 1 , 2084999 } ,
{ 261 , KHZ_120 , 2070833 , 2 , 2084999 , 2070833 , 2 , 2084999 }
} } ;
} ;
} // namespace srsran