Merge remote-tracking branch 'origin/common_scale_function' into integration_2025_w42 (!3608)

use common scale channel functions for DLSCH and ULSCH

Follow up of !3035
This commit is contained in:
Robert Schmidt
2025-10-15 08:34:37 +02:00
5 changed files with 28 additions and 103 deletions
@@ -364,6 +364,7 @@ void nr_channel_level(const int symbol,
const int Nl,
int32_t avg[nb_rx * Nl],
const uint32_t len);
void nr_scale_channel(int size, int ch_estimates_ext[][size], int symb, uint32_t len, int nrOfLayers, int nb_rx, int shift_ch_ext);
bool generate_srs_nr(NR_DL_FRAME_PARMS *frame_parms,
c16_t **txdataF,
uint16_t symbol_offset,
@@ -425,6 +425,24 @@ void nr_channel_level(const int symbol,
}
}
void nr_scale_channel(int size, int ch_estimates_ext[][size], int symb, uint32_t len, int nrOfLayers, int nb_rx, int shift_ch_ext)
{
for (int l = 0; l < nrOfLayers; l++) {
for (int aarx = 0; aarx < nb_rx; aarx++) {
simde__m128i *ul_ch128 = (simde__m128i *)&ch_estimates_ext[l * nb_rx + aarx][symb * len];
int loop_end = len >> 2;
for (int i = 0; i < loop_end; i++) {
ul_ch128[i] = simde_mm_srai_epi16(ul_ch128[i], shift_ch_ext);
}
// loop for the remaining elements
int start_index = loop_end * 4;
for (int j = start_index; j < len; j++) {
c16_t *temp = ((c16_t *)ul_ch128) + j;
*temp = c16Shift(*temp, shift_ch_ext);
}
}
}
}
void nr_fo_compensation(double fo_Hz, int samples_per_ms, int sample_offset, const c16_t *rxdata_in, c16_t *rxdata_out, int size)
{