From d2ebc356a0c7d054035972934526bd398dad5db7 Mon Sep 17 00:00:00 2001 From: Raymond Knopp Date: Sun, 29 Sep 2024 10:17:56 +0200 Subject: [PATCH] removed division by num_antenna_ports in PDSCH precoding matrix generation. These matrices are defined for CSI reporting in this way but here we are using them for transmission and this results in an unwanted 10*log10(num_antenna_ports) reduction in transmit power --- openair2/LAYER2/NR_MAC_gNB/config.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/openair2/LAYER2/NR_MAC_gNB/config.c b/openair2/LAYER2/NR_MAC_gNB/config.c index e0e11c5f2f..1f515b9ea6 100644 --- a/openair2/LAYER2/NR_MAC_gNB/config.c +++ b/openair2/LAYER2/NR_MAC_gNB/config.c @@ -136,7 +136,7 @@ int precoding_weigths_generation(nfapi_nr_pm_list_t *mat, double complex res_code; for (int i_rows = 0; i_rows < N1 * N2; i_rows++) { nfapi_nr_pm_weights_t *weights = &mat->pmi_pdu[pmiq].weights[j_col][i_rows]; - res_code = sqrt(1 / (double)(L * num_antenna_ports)) * v_lm[llc][mmc][i_rows]; + res_code = sqrt(1 / (double)L) * v_lm[llc][mmc][i_rows]; c16_t precoder_weight = convert_precoder_weight(res_code); weights->precoder_weight_Re = precoder_weight.r; weights->precoder_weight_Im = precoder_weight.i; @@ -153,7 +153,7 @@ int precoding_weigths_generation(nfapi_nr_pm_list_t *mat, } for (int i_rows = N1 * N2; i_rows < 2 * N1 * N2; i_rows++) { nfapi_nr_pm_weights_t *weights = &mat->pmi_pdu[pmiq].weights[j_col][i_rows]; - res_code = sqrt(1 / (double)(L * num_antenna_ports)) * (phase_sign)*theta_n[nn] * v_lm[llc][mmc][i_rows - N1 * N2]; + res_code = sqrt(1 / (double)L) * (phase_sign)*theta_n[nn] * v_lm[llc][mmc][i_rows - N1 * N2]; c16_t precoder_weight = convert_precoder_weight(res_code); weights->precoder_weight_Re = precoder_weight.r; weights->precoder_weight_Im = precoder_weight.i;