From e88abf27c2c15c4393451fe8ebf0aac97338017a Mon Sep 17 00:00:00 2001
From: Guy De Souza <desouza@eurecom.fr>
Date: Thu, 22 Mar 2018 16:27:30 +0100
Subject: [PATCH] 3/4 sampling for 80MHz / Max ofdm size 4096

---
 openair1/PHY/INIT/nr_parms.c       | 19 ++++++++++++++-----
 openair1/PHY/MODULATION/ofdm_mod.c |  8 +++++++-
 2 files changed, 21 insertions(+), 6 deletions(-)

diff --git a/openair1/PHY/INIT/nr_parms.c b/openair1/PHY/INIT/nr_parms.c
index 5416e9444a..6693efd0b4 100644
--- a/openair1/PHY/INIT/nr_parms.c
+++ b/openair1/PHY/INIT/nr_parms.c
@@ -66,11 +66,20 @@ int nr_init_frame_parms(LTE_DL_FRAME_PARMS *frame_parms)
         case 189:
 
         case 217: //80 MHz
-          frame_parms->ofdm_symbol_size = 4096;
-          frame_parms->samples_per_tti = 61440;
-          frame_parms->first_carrier_offset = 2794; //4096 - 1302
-          frame_parms->nb_prefix_samples0 = 320;
-          frame_parms->nb_prefix_samples = 288;
+          if (frame_parms->threequarter_fs) {
+            frame_parms->ofdm_symbol_size = 3072;
+            frame_parms->samples_per_tti = 46080;
+            frame_parms->first_carrier_offset = 1770; //3072 - 1302
+            frame_parms->nb_prefix_samples0 = 240;
+            frame_parms->nb_prefix_samples = 216;
+          }
+          else {
+            frame_parms->ofdm_symbol_size = 4096;
+            frame_parms->samples_per_tti = 61440;
+            frame_parms->first_carrier_offset = 2794; //4096 - 1302
+            frame_parms->nb_prefix_samples0 = 320;
+            frame_parms->nb_prefix_samples = 288;
+          }
           break;
 
         case 245:
diff --git a/openair1/PHY/MODULATION/ofdm_mod.c b/openair1/PHY/MODULATION/ofdm_mod.c
index 37d1a48311..7392b7a86a 100644
--- a/openair1/PHY/MODULATION/ofdm_mod.c
+++ b/openair1/PHY/MODULATION/ofdm_mod.c
@@ -67,7 +67,7 @@ void PHY_ofdm_mod(int *input,                       /// pointer to complex input
                  )
 {
 
-  short temp[2048*4] __attribute__((aligned(32)));
+  short temp[4096*4] __attribute__((aligned(32)));
   unsigned short i,j;
   short k;
 
@@ -101,6 +101,12 @@ void PHY_ofdm_mod(int *input,                       /// pointer to complex input
     idft = idft2048;
     break;
 
+  case 3072:
+    idft = idft3072;
+
+  case 4096:
+    idft = idft4096;
+
   default:
     idft = idft512;
     break;
-- 
GitLab