From cea1cfcd8f854e44e06f3ea41faaf941d3db4969 Mon Sep 17 00:00:00 2001
From: Xiwen JIANG <xiwen.jiang@eureocm.fr>
Date: Mon, 2 Jan 2017 15:55:29 +0100
Subject: [PATCH] reduce beamforming weights normalisation shift value

---
 openair1/PHY/MODULATION/compute_bf_weights.c | 17 +++++++++--------
 1 file changed, 9 insertions(+), 8 deletions(-)

diff --git a/openair1/PHY/MODULATION/compute_bf_weights.c b/openair1/PHY/MODULATION/compute_bf_weights.c
index 25bb8cb96a..53d8579b52 100644
--- a/openair1/PHY/MODULATION/compute_bf_weights.c
+++ b/openair1/PHY/MODULATION/compute_bf_weights.c
@@ -19,11 +19,11 @@ int read_calibration_matrix(int32_t **tdd_calib_coeffs, char *calibF_fname, LTE_
    exit(1);
   }
 
-  sprintf(calibF_file_name, "%s/targets/PROJECTS/TDDREC/results/%s", openair_dir, calibF_fname);
+  sprintf(calibF_file_name, "%s/targets/PROJECTS/TDDREC/result/%s", openair_dir, calibF_fname);
   calibF_fd = fopen(calibF_file_name,"r") ;
 
   if (calibF_fd == NULL) {
-   printf("Warning: %s not found, running with defaults\n", calibF_fname);
+   printf("Warning: %s not found, running with defaults\n", calibF_file_name);
    return(1);
   }
 
@@ -72,14 +72,15 @@ void compute_BF_weights(int32_t **beam_weights, int32_t **calib_dl_ch_estimates,
   case MRT :
   for (aa=0 ; aa<frame_parms->nb_antennas_tx ; aa++) {
     for (re=0; re<frame_parms->N_RB_DL*6; re++) {
-      ((int16_t*)(&beam_weights[aa][frame_parms->first_carrier_offset+re]))[0] = ((int16_t*)(&calib_dl_ch_estimates[aa][re]))[0]<<6;
-      ((int16_t*)(&beam_weights[aa][frame_parms->first_carrier_offset+re]))[1] = -((int16_t*)(&calib_dl_ch_estimates[aa][re]))[1]<<6;
-      //Normalisation not implemented
+      //normalisation simplied by a constent shift
+      ((int16_t*)(&beam_weights[aa][frame_parms->first_carrier_offset+re]))[0] = ((int16_t*)(&calib_dl_ch_estimates[aa][re]))[0]<<4;
+      ((int16_t*)(&beam_weights[aa][frame_parms->first_carrier_offset+re]))[1] = -((int16_t*)(&calib_dl_ch_estimates[aa][re]))[1]<<4;
     }
+
     for (re=frame_parms->N_RB_DL*6; re<frame_parms->N_RB_DL*12; re++) {
-      ((int16_t*)(&beam_weights[aa][re-frame_parms->N_RB_DL*6+1]))[0] = ((int16_t*)(&calib_dl_ch_estimates[aa][re]))[0]<<6;
-      ((int16_t*)(&beam_weights[aa][re-frame_parms->N_RB_DL*6+1]))[1] = -((int16_t*)(&calib_dl_ch_estimates[aa][re]))[1]<<6;
-      //Normalisation not implemented
+      //normalisation simplied by a constent shift
+      ((int16_t*)(&beam_weights[aa][re-frame_parms->N_RB_DL*6+1]))[0] = ((int16_t*)(&calib_dl_ch_estimates[aa][re]))[0]<<4;
+      ((int16_t*)(&beam_weights[aa][re-frame_parms->N_RB_DL*6+1]))[1] = -((int16_t*)(&calib_dl_ch_estimates[aa][re]))[1]<<4;
     }
   }
   break ;
-- 
2.26.2