Skip to content

fix array lenght errors, k variable wrapping threshold. Make the code smaller and more efficient

generate_nr_prach() has several errors coming from replace int16_t by c16_t, and also older error in k wrapping at the end of the symbol
the code is also ridiculously complex, wasting memory and cpu time in intermediate useless buffers and headache usage of memmove()

Then, i have another issue not fixed in this MR: when i try to perform rach to SFR cell in France, i reach:

PRACH [UE 0] generate PRACH in frame.slot 795.18 for RootSeqIndex 340, Preamble Index 3, PRACH Format 0, NCS 167 (N_ZC 839): Preamble_offset 0, Preamble_shift 501 msg1 frequency start 48
p ue->prach_vars[gNB_id]->prach_pdu
$14 = {phys_cell_id = 210, num_prach_ocas = 1 '\001', prach_format = 0 '\000', num_ra = 0 '\000', prach_slot = 18 '\022', 
  prach_start_symbol = 0 '\000', num_cs = 167, root_seq_id = 340, restricted_set = 0 '\000', freq_msg1 = 48, ra_PreambleIndex = 11 '\v', 
  prach_tx_power = 23}
p nrUE_config->prach_config
$2 = {prach_sequence_length = 0 '\000', prach_sub_c_spacing = 4 '\004', restricted_set_config = 0 '\000', num_prach_fd_occasions = 1 '\001', 
  num_prach_fd_occasions_list = 0x7fffc816d8d0, ssb_per_rach = 3 '\003', prach_multiple_carriers_in_a_band = 0 '\000', 
  root_seq_computed = 0 '\000'}
fp->samples_per_subframe is 184320 because i use 100MHz, normal sampling (still develop code is the reverse -E is 184MS/s while not -E is 122.88MS/s) 
dft len is 24576 * 6 

dft of 147456 is not implemented in OAI

is there another algorithmic solution instead of these huge DFTs ?

Merge request reports

Loading