From a985544627675036ba69f0fd651c3517e40a03d0 Mon Sep 17 00:00:00 2001
From: Guy De Souza <desouza@eurecom.fr>
Date: Fri, 1 Jun 2018 13:28:38 +0200
Subject: [PATCH] fft scaling fix

---
 openair1/PHY/LTE_ESTIMATION/lte_sync_timefreq.c |  3 ++-
 openair1/PHY/LTE_TRANSPORT/prach.c              | 12 ++++++------
 openair1/PHY/TOOLS/tools_defs.h                 |  8 ++++----
 3 files changed, 12 insertions(+), 11 deletions(-)

diff --git a/openair1/PHY/LTE_ESTIMATION/lte_sync_timefreq.c b/openair1/PHY/LTE_ESTIMATION/lte_sync_timefreq.c
index fd7b8d601a..388ed6bf29 100644
--- a/openair1/PHY/LTE_ESTIMATION/lte_sync_timefreq.c
+++ b/openair1/PHY/LTE_ESTIMATION/lte_sync_timefreq.c
@@ -81,7 +81,8 @@ void lte_sync_timefreq(PHY_VARS_UE *ue,int band,unsigned int DL_freq)
 
       //compute frequency-domain representation of 6144-sample chunk
       dft6144((int16_t *)rxp,
-              sp);
+              sp,
+              1);
 
 
       /*
diff --git a/openair1/PHY/LTE_TRANSPORT/prach.c b/openair1/PHY/LTE_TRANSPORT/prach.c
index f782129c81..fb80d13b5e 100644
--- a/openair1/PHY/LTE_TRANSPORT/prach.c
+++ b/openair1/PHY/LTE_TRANSPORT/prach.c
@@ -357,10 +357,10 @@ void rx_prach0(PHY_VARS_eNB *eNB,
 	if (prach_fmt == 4) {
 	  dft256(prach2,rxsigF[aa],1);
 	} else {
-	  dft3072(prach2,rxsigF[aa]);
+	  dft3072(prach2,rxsigF[aa],1);
 	  
 	  if (prach_fmt>1)
-	    dft3072(prach2+6144,rxsigF[aa]+6144);
+	    dft3072(prach2+6144,rxsigF[aa]+6144,1);
 	}
 	
 	break;
@@ -371,10 +371,10 @@ void rx_prach0(PHY_VARS_eNB *eNB,
 	  dft1024(prach2,rxsigF[aa],1);
 	  fft_size = 1024;
 	} else {
-	  dft6144(prach2,rxsigF[aa]);
+	  dft6144(prach2,rxsigF[aa],1);
 	  
 	  if (prach_fmt>1)
-	    dft6144(prach2+12288,rxsigF[aa]+12288);
+	    dft6144(prach2+12288,rxsigF[aa]+12288,1);
 	  
 	  fft_size = 6144;
 	}
@@ -395,7 +395,7 @@ void rx_prach0(PHY_VARS_eNB *eNB,
 	
       case 75:
 	if (prach_fmt == 4) {
-	  dft3072(prach2,rxsigF[aa]);
+	  dft3072(prach2,rxsigF[aa],1);
 	} else {
 	  dft18432(prach2,rxsigF[aa]);
 	  
@@ -417,7 +417,7 @@ void rx_prach0(PHY_VARS_eNB *eNB,
 	  }
 	} else {
 	  if (prach_fmt == 4) {
-	    dft3072(prach2,rxsigF[aa]);
+	    dft3072(prach2,rxsigF[aa],1);
 	  } else {
 	    dft18432(prach2,rxsigF[aa]);
 	    
diff --git a/openair1/PHY/TOOLS/tools_defs.h b/openair1/PHY/TOOLS/tools_defs.h
index e3b04babdc..a4266d2d0e 100644
--- a/openair1/PHY/TOOLS/tools_defs.h
+++ b/openair1/PHY/TOOLS/tools_defs.h
@@ -174,25 +174,25 @@ This function performs optimized fixed-point radix-2 FFT/IFFT.
 
 void idft1536(int16_t *sigF,int16_t *sig,int scale);
 
-void idft6144(int16_t *sigF,int16_t *sig);
+void idft6144(int16_t *sigF,int16_t *sig, int scale);
 
 void idft12288(int16_t *sigF,int16_t *sig);
 
 void idft18432(int16_t *sigF,int16_t *sig);
 
-void idft3072(int16_t *sigF,int16_t *sig);
+void idft3072(int16_t *sigF,int16_t *sig, int scale);
 
 void idft24576(int16_t *sigF,int16_t *sig);
 
 void dft1536(int16_t *sigF,int16_t *sig,int scale);
 
-void dft6144(int16_t *sigF,int16_t *sig);
+void dft6144(int16_t *sigF,int16_t *sig, int scale);
 
 void dft12288(int16_t *sigF,int16_t *sig);
 
 void dft18432(int16_t *sigF,int16_t *sig);
 
-void dft3072(int16_t *sigF,int16_t *sig);
+void dft3072(int16_t *sigF,int16_t *sig, int scale);
 
 void dft24576(int16_t *sigF,int16_t *sig);
 
-- 
GitLab