Force NR PRACH scaling to 0.99 of the DAC dynamic range

master
Xavier Arteaga 3 years ago committed by Andre Puschmann
parent 4e76d7fef6
commit 753edc7d7b

@ -80,6 +80,16 @@ sf_worker* worker_pool::wait_worker(uint32_t tti)
if (prach_buffer->is_ready_to_send(tti, phy_state.cfg.carrier.pci)) { if (prach_buffer->is_ready_to_send(tti, phy_state.cfg.carrier.pci)) {
prach_ptr = prach_buffer->generate(phy_state.get_ul_cfo() / 15000, &prach_nof_sf, &prach_target_power); prach_ptr = prach_buffer->generate(phy_state.get_ul_cfo() / 15000, &prach_nof_sf, &prach_target_power);
// Scale signal to maximum
{
float* ptr = (float*)prach_ptr;
int max_i = srsran_vec_max_abs_fi(ptr, 2 * sf_sz);
float max = ptr[max_i];
if (std::isnormal(max)) {
srsran_vec_sc_prod_cfc(prach_ptr, 0.99f / max, prach_ptr, sf_sz * prach_nof_sf);
}
}
// Notify MAC about PRACH transmission // Notify MAC about PRACH transmission
phy_state.stack->prach_sent(TTI_TX(tti), phy_state.stack->prach_sent(TTI_TX(tti),
srsran_prach_nr_start_symbol(phy_state.cfg.prach.config_idx, phy_state.cfg.duplex.mode), srsran_prach_nr_start_symbol(phy_state.cfg.prach.config_idx, phy_state.cfg.duplex.mode),

Loading…
Cancel
Save