diff --git a/openair1/USERSPACE_TOOLS/MATLAB/Makefile b/openair1/USERSPACE_TOOLS/MATLAB/Makefile
deleted file mode 100644
index a832798014711805f03f9998fb720747d10c2f6c..0000000000000000000000000000000000000000
--- a/openair1/USERSPACE_TOOLS/MATLAB/Makefile
+++ /dev/null
@@ -1,89 +0,0 @@
-include $(OPENAIR_HOME)/common/utils/Makefile.inc
-#include $(OPENAIR1_DIR)/SIMULATION/LTE_PHY/Makefile
-
-COMMON_UTILS_DIR = $(OPENAIR_HOME)/common/utils
-TOP_DIR = $(OPENAIR1_DIR)
-OPENAIR1_TOP = $(OPENAIR1_DIR)
-OPENAIR2_TOP = $(OPENAIR2_DIR)
-OPENAIR3 = $(OPENAIR3_DIR)
-
-CFLAGS += -DMAX_NUM_CCs=1 -Wall -DPHYSIM -DNODE_RG -DUSER_MODE -DNB_ANTENNAS_RX=2 -DNB_ANTENNAS_TXRX=2 -DNB_ANTENNAS_TX=2 -DPHY_CONTEXT=1 -DMALLOC_CHECK_=1 -DENABLE_VCD_FIFO 
-
-CFLAGS += -DOPENAIR_LTE -DNO_RRM -DOPENAIR1 #-DPHY_ABSTRACTION #-DOPENAIR2
-
-CFLAGS += -I/usr/include/X11 -I/usr/X11R6/include
-
-include $(COMMON_UTILS_DIR)/Makefile.inc
-include $(TOP_DIR)/PHY/Makefile.inc
-include $(TOP_DIR)/SCHED/Makefile.inc
-SCHED_OBJS = $(TOP_DIR)/SCHED/phy_procedures_lte_common.o #$(TOP_DIR)/SCHED/phy_procedures_lte_eNb.o $(TOP_DIR)/SCHED/phy_procedures_lte_ue.o
-include $(TOP_DIR)/SIMULATION/Makefile.inc
-include $(OPENAIR2_DIR)/LAYER2/Makefile.inc
-include $(OPENAIR2_DIR)/UTIL/Makefile.inc
-include $(OPENAIR2_DIR)/RRC/LITE/MESSAGES/Makefile.inc
-
-ASN1_MSG_INC = $(OPENAIR2_DIR)/RRC/LITE/MESSAGES
-
-CFLAGS += $(L2_incl) -I$(ASN1_MSG_INC) -I$(TOP_DIR) -I$(OPENAIR2_DIR) -I$(OPENAIR3) $(UTIL_incl) $(UTILS_incl)
-
-CFLAGS += -DMEX -fPIC 
-CFLAGS += -I/opt/MATLAB/R2014a/extern/include/
-
-# Set mex extension, can be determined with mexext function in Matlab
-MEXEXT = mexglx
-
-
-# Just compile all the PHY objects
-OBJ = $(PHY_OBJS) $(TOP_DIR)/SIMULATION/TOOLS/taus.o $(LOG_DIR)/log.o $(LOG_DIR)/vcd_signal_dumper.o 
-
-# List of all mex-files to compile
-MEX_FILES += ./PHY/LTE_TRANSPORT/mexfiles/get_tbs.$(MEXEXT)
-MEX_FILES += ./PHY/LTE_TRANSPORT/mexfiles/dlsch_encoding.$(MEXEXT)
-MEX_FILES += ./PHY/LTE_TRANSPORT/mexfiles/dlsch_decoding.$(MEXEXT)
-MEX_FILES += ./PHY/LTE_TRANSPORT/mexfiles/dlsch_decoding_init.$(MEXEXT)
-MEX_FILES += ./PHY/LTE_TRANSPORT/mexfiles/dlsch_channel_level_prec.$(MEXEXT)
-MEX_FILES += ./PHY/LTE_TRANSPORT/mexfiles/dlsch_channel_compensation_prec.$(MEXEXT)
-MEX_FILES += ./PHY/LTE_TRANSPORT/mexfiles/dlsch_dual_stream_correlation.$(MEXEXT)
-MEX_FILES += ./PHY/LTE_TRANSPORT/mexfiles/dlsch_detection_mrc.$(MEXEXT)
-MEX_FILES += ./PHY/LTE_TRANSPORT/mexfiles/dlsch_mu_mimo_llr.$(MEXEXT)
-MEX_FILES += ./PHY/TOOLS/mexfiles/log2_approx.$(MEXEXT)
-MEX_FILES += ./SIMULATION/TOOLS/mexfiles/taus.$(MEXEXT)
-MEX_FILES += ./SIMULATION/TOOLS/mexfiles/set_taus_seed.$(MEXEXT)
-
-# ===========================================================================================
-# Commands to compile the static and shared lib for mex-files
-
-# Libpath
-LIBDIR := ./lib
-LIBNAME := oai
-
-sharedlib : $(OBJ)
-	@$(CC) -shared -Wl,-soname,lib$(LIBNAME).so.1 -o $(LIBDIR)/lib$(LIBNAME).so.1.0.1 $(OBJ) -lc
-
-staticlib : $(OBJ)
-	@ar ruv $(LIBDIR)/lib$(LIBNAME).a $(OBJ)
-
-libs : $(OBJ)
-	@$(CC) -shared -Wl,-soname,lib$(LIBNAME).so.1 -o $(LIBDIR)/lib$(LIBNAME).so.1.0.1 $(OBJ) -lc
-	@ar ruv $(LIBDIR)/lib$(LIBNAME).a $(OBJ)
-
-$(MEX_FILES) : %.$(MEXEXT) : %.c
-	@echo 
-	@echo Compiling $< ...
-	@mex CFLAGS="$(CFLAGS)" -l$(LIBNAME) -L$(LIBDIR) -output $@ $<
-
-mex : $(MEX_FILES)
-
-cleanlibs :
-	rm -f $(LIBDIR)/lib$(LIBNAME).*
-
-cleanmex :
-	rm -f $(MEX_FILES)
-
-clean:
-	rm -f $(OBJ)
-
-cleanall: clean cleanlibs cleanmex
-
-show :
-	echo $(ASN1_MSG_INC)
diff --git a/openair1/USERSPACE_TOOLS/MATLAB/PHY/LTE_TRANSPORT/mexfiles/dlsch_channel_compensation_prec.c b/openair1/USERSPACE_TOOLS/MATLAB/PHY/LTE_TRANSPORT/mexfiles/dlsch_channel_compensation_prec.c
deleted file mode 100644
index e909b07e63592e659d402a08701fcbe74ed9d023..0000000000000000000000000000000000000000
--- a/openair1/USERSPACE_TOOLS/MATLAB/PHY/LTE_TRANSPORT/mexfiles/dlsch_channel_compensation_prec.c
+++ /dev/null
@@ -1,249 +0,0 @@
-#include "../../../defs.h"
-
-/*==============================================================================
-* dlsch_channel_compensation_prec.c
-*
-* Returns the matched filter channel and the scaled channel magnitude.
-*
-* example: [ymf heff hmag hmagb] = dlsch_channel_compensation_prec(y,H,pmi,struct1,struct2,slot)
-*
-* Author: Sebastian Wagner
-* Date: 23-07-2012
-*
-===============================================================================*/
-
-// #define DEBUG_CHANNEL_COMP
-
-void mexFunction( int nlhs, mxArray *plhs[],
-                  int nrhs, const mxArray *prhs[]
-                )
-{
-  /* Declare */
-  int *H,*y,*dl_ch_estimates_ext[NB_ANTENNAS_RX*NB_ANTENNAS_TX],*rxdataF_ext[NB_ANTENNAS_RX*NB_ANTENNAS_TX],*ymf, *hmag, *hmagb,*dl_ch_mag[NB_ANTENNAS_RX*NB_ANTENNAS_TX],
-      *dl_ch_magb[NB_ANTENNAS_RX*NB_ANTENNAS_TX];
-  int *rxdataF_comp[NB_ANTENNAS_RX*NB_ANTENNAS_TX], *ymf_out, *hmag_out, *hmagb_out, *heff_out, *heff;
-  unsigned int nb_re_per_symbol, nb_re, nb_re_per_frame;
-  unsigned char *pmi_ext, mod_order, output_shift,dl_power_off;
-  unsigned char symbol;
-  int eNB_id = 0,i; // dummy
-  mxArray *tmp;
-
-  LTE_DL_FRAME_PARMS *frame_parms;
-  PHY_MEASUREMENTS *phy_measurements;
-
-  /* Check proper input and output. */
-  if(nrhs!=6)
-    mexErrMsgTxt("5 inputs required.");
-  else if(nlhs > 4)
-    mexErrMsgTxt("Too many output arguments.");
-  else if(!mxIsStruct(prhs[3]))
-    mexErrMsgTxt("Fourth input must be a structure.");
-  else if(!mxIsStruct(prhs[4]))
-    mexErrMsgTxt("Fifth input must be a structure.");
-
-  if(!mxIsInt16(prhs[0]))
-    mexErrMsgTxt("First argument must belong to Int16 class.");
-
-  if(!mxIsInt16(prhs[1]))
-    mexErrMsgTxt("Second argument must belong to Int16 class.");
-
-  if(!mxIsUint8(prhs[2]))
-    mexErrMsgTxt("Third argument must belong to Uint8 class.");
-
-  /* Allocate input */
-  y = (int*) mxGetData(prhs[0]);
-  H = (int*) mxGetData(prhs[1]);
-  pmi_ext = (unsigned char*) mxGetData(prhs[2]);
-  symbol = (unsigned char) mxGetScalar(prhs[5]);
-
-  tmp = mxGetField(prhs[4],0,"mod_order");
-
-  if (tmp == NULL) {
-    mexErrMsgTxt("Non-existing field 'mod_order' in input argument 5.");
-  } else {
-    mod_order = (unsigned char) mxGetScalar(tmp);
-  }
-
-  tmp = mxGetField(prhs[3],0,"log2_maxh");
-
-  if (tmp == NULL) {
-    mexErrMsgTxt("Non-existing field 'log2_maxh' in input argument 4.");
-  } else {
-    output_shift = (unsigned char) mxGetScalar(tmp);
-  }
-
-  tmp = mxGetField(prhs[3],0,"dl_power_offset");
-
-  if (tmp == NULL) {
-    mexErrMsgTxt("Non-existing field 'dl_power_offset' in input argument 4.");
-  } else {
-    dl_power_off = (unsigned char) mxGetScalar(tmp);
-  }
-
-  tmp = mxGetField(prhs[3],0,"nb_re");
-
-  if (tmp == NULL) {
-    mexErrMsgTxt("Non-existing field 'nb_re' in input argument 4.");
-  } else {
-    nb_re = (unsigned int) mxGetScalar(tmp);
-  }
-
-  tmp = mxGetField(prhs[3],0,"nb_re_per_frame");
-
-  if (tmp == NULL) {
-    mexErrMsgTxt("Non-existing field 'nb_re_per_frame' in input argument 4.");
-  } else {
-    nb_re_per_frame = (unsigned int) mxGetScalar(tmp);
-  }
-
-  // Create a LTE_DL_FRAME_PARMS structure and assign required params
-  frame_parms = calloc(1,sizeof(LTE_DL_FRAME_PARMS));
-  tmp = mxGetField(prhs[3],0,"nb_rb");
-
-  if (tmp == NULL) {
-    mexErrMsgTxt("Non-existing field 'nb_rb' in input argument 4.");
-  } else {
-    frame_parms->N_RB_DL = (unsigned char) mxGetScalar(tmp);
-  }
-
-  tmp = mxGetField(prhs[3],0,"nb_antennas_rx");
-
-  if (tmp == NULL) {
-    mexErrMsgTxt("Non-existing field 'nb_antennas_rx' in input argument 4.");
-  } else {
-    frame_parms->nb_antennas_rx = (unsigned char) mxGetScalar(tmp);
-  }
-
-  tmp = mxGetField(prhs[3],0,"nb_antennas_tx");
-
-  if (tmp == NULL) {
-    mexErrMsgTxt("Non-existing field 'nb_antennas_tx' in input argument 4.");
-  } else {
-    frame_parms->nb_antennas_tx = (unsigned char) mxGetScalar(tmp);
-  }
-
-  tmp = mxGetField(prhs[3],0,"Ncp");
-
-  if (tmp == NULL) {
-    mexErrMsgTxt("Non-existing field 'Ncp' in input argument 4.");
-  } else {
-    frame_parms->Ncp = (unsigned char) mxGetScalar(tmp);
-  }
-
-  tmp = mxGetField(prhs[3],0,"ofdm_symbol_size");
-
-  if (tmp == NULL) {
-    mexErrMsgTxt("Non-existing field 'ofdm_symbol_size' in input argument 4.");
-  } else {
-    frame_parms->ofdm_symbol_size = (unsigned short) mxGetScalar(tmp);
-  }
-
-  // Create PHY_MEASUREMENTS structure and assign required params
-  phy_measurements = calloc(1,sizeof(PHY_MEASUREMENTS));
-  phy_measurements->n0_power[0] = 1; // dummy values
-  phy_measurements->n0_power[1] = 1;
-  phy_measurements->n0_power_tot = 1;
-
-  // Adapt the channel estimates and receive signal
-  nb_re_per_symbol = frame_parms->N_RB_DL*12;
-
-  // Assign pointers
-  rxdataF_ext[0] = y;
-  rxdataF_ext[1] = &y[nb_re_per_frame];
-  rxdataF_ext[2] = &y[2*nb_re_per_frame];
-  rxdataF_ext[3] = &y[3*nb_re_per_frame];
-
-  /* Allocate Output */
-  plhs[0] = mxCreateNumericMatrix(2*nb_re_per_symbol,NB_ANTENNAS_RX*NB_ANTENNAS_TX, mxINT16_CLASS, mxREAL);
-  ymf_out = (int*) mxGetPr(plhs[0]);
-
-  plhs[1] = mxCreateNumericMatrix(2*nb_re_per_symbol,NB_ANTENNAS_RX*NB_ANTENNAS_TX, mxINT16_CLASS, mxREAL);
-  heff_out = (int*) mxGetPr(plhs[1]);
-
-  plhs[2] = mxCreateNumericMatrix(2*nb_re_per_symbol,NB_ANTENNAS_RX*NB_ANTENNAS_TX, mxINT16_CLASS, mxREAL);
-  hmag_out = (int*) mxGetPr(plhs[2]);
-
-  plhs[3] = mxCreateNumericMatrix(2*nb_re_per_symbol,NB_ANTENNAS_RX*NB_ANTENNAS_TX, mxINT16_CLASS, mxREAL);
-  hmagb_out = (int*) mxGetPr(plhs[3]);
-
-  ymf = (int*) mxCalloc(nb_re_per_frame*NB_ANTENNAS_RX*NB_ANTENNAS_TX, sizeof(int));
-  heff  = (int*) mxCalloc(nb_re_per_frame*NB_ANTENNAS_RX*NB_ANTENNAS_TX, sizeof(int));
-  hmag = (int*) mxCalloc(nb_re_per_frame*NB_ANTENNAS_RX*NB_ANTENNAS_TX, sizeof(int));
-  hmagb = (int*) mxCalloc(nb_re_per_frame*NB_ANTENNAS_RX*NB_ANTENNAS_TX, sizeof(int));
-
-  // copy input since it gets modified in function "dlsch_channel_compensation_prec"
-  memcpy(heff,H,(NB_ANTENNAS_RX*NB_ANTENNAS_TX*nb_re_per_frame)<<2);
-
-  rxdataF_comp[0] = ymf;
-  rxdataF_comp[1] = &ymf[nb_re_per_frame];
-  rxdataF_comp[2] = &ymf[2*nb_re_per_frame];
-  rxdataF_comp[3] = &ymf[3*nb_re_per_frame];
-  dl_ch_estimates_ext[0] = heff;
-  dl_ch_estimates_ext[1] = &heff[nb_re_per_frame];
-  dl_ch_estimates_ext[2] = &heff[2*nb_re_per_frame];
-  dl_ch_estimates_ext[3] = &heff[3*nb_re_per_frame];
-  dl_ch_mag[0] = hmag;
-  dl_ch_mag[1] = &hmag[nb_re_per_frame];
-  dl_ch_mag[2] = &hmag[2*nb_re_per_frame];
-  dl_ch_mag[3] = &hmag[3*nb_re_per_frame];
-  dl_ch_magb[0] = hmagb;
-  dl_ch_magb[1] = &hmagb[nb_re_per_frame];
-  dl_ch_magb[2] = &hmagb[2*nb_re_per_frame];
-  dl_ch_magb[3] = &hmagb[3*nb_re_per_frame];
-
-
-#ifdef DEBUG_CHANNEL_COMP
-  mexPrintf("symbol = %d\n", symbol);
-  mexPrintf("nb_re_per_symbol = %d\n", nb_re_per_symbol);
-  mexPrintf("nb_re_per_frame = %d\n", nb_re_per_frame);
-
-  for(i=0; i<25; i++)
-    mexPrintf("pmi_ext = %d\n", pmi_ext[i]);
-
-#endif
-
-  /* Algo */
-  dlsch_channel_compensation_prec(rxdataF_ext,
-                                  dl_ch_estimates_ext,
-                                  dl_ch_mag,
-                                  dl_ch_magb,
-                                  rxdataF_comp,
-                                  pmi_ext,
-                                  frame_parms,
-                                  phy_measurements,
-                                  eNB_id,
-                                  symbol,
-                                  mod_order,
-                                  frame_parms->N_RB_DL,
-                                  output_shift,
-                                  dl_power_off);
-
-  // memcpy copies bytes!
-  memcpy(ymf_out,&rxdataF_comp[0][symbol*frame_parms->N_RB_DL*12],nb_re_per_symbol<<2);
-  memcpy(&ymf_out[nb_re_per_symbol],&rxdataF_comp[1][symbol*frame_parms->N_RB_DL*12],nb_re_per_symbol<<2);
-  memcpy(&ymf_out[2*nb_re_per_symbol],&rxdataF_comp[2][symbol*frame_parms->N_RB_DL*12],nb_re_per_symbol<<2);
-  memcpy(&ymf_out[3*nb_re_per_symbol],&rxdataF_comp[3][symbol*frame_parms->N_RB_DL*12],nb_re_per_symbol<<2);
-
-  memcpy(hmag_out,&dl_ch_mag[0][symbol*frame_parms->N_RB_DL*12],nb_re_per_symbol<<2);
-  memcpy(&hmag_out[nb_re_per_symbol],&dl_ch_mag[1][symbol*frame_parms->N_RB_DL*12],nb_re_per_symbol<<2);
-  memcpy(&hmag_out[2*nb_re_per_symbol],&dl_ch_mag[2][symbol*frame_parms->N_RB_DL*12],nb_re_per_symbol<<2);
-  memcpy(&hmag_out[3*nb_re_per_symbol],&dl_ch_mag[3][symbol*frame_parms->N_RB_DL*12],nb_re_per_symbol<<2);
-
-  memcpy(hmagb_out, &dl_ch_magb[0][symbol*frame_parms->N_RB_DL*12],nb_re_per_symbol<<2);
-  memcpy(&hmagb_out[nb_re_per_symbol],&dl_ch_magb[1][symbol*frame_parms->N_RB_DL*12],nb_re_per_symbol<<2);
-  memcpy(&hmagb_out[2*nb_re_per_symbol],&dl_ch_magb[2][symbol*frame_parms->N_RB_DL*12],nb_re_per_symbol<<2);
-  memcpy(&hmagb_out[3*nb_re_per_symbol],&dl_ch_magb[3][symbol*frame_parms->N_RB_DL*12],nb_re_per_symbol<<2);
-
-  memcpy(heff_out,&dl_ch_estimates_ext[0][symbol*frame_parms->N_RB_DL*12],nb_re_per_symbol<<2);
-  memcpy(&heff_out[nb_re_per_symbol],&dl_ch_estimates_ext[1][symbol*frame_parms->N_RB_DL*12],nb_re_per_symbol<<2);
-  memcpy(&heff_out[2*nb_re_per_symbol],&dl_ch_estimates_ext[2][symbol*frame_parms->N_RB_DL*12],nb_re_per_symbol<<2);
-  memcpy(&heff_out[3*nb_re_per_symbol],&dl_ch_estimates_ext[3][symbol*frame_parms->N_RB_DL*12],nb_re_per_symbol<<2);
-
-  /* free */
-  free(frame_parms);
-  free(phy_measurements);
-  mxFree(ymf);
-  mxFree(heff);
-  mxFree(hmag);
-  mxFree(hmagb);
-}
diff --git a/openair1/USERSPACE_TOOLS/MATLAB/PHY/LTE_TRANSPORT/mexfiles/dlsch_channel_level_prec.c b/openair1/USERSPACE_TOOLS/MATLAB/PHY/LTE_TRANSPORT/mexfiles/dlsch_channel_level_prec.c
deleted file mode 100644
index c85c38dbfe4331bf987099f58c2f74d6b39f4abc..0000000000000000000000000000000000000000
--- a/openair1/USERSPACE_TOOLS/MATLAB/PHY/LTE_TRANSPORT/mexfiles/dlsch_channel_level_prec.c
+++ /dev/null
@@ -1,104 +0,0 @@
-#include "../../../defs.h"
-
-/*==============================================================================
-* dlsch_channel_level_prec.c
-*
-* Returns average squared channel magnitude of effective channel.
-*
-* example: avg = dlsch_channel_level_prec(H,pmi,simparms);
-*
-* Author: Sebastian Wagner
-* Date: 23-07-2012
-*
-===============================================================================*/
-
-void mexFunction( int nlhs, mxArray *plhs[],
-                  int nrhs, const mxArray *prhs[]
-                )
-{
-
-  /* Declare */
-  int *H,*dl_ch_estimates_ext[4];
-  unsigned int nb_re_per_frame;
-  unsigned char *pmi_ext;
-  unsigned char symbol_mod = 3;
-  int *avg;
-  mxArray *tmp;
-  LTE_DL_FRAME_PARMS *frame_parms;
-
-  /* Check proper input and output. */
-  if(nrhs!=3)
-    mexErrMsgTxt("Three inputs required.");
-  else if(nlhs > 1)
-    mexErrMsgTxt("Too many output arguments.");
-  else if(!mxIsStruct(prhs[2]))
-    mexErrMsgTxt("Third input must be a structure.");
-
-  if(!mxIsInt16(prhs[0]))
-    mexErrMsgTxt("First argument must belong to Int16 class.");
-
-  if(!mxIsUint8(prhs[1]))
-    mexErrMsgTxt("Second argument must belong to Uint8 class.");
-
-  /* Allocate input */
-  H = (int*) mxGetData(prhs[0]);
-  pmi_ext = (unsigned char*) mxGetData(prhs[1]);
-
-  // Create a LTE_DL_FRAME_PARMS structure and assign required params
-  frame_parms = calloc(1,sizeof(LTE_DL_FRAME_PARMS));
-  tmp = mxGetField(prhs[2],0,"nb_rb");
-
-  if (tmp == NULL) {
-    mexErrMsgTxt("Non-existing field 'nb_rb' in input argument 3.");
-  } else {
-    frame_parms->N_RB_DL = (unsigned char) mxGetScalar(tmp);
-  }
-
-  tmp = mxGetField(prhs[2],0,"nb_antennas_rx");
-
-  if (tmp == NULL) {
-    mexErrMsgTxt("Non-existing field 'nb_antennas_rx' in input argument 3.");
-  } else {
-    frame_parms->nb_antennas_rx = (unsigned char) mxGetScalar(tmp);
-  }
-
-  tmp = mxGetField(prhs[2],0,"mode1_flag");
-
-  if (tmp == NULL) {
-    mexErrMsgTxt("Non-existing field 'mode1_flag' in input argument 3.");
-  } else {
-    frame_parms->mode1_flag = (unsigned char) mxGetScalar(tmp);
-  }
-
-  tmp = mxGetField(prhs[2],0,"Ncp");
-
-  if (tmp == NULL) {
-    mexErrMsgTxt("Non-existing field 'Ncp' in input argument 3.");
-  } else {
-    frame_parms->Ncp = (unsigned char) mxGetScalar(tmp);
-  }
-
-  // Adapt the channel estimates
-  tmp = mxGetField(prhs[2],0,"nb_re_per_frame");
-
-  if (tmp == NULL) {
-    mexErrMsgTxt("Non-existing field 'nb_re_per_frame' in input argument 3.");
-  } else {
-    nb_re_per_frame = (unsigned int) mxGetScalar(tmp);
-  }
-
-  dl_ch_estimates_ext[0] = (int*) H;
-  dl_ch_estimates_ext[1] = (int*) &H[nb_re_per_frame];
-  dl_ch_estimates_ext[2] = (int*) &H[2*nb_re_per_frame];
-  dl_ch_estimates_ext[3] = (int*) &H[3*nb_re_per_frame];
-
-  /* Allocate Output */
-  plhs[0] = mxCreateNumericMatrix(1, 1, mxINT32_CLASS, mxREAL);
-  avg = (int*) mxGetPr(plhs[0]);
-
-  /* Algo */
-  dlsch_channel_level_prec(dl_ch_estimates_ext, frame_parms, pmi_ext, avg, symbol_mod, frame_parms->N_RB_DL);
-
-  /* free */
-  free(frame_parms);
-}
diff --git a/openair1/USERSPACE_TOOLS/MATLAB/PHY/LTE_TRANSPORT/mexfiles/dlsch_decoding.c b/openair1/USERSPACE_TOOLS/MATLAB/PHY/LTE_TRANSPORT/mexfiles/dlsch_decoding.c
deleted file mode 100644
index d7b0c1ff85a74cfd13bf94f91a535ee594c9df67..0000000000000000000000000000000000000000
--- a/openair1/USERSPACE_TOOLS/MATLAB/PHY/LTE_TRANSPORT/mexfiles/dlsch_decoding.c
+++ /dev/null
@@ -1,141 +0,0 @@
-#include "../../../defs.h"
-
-/*==============================================================================
-* dlsch_encoding.c
-*
-* Returns the decoded bit sequence.
-*
-* example: e = dlsch_encoding(llrs,struct1,struct2)
-*
-* Author: Sebastian Wagner
-* Date: 23-07-2012
-*
-===============================================================================*/
-
-#define DEBUG_DLSCH_DECODING
-
-void mexFunction( int mlhs, mxArray *plhs[],
-                  int nrhs, const mxArray *prhs[]
-                )
-{
-
-  /* Declare */
-  short *dlsch_llr;
-  unsigned char mcs;
-  unsigned int *ret;
-  unsigned char mod_order;
-  unsigned char num_pdcch_symbols;
-  unsigned char harq_pid;
-  unsigned char subframe;
-  unsigned char Kmimo;
-  unsigned char Mdlharq;
-  unsigned char abstraction_flag;
-  LTE_UE_DLSCH_t* dlsch;
-  LTE_DL_FRAME_PARMS *frame_parms;
-  PHY_VARS_UE *phy_vars_ue;
-  extern int *pi2tab16[188],*pi5tab16[188],*pi4tab16[188],*pi6tab16[188];
-  unsigned long *ptr_td; //hack for 64bit
-  int *tmp[1];
-
-  /* Allocate input */
-  dlsch_llr = (short*) mxGetData(prhs[0]);
-
-  /* Create new dlsch */
-  Kmimo = (unsigned char) mxGetScalar(mxGetField(prhs[2],0,"Kmimo"));
-  Mdlharq = (unsigned char) mxGetScalar(mxGetField(prhs[2],0,"Mdlharq"));
-  abstraction_flag = (unsigned char) mxGetScalar(mxGetField(prhs[1],0,"abstraction_flag"));
-  mcs = (unsigned char) mxGetScalar(mxGetField(prhs[2],0,"mcs"));
-
-#ifdef DEBUG_DLSCH_DECODING
-  mexPrintf("Kmimo %d\n",Kmimo);
-  mexPrintf("Mdlharq %d\n",Mdlharq);
-  mexPrintf("abstraction_flag %d\n",abstraction_flag);
-  mexPrintf("mcs %d\n",mcs);
-#endif
-
-  /* Create new dlsch */
-  dlsch = new_ue_dlsch(Kmimo,Mdlharq,8,25,abstraction_flag);
-
-  // Init CRC tables
-  crcTableInit();
-  //  init_td();
-
-  // copy the pointers to memory allocated in dlsch_decoding_init
-  ptr_td = (unsigned int*) mxGetData(mxGetField(prhs[1],0,"ptr_td"));
-#ifdef DEBUG_DLSCH_DECODING
-  mexPrintf("ptr_td0 %p\n",ptr_td[0]);
-  mexPrintf("ptr_td1 %p\n",ptr_td[1]);
-  mexPrintf("ptr_td2 %p\n",ptr_td[2]);
-  mexPrintf("ptr_td3 %p\n",ptr_td[3]);
-#endif
-
-  memcpy(&tmp[0], &ptr_td[0], sizeof(ptr_td[0]));
-  memcpy(&pi2tab16[0], tmp[0], 188*sizeof(pi2tab16[0]));
-
-  memcpy(&tmp[0], &ptr_td[1], sizeof(ptr_td[1]));
-  memcpy(&pi4tab16[0], tmp[0], 188*sizeof(pi4tab16[0]));
-
-  memcpy(&tmp[0], &ptr_td[2], sizeof(ptr_td[2]));
-  memcpy(&pi5tab16[0], tmp[0], 188*sizeof(pi5tab16[0]));
-
-  memcpy(&tmp[0], &ptr_td[3], sizeof(ptr_td[3]));
-  memcpy(&pi6tab16[0], tmp[0], 188*sizeof(pi6tab16[0]));
-
-  harq_pid = (unsigned char) mxGetScalar(mxGetField(prhs[2],0,"harq_pid"));
-  dlsch->current_harq_pid = harq_pid;
-  dlsch->harq_processes[harq_pid]->rvidx = (unsigned char) mxGetScalar(mxGetField(prhs[2],0,"rvidx"));
-  dlsch->harq_processes[harq_pid]->Nl = (unsigned char) mxGetScalar(mxGetField(prhs[2],0,"Nl"));
-  //dlsch->harq_processes[harq_pid]->Ndi = (unsigned char) mxGetScalar(mxGetField(prhs[2],0,"Ndi"));
-  dlsch->harq_processes[harq_pid]->mcs = mcs;
-  dlsch->harq_processes[harq_pid]->rb_alloc[0] = (unsigned int) mxGetScalar(mxGetField(prhs[1],0,"rb_alloc"));
-  dlsch->harq_processes[harq_pid]->nb_rb = (unsigned short) mxGetScalar(mxGetField(prhs[1],0,"nb_rb"));
-
-  dlsch->harq_processes[harq_pid]->TBS = dlsch_tbs25[get_I_TBS(mcs)][dlsch->harq_processes[harq_pid]->nb_rb-1];
-
-
-  num_pdcch_symbols = (unsigned char) mxGetScalar(mxGetField(prhs[1],0,"num_pdcch_symbols"));
-  subframe = (unsigned char) mxGetScalar(mxGetField(prhs[1],0,"subframe"));
-
-  phy_vars_ue = calloc(1,sizeof(PHY_VARS_UE));
-
-  // Create a LTE_DL_FRAME_PARMS structure and assign required params
-  frame_parms = calloc(1,sizeof(LTE_DL_FRAME_PARMS));
-  frame_parms->N_RB_DL = (unsigned char) mxGetScalar(mxGetField(prhs[1],0,"nb_rb"));
-  frame_parms->frame_type = (unsigned char) mxGetScalar(mxGetField(prhs[1],0,"frame_type"));
-  frame_parms->mode1_flag = (unsigned char) mxGetScalar(mxGetField(prhs[1],0,"mode1_flag"));
-  frame_parms->Ncp = (unsigned char) mxGetScalar(mxGetField(prhs[1],0,"Ncp"));
-
-
-  mod_order = get_Qm(dlsch->harq_processes[harq_pid]->mcs);
-  dlsch->harq_processes[harq_pid]->G = get_G(frame_parms,dlsch->harq_processes[harq_pid]->nb_rb,dlsch->harq_processes[harq_pid]->rb_alloc,mod_order,dlsch->harq_processes[harq_pid]->Nl,num_pdcch_symbols,
-                                       0,subframe);
-
-#ifdef DEBUG_DLSCH_DECODING
-  mexPrintf("TBS %d\n",dlsch->harq_processes[harq_pid]->TBS);
-  mexPrintf("nb_rb %d\n",dlsch->harq_processes[harq_pid]->nb_rb);
-  mexPrintf("ncs %d\n",dlsch->harq_processes[harq_pid]->mcs);
-  mexPrintf("num_pdcch_symbols %d\n",num_pdcch_symbols);
-  mexPrintf("subframe %d\n",subframe);
-  mexPrintf("G %d\n",dlsch->harq_processes[harq_pid]->G);
-#endif
-
-  if (dlsch->harq_processes[harq_pid]->G != mxGetM(prhs[0])) {
-    free_ue_dlsch(dlsch);
-    free(frame_parms);
-    free(phy_vars_ue);
-    mexErrMsgTxt("Length of the LLR vector is incorrect.");
-  }
-
-  /* Allocate Output */
-  plhs[0] = mxCreateNumericMatrix(1, 1, mxUINT32_CLASS, mxREAL);
-  ret = (unsigned int*) mxGetPr(plhs[0]);
-
-  /* Algo */
-  *ret = dlsch_decoding(phy_vars_ue, dlsch_llr, frame_parms, dlsch, dlsch->harq_processes[harq_pid], subframe, dlsch->current_harq_pid, 1,0);
-
-  /* free dlsch */
-  free_ue_dlsch(dlsch);
-  free(frame_parms);
-  free(phy_vars_ue);
-  //     free_td();
-}
diff --git a/openair1/USERSPACE_TOOLS/MATLAB/PHY/LTE_TRANSPORT/mexfiles/dlsch_decoding_init.c b/openair1/USERSPACE_TOOLS/MATLAB/PHY/LTE_TRANSPORT/mexfiles/dlsch_decoding_init.c
deleted file mode 100644
index 61519c42e2a5f9f5430683eed8333348b59d59ed..0000000000000000000000000000000000000000
--- a/openair1/USERSPACE_TOOLS/MATLAB/PHY/LTE_TRANSPORT/mexfiles/dlsch_decoding_init.c
+++ /dev/null
@@ -1,63 +0,0 @@
-#include "../../../defs.h"
-
-/*==============================================================================
-* dlsch_encoding_init.c
-*
-* Returns the decoded bit sequence.
-*
-* example: dlsch_decoding_init(struct1)
-*
-* Author: Sebastian Wagner
-* Date: 23-07-2012
-*
-===============================================================================*/
-
-#define DEBUG_DLSCH_DECODING_INIT
-
-void mexFunction( int mlhs, mxArray *plhs[],
-                  int nrhs, const mxArray *prhs[]
-                )
-{
-  extern int *pi2tab16[188],*pi5tab16[188],*pi4tab16[188],*pi6tab16[188];
-  int i;
-  unsigned long *ptr; //hack for 64bit
-  int **tmp[1];
-
-  // Init CRC tables
-  //  crcTableInit();
-  init_td16();
-
-  // assign output
-  plhs[0] = mxCreateNumericMatrix(4,1, mxUINT64_CLASS, mxREAL);
-  ptr = (unsigned int*) mxGetData(plhs[0]);
-
-  tmp[0] = &pi2tab16[0];
-  memcpy(&ptr[0], tmp, sizeof(tmp[0]));
-  tmp[0] = &pi4tab16[0];
-  memcpy(&ptr[1], tmp, sizeof(tmp[0]));
-  tmp[0] = &pi5tab16[0];
-  memcpy(&ptr[2], tmp, sizeof(tmp[0]));
-  tmp[0] = &pi6tab16[0];
-  memcpy(&ptr[3], tmp, sizeof(tmp[0]));
-
-#ifdef DEBUG_DLSCH_DECODING_INIT
-  mexPrintf("pi2tab %p\n",&pi2tab16[0]);
-  mexPrintf("pi4tab %p\n",&pi4tab16[0]);
-  mexPrintf("pi5tab %p\n",&pi5tab16[0]);
-  mexPrintf("pi6tab %p\n",&pi6tab16[0]);
-
-  mexPrintf("ptr0 %p\n",ptr[0]);
-  mexPrintf("ptr1 %p\n",ptr[1]);
-  mexPrintf("ptr2 %p\n",ptr[2]);
-  mexPrintf("ptr3 %p\n",ptr[3]);
-#endif
-
-  // The memory here is never explictly freed via mxFree. It is implicitly taken
-  // care of by clear functions at the beginning of the simulation.
-  for (i=0; i<188; i++) {
-    mexMakeMemoryPersistent((void *) pi2tab16[i]);
-    mexMakeMemoryPersistent((void *) pi5tab16[i]);
-    mexMakeMemoryPersistent((void *) pi4tab16[i]);
-    mexMakeMemoryPersistent((void *) pi6tab16[i]);
-  }
-}
diff --git a/openair1/USERSPACE_TOOLS/MATLAB/PHY/LTE_TRANSPORT/mexfiles/dlsch_detection_mrc.c b/openair1/USERSPACE_TOOLS/MATLAB/PHY/LTE_TRANSPORT/mexfiles/dlsch_detection_mrc.c
deleted file mode 100644
index d5b6192b4e3344db177eaaa597a464ce3a5360d6..0000000000000000000000000000000000000000
--- a/openair1/USERSPACE_TOOLS/MATLAB/PHY/LTE_TRANSPORT/mexfiles/dlsch_detection_mrc.c
+++ /dev/null
@@ -1,252 +0,0 @@
-#include "../../../defs.h"
-
-/*==============================================================================
-* dlsch_detection_mrc.c
-*
-* Combines the parameters of both receive antennas.
-*
-* example: [ymf heff hmag hmagb] = dlsch_detection_mrc(ymf0,ymf1,hmag0,hmag1,hamgb0,hmagb1,rho10,struct,slot)
-*
-* Author: Sebastian Wagner
-* Date: 23-07-2012
-*
-===============================================================================*/
-
-//#define DEBUG_DETECTION_MRC
-
-void mexFunction( int nlhs, mxArray *plhs[],
-                  int nrhs, const mxArray *prhs[]
-                )
-{
-  /* Declare */
-  int *ymf0, *ymf1, *Hmag0, *Hmag1, *Hmag0b, *Hmag1b, *rho10;
-  int *ymf0_out, *ymf1_out, *Hmag0_out, *Hmag1_out, *Hmag0b_out, *Hmag1b_out, *rho10_out;
-  int *ymf0_cpy, *ymf1_cpy, *Hmag0_cpy, *Hmag1_cpy, *Hmag0b_cpy, *Hmag1b_cpy, *rho10_cpy;
-  int *rxdataF_comp[NB_ANTENNAS_RX*NB_ANTENNAS_TX], *rxdataF_comp_i[NB_ANTENNAS_RX*NB_ANTENNAS_TX], *rho_i[NB_ANTENNAS_RX*NB_ANTENNAS_TX];
-  int *dl_ch_mag[NB_ANTENNAS_RX*NB_ANTENNAS_TX], *dl_ch_mag_i[NB_ANTENNAS_RX*NB_ANTENNAS_TX], *dl_ch_magb[NB_ANTENNAS_RX*NB_ANTENNAS_TX], *dl_ch_magb_i[NB_ANTENNAS_RX*NB_ANTENNAS_TX];
-  int i;
-  mxArray *tmp;
-
-  unsigned int nb_re_per_symbol, nb_re_per_frame;
-  unsigned char symbol, dual_stream_UE;
-
-  LTE_DL_FRAME_PARMS *frame_parms;
-
-  /* Check proper input and output. */
-  if(nrhs!=9)
-    mexErrMsgTxt("9 inputs required.");
-  else if(nlhs > 7)
-    mexErrMsgTxt("Too many output arguments.");
-  else if(!mxIsStruct(prhs[7]))
-    mexErrMsgTxt("8th input must be a structure.");
-
-  if(!mxIsInt16(prhs[0]))
-    mexErrMsgTxt("First argument must belong to Int16 class.");
-
-  if(!mxIsInt16(prhs[1]))
-    mexErrMsgTxt("Second argument must belong to Int16 class.");
-
-  if(!mxIsInt16(prhs[2]))
-    mexErrMsgTxt("Third argument must belong to Int16 class.");
-
-  if(!mxIsInt16(prhs[3]))
-    mexErrMsgTxt("Fourth argument must belong to Int16 class.");
-
-  if(!mxIsInt16(prhs[4]))
-    mexErrMsgTxt("Fifth argument must belong to Int16 class.");
-
-  if(!mxIsInt16(prhs[5]))
-    mexErrMsgTxt("Sixth argument must belong to Int16 class.");
-
-  if(!mxIsInt16(prhs[6]))
-    mexErrMsgTxt("Seventh argument must belong to Int16 class.");
-
-  /* Allocate input */
-  ymf0 = (int*) mxGetData(prhs[0]);
-  ymf1 = (int*) mxGetData(prhs[1]);
-  Hmag0 = (int*) mxGetData(prhs[2]);
-  Hmag1 = (int*) mxGetData(prhs[3]);
-  Hmag0b = (int*) mxGetData(prhs[4]);
-  Hmag1b = (int*) mxGetData(prhs[5]);
-  rho10 = (int*) mxGetData(prhs[6]);
-  symbol = (unsigned char) mxGetScalar(prhs[8]);
-
-
-  tmp = mxGetField(prhs[7],0,"nb_re_per_frame");
-
-  if (tmp == NULL) {
-    mexErrMsgTxt("Non-existing field 'nb_re_per_frame' in input argument 8.");
-  } else {
-    nb_re_per_frame = (unsigned int) mxGetScalar(tmp);
-  }
-
-  // Create a LTE_DL_FRAME_PARMS structure and assign required params
-  frame_parms = calloc(1,sizeof(LTE_DL_FRAME_PARMS));
-
-  tmp = mxGetField(prhs[7],0,"nb_rb");
-
-  if (tmp == NULL) {
-    mexErrMsgTxt("Non-existing field 'nb_rb' in input argument 8.");
-  } else {
-    frame_parms->N_RB_DL = (unsigned char) mxGetScalar(tmp);
-  }
-
-  tmp = mxGetField(prhs[7],0,"nb_antennas_rx");
-
-  if (tmp == NULL) {
-    mexErrMsgTxt("Non-existing field 'nb_antennas_rx' in input argument 8.");
-  } else {
-    frame_parms->nb_antennas_rx = (unsigned char) mxGetScalar(tmp);
-  }
-
-  tmp = mxGetField(prhs[7],0,"nb_antennas_tx_eNB");
-
-  if (tmp == NULL) {
-    mexErrMsgTxt("Non-existing field 'nb_antennas_tx_eNB' in input argument 8.");
-  } else {
-    frame_parms->nb_antennas_tx_eNB = (unsigned char) mxGetScalar(tmp);
-  }
-
-  nb_re_per_symbol = frame_parms->N_RB_DL*12;
-
-  if (frame_parms->nb_antennas_rx>1)
-    dual_stream_UE = 1;
-
-  // Make copies of inputs to avoid override
-  ymf0_cpy = (int*) mxCalloc(nb_re_per_frame*NB_ANTENNAS_RX*NB_ANTENNAS_TX, sizeof(int));
-  ymf1_cpy = (int*) mxCalloc(nb_re_per_frame*NB_ANTENNAS_RX*NB_ANTENNAS_TX, sizeof(int));
-  Hmag0_cpy = (int*) mxCalloc(nb_re_per_frame*NB_ANTENNAS_RX*NB_ANTENNAS_TX, sizeof(int));
-  Hmag1_cpy = (int*) mxCalloc(nb_re_per_frame*NB_ANTENNAS_RX*NB_ANTENNAS_TX, sizeof(int));
-  Hmag0b_cpy = (int*) mxCalloc(nb_re_per_frame*NB_ANTENNAS_RX*NB_ANTENNAS_TX, sizeof(int));
-  Hmag1b_cpy = (int*) mxCalloc(nb_re_per_frame*NB_ANTENNAS_RX*NB_ANTENNAS_TX, sizeof(int));
-  rho10_cpy = (int*) mxCalloc(nb_re_per_frame*NB_ANTENNAS_RX*NB_ANTENNAS_TX, sizeof(int));
-
-  memcpy(ymf0_cpy,ymf0,NB_ANTENNAS_RX*NB_ANTENNAS_TX*nb_re_per_frame<<2);
-  memcpy(ymf1_cpy,ymf1,(NB_ANTENNAS_RX*NB_ANTENNAS_TX*nb_re_per_frame<<2));
-  memcpy(Hmag0_cpy,Hmag0,(NB_ANTENNAS_RX*NB_ANTENNAS_TX*nb_re_per_frame<<2));
-  memcpy(Hmag1_cpy,Hmag1,(NB_ANTENNAS_RX*NB_ANTENNAS_TX*nb_re_per_frame<<2));
-  memcpy(Hmag0b_cpy,Hmag0b,(NB_ANTENNAS_RX*NB_ANTENNAS_TX*nb_re_per_frame<<2));
-  memcpy(Hmag1b_cpy,Hmag1b,(NB_ANTENNAS_RX*NB_ANTENNAS_TX*nb_re_per_frame<<2));
-  memcpy(rho10_cpy,rho10,(NB_ANTENNAS_RX*NB_ANTENNAS_TX*nb_re_per_frame<<2));
-
-  // Assign correct inputs to algo
-  rxdataF_comp[0] = ymf0_cpy;
-  rxdataF_comp[1] = &ymf0_cpy[nb_re_per_frame];
-  rxdataF_comp[2] = &ymf0_cpy[2*nb_re_per_frame];
-  rxdataF_comp[3] = &ymf0_cpy[3*nb_re_per_frame];
-  rxdataF_comp_i[0] = ymf1_cpy;
-  rxdataF_comp_i[1] = &ymf1_cpy[nb_re_per_frame];
-  rxdataF_comp_i[2] = &ymf1_cpy[2*nb_re_per_frame];
-  rxdataF_comp_i[3] = &ymf1_cpy[3*nb_re_per_frame];
-  rho_i[0] = rho10_cpy;
-  rho_i[1] = &rho10_cpy[nb_re_per_frame];
-  rho_i[2] = &rho10_cpy[2*nb_re_per_frame];
-  rho_i[3] = &rho10_cpy[3*nb_re_per_frame];
-  dl_ch_mag[0] = Hmag0_cpy;
-  dl_ch_mag[1] = &Hmag0_cpy[nb_re_per_frame];
-  dl_ch_mag[2] = &Hmag0_cpy[2*nb_re_per_frame];
-  dl_ch_mag[3] = &Hmag0_cpy[3*nb_re_per_frame];
-  dl_ch_magb[0] = Hmag0b_cpy;
-  dl_ch_magb[1] = &Hmag0b_cpy[nb_re_per_frame];
-  dl_ch_magb[2] = &Hmag0b_cpy[2*nb_re_per_frame];
-  dl_ch_magb[3] = &Hmag0b_cpy[3*nb_re_per_frame];
-  dl_ch_mag_i[0] = Hmag1_cpy;
-  dl_ch_mag_i[1] = &Hmag1_cpy[nb_re_per_frame];
-  dl_ch_mag_i[2] = &Hmag1_cpy[2*nb_re_per_frame];
-  dl_ch_mag_i[3] = &Hmag1_cpy[3*nb_re_per_frame];
-  dl_ch_magb_i[0] = Hmag1b_cpy;
-  dl_ch_magb_i[1] = &Hmag1b_cpy[nb_re_per_frame];
-  dl_ch_magb_i[2] = &Hmag1b_cpy[2*nb_re_per_frame];
-  dl_ch_magb_i[3] = &Hmag1b_cpy[3*nb_re_per_frame];
-
-  /* Allocate Output */
-  plhs[0] = mxCreateNumericMatrix(2*nb_re_per_symbol,NB_ANTENNAS_RX*NB_ANTENNAS_TX, mxINT16_CLASS, mxREAL);
-  ymf0_out = (int*) mxGetPr(plhs[0]);
-
-  plhs[1] = mxCreateNumericMatrix(2*nb_re_per_symbol,NB_ANTENNAS_RX*NB_ANTENNAS_TX, mxINT16_CLASS, mxREAL);
-  ymf1_out = (int*) mxGetPr(plhs[1]);
-
-  plhs[2] = mxCreateNumericMatrix(2*nb_re_per_symbol,NB_ANTENNAS_RX*NB_ANTENNAS_TX, mxINT16_CLASS, mxREAL);
-  Hmag0_out = (int*) mxGetPr(plhs[2]);
-
-  plhs[3] = mxCreateNumericMatrix(2*nb_re_per_symbol,NB_ANTENNAS_RX*NB_ANTENNAS_TX, mxINT16_CLASS, mxREAL);
-  Hmag0b_out = (int*) mxGetPr(plhs[3]);
-
-  plhs[4] = mxCreateNumericMatrix(2*nb_re_per_symbol,NB_ANTENNAS_RX*NB_ANTENNAS_TX, mxINT16_CLASS, mxREAL);
-  Hmag1_out = (int*) mxGetPr(plhs[4]);
-
-  plhs[5] = mxCreateNumericMatrix(2*nb_re_per_symbol,NB_ANTENNAS_RX*NB_ANTENNAS_TX, mxINT16_CLASS, mxREAL);
-  Hmag1b_out = (int*) mxGetPr(plhs[5]);
-
-  plhs[6] = mxCreateNumericMatrix(2*nb_re_per_symbol,NB_ANTENNAS_RX*NB_ANTENNAS_TX, mxINT16_CLASS, mxREAL);
-  rho10_out = (int*) mxGetPr(plhs[6]);
-
-#ifdef DEBUG_DETECTION_MRC
-  mexPrintf("Got until here\n");
-#endif
-
-
-  /* Algo */
-  dlsch_detection_mrc(frame_parms,
-                      rxdataF_comp,
-                      rxdataF_comp_i,
-                      NULL,
-                      rho_i,
-                      dl_ch_mag,
-                      dl_ch_magb,
-                      dl_ch_mag_i,
-                      dl_ch_magb_i,
-                      symbol,
-                      frame_parms->N_RB_DL,
-                      dual_stream_UE);
-
-#ifdef DEBUG_DETECTION_MRC
-  mexPrintf("Got until here too\n");
-#endif
-
-  // memcpy copies bytes!
-  memcpy(ymf0_out,&rxdataF_comp[0][symbol*frame_parms->N_RB_DL*12],nb_re_per_symbol<<2);
-  memcpy(&ymf0_out[nb_re_per_symbol],&rxdataF_comp[1][symbol*frame_parms->N_RB_DL*12],nb_re_per_symbol<<2);
-  memcpy(&ymf0_out[2*nb_re_per_symbol],&rxdataF_comp[2][symbol*frame_parms->N_RB_DL*12],nb_re_per_symbol<<2);
-  memcpy(&ymf0_out[3*nb_re_per_symbol],&rxdataF_comp[3][symbol*frame_parms->N_RB_DL*12],nb_re_per_symbol<<2);
-
-  memcpy(ymf1_out,&rxdataF_comp_i[0][symbol*frame_parms->N_RB_DL*12],nb_re_per_symbol<<2);
-  memcpy(&ymf1_out[nb_re_per_symbol],&rxdataF_comp_i[1][symbol*frame_parms->N_RB_DL*12],nb_re_per_symbol<<2);
-  memcpy(&ymf1_out[2*nb_re_per_symbol],&rxdataF_comp_i[2][symbol*frame_parms->N_RB_DL*12],nb_re_per_symbol<<2);
-  memcpy(&ymf1_out[3*nb_re_per_symbol],&rxdataF_comp_i[3][symbol*frame_parms->N_RB_DL*12],nb_re_per_symbol<<2);
-  memcpy(Hmag0_out,&dl_ch_mag[0][symbol*frame_parms->N_RB_DL*12],nb_re_per_symbol<<2);
-  memcpy(&Hmag0_out[nb_re_per_symbol],&dl_ch_mag[1][symbol*frame_parms->N_RB_DL*12],nb_re_per_symbol<<2);
-  memcpy(&Hmag0_out[2*nb_re_per_symbol],&dl_ch_mag[2][symbol*frame_parms->N_RB_DL*12],nb_re_per_symbol<<2);
-  memcpy(&Hmag0_out[3*nb_re_per_symbol],&dl_ch_mag[3][symbol*frame_parms->N_RB_DL*12],nb_re_per_symbol<<2);
-
-  memcpy(Hmag0b_out, &dl_ch_magb[0][symbol*frame_parms->N_RB_DL*12], nb_re_per_symbol<<2);
-  memcpy(&Hmag0b_out[nb_re_per_symbol],&dl_ch_magb[1][symbol*frame_parms->N_RB_DL*12],nb_re_per_symbol<<2);
-  memcpy(&Hmag0b_out[2*nb_re_per_symbol],&dl_ch_magb[2][symbol*frame_parms->N_RB_DL*12],nb_re_per_symbol<<2);
-  memcpy(&Hmag0b_out[3*nb_re_per_symbol],&dl_ch_magb[3][symbol*frame_parms->N_RB_DL*12],nb_re_per_symbol<<2);
-
-  memcpy(Hmag1_out,&dl_ch_mag_i[0][symbol*frame_parms->N_RB_DL*12],nb_re_per_symbol<<2);
-  memcpy(&Hmag1_out[nb_re_per_symbol],&dl_ch_mag_i[1][symbol*frame_parms->N_RB_DL*12],nb_re_per_symbol<<2);
-  memcpy(&Hmag1_out[2*nb_re_per_symbol],&dl_ch_mag_i[2][symbol*frame_parms->N_RB_DL*12],nb_re_per_symbol<<2);
-  memcpy(&Hmag1_out[3*nb_re_per_symbol],&dl_ch_mag_i[3][symbol*frame_parms->N_RB_DL*12],nb_re_per_symbol<<2);
-
-  memcpy(Hmag1b_out, &dl_ch_magb_i[0][symbol*frame_parms->N_RB_DL*12], nb_re_per_symbol<<2);
-  memcpy(&Hmag1b_out[nb_re_per_symbol],&dl_ch_magb_i[1][symbol*frame_parms->N_RB_DL*12],nb_re_per_symbol<<2);
-  memcpy(&Hmag1b_out[2*nb_re_per_symbol],&dl_ch_magb_i[2][symbol*frame_parms->N_RB_DL*12],nb_re_per_symbol<<2);
-  memcpy(&Hmag1b_out[3*nb_re_per_symbol],&dl_ch_magb_i[3][symbol*frame_parms->N_RB_DL*12],nb_re_per_symbol<<2);
-
-  memcpy(rho10_out, &rho_i[0][symbol*frame_parms->N_RB_DL*12], nb_re_per_symbol<<2);
-  memcpy(&rho10_out[nb_re_per_symbol],&rho_i[1][symbol*frame_parms->N_RB_DL*12],nb_re_per_symbol<<2);
-  memcpy(&rho10_out[2*nb_re_per_symbol],&rho_i[2][symbol*frame_parms->N_RB_DL*12],nb_re_per_symbol<<2);
-  memcpy(&rho10_out[3*nb_re_per_symbol],&rho_i[3][symbol*frame_parms->N_RB_DL*12],nb_re_per_symbol<<2);
-
-
-  /* free */
-  free(frame_parms);
-  mxFree(ymf0_cpy);
-  mxFree(ymf1_cpy);
-  mxFree(Hmag0_cpy);
-  mxFree(Hmag1_cpy);
-  mxFree(Hmag0b_cpy);
-  mxFree(Hmag1b_cpy);
-  mxFree(rho10_cpy);
-}
diff --git a/openair1/USERSPACE_TOOLS/MATLAB/PHY/LTE_TRANSPORT/mexfiles/dlsch_dual_stream_correlation.c b/openair1/USERSPACE_TOOLS/MATLAB/PHY/LTE_TRANSPORT/mexfiles/dlsch_dual_stream_correlation.c
deleted file mode 100644
index cb48a1782505be2ff2dcc7d01c4021bf0097b931..0000000000000000000000000000000000000000
--- a/openair1/USERSPACE_TOOLS/MATLAB/PHY/LTE_TRANSPORT/mexfiles/dlsch_dual_stream_correlation.c
+++ /dev/null
@@ -1,129 +0,0 @@
-#include "../../../defs.h"
-
-/*==============================================================================
-* dlsch_dual_stream_correlation.c
-*
-* Returns the correlation coefficient Heff1'Heff0.
-*
-* example: rho = dlsch_dual_stream_correlation(Heff0,Heff1,simparms,slot);
-*
-* Author: Sebastian Wagner
-* Date: 24-07-2012
-*
-===============================================================================*/
-
-void mexFunction( int nlhs, mxArray *plhs[],
-                  int nrhs, const mxArray *prhs[]
-                )
-{
-  /* Declare */
-  int *dl_ch_estimates_ext[NB_ANTENNAS_RX*NB_ANTENNAS_TX],*dl_ch_estimates_ext_i[NB_ANTENNAS_RX*NB_ANTENNAS_TX],*Heff0,*Heff1,*rho10,*rho10_out,*dl_ch_rho_ext[NB_ANTENNAS_RX*NB_ANTENNAS_TX];
-  unsigned int nb_re_per_symbol, nb_re_per_frame;
-  unsigned char output_shift, symbol;
-  LTE_DL_FRAME_PARMS *frame_parms;
-  mxArray *tmp;
-
-  /* Check proper input and output. */
-  if(nrhs!=4)
-    mexErrMsgTxt("4 inputs required.");
-  else if(nlhs > 1)
-    mexErrMsgTxt("Too many output arguments.");
-  else if(!mxIsStruct(prhs[2]))
-    mexErrMsgTxt("Third input must be a structure.");
-
-  if(!mxIsInt16(prhs[0]))
-    mexErrMsgTxt("First argument must belong to Int16 class.");
-
-  if(!mxIsInt16(prhs[1]))
-    mexErrMsgTxt("Second argument must belong to Int16 class.");
-
-  /* Allocate input */
-  Heff0 = (int*) mxGetData(prhs[0]);
-  Heff1 = (int*) mxGetData(prhs[1]);
-  symbol = (unsigned char) mxGetScalar(prhs[3]);
-
-  tmp = mxGetField(prhs[2],0,"log2_maxh");
-
-  if (tmp == NULL) {
-    mexErrMsgTxt("Non-existing field 'log2_maxh' in input argument 3.");
-  } else {
-    output_shift = (unsigned char) mxGetScalar(tmp);
-  }
-
-  tmp = mxGetField(prhs[2],0,"nb_re_per_frame");
-
-  if (tmp == NULL) {
-    mexErrMsgTxt("Non-existing field 'nb_re_per_frame' in input argument 3.");
-  } else {
-    nb_re_per_frame = (unsigned int) mxGetScalar(tmp);
-  }
-
-  // Create a LTE_DL_FRAME_PARMS structure and assign required params
-  frame_parms = calloc(1,sizeof(LTE_DL_FRAME_PARMS));
-  tmp = mxGetField(prhs[2],0,"nb_rb");
-
-  if (tmp == NULL) {
-    mexErrMsgTxt("Non-existing field 'nb_rb' in input argument 3.");
-  } else {
-    frame_parms->N_RB_DL = (unsigned char) mxGetScalar(tmp);
-  }
-
-  tmp = mxGetField(prhs[2],0,"nb_antennas_rx");
-
-  if (tmp == NULL) {
-    mexErrMsgTxt("Non-existing field 'nb_antennas_rx' in input argument 3.");
-  } else {
-    frame_parms->nb_antennas_rx = (unsigned char) mxGetScalar(tmp);
-  }
-
-  tmp = mxGetField(prhs[2],0,"Ncp");
-
-  if (tmp == NULL) {
-    mexErrMsgTxt("Non-existing field 'Ncp' in input argument 3.");
-  } else {
-    frame_parms->Ncp = (unsigned char) mxGetScalar(tmp);
-  }
-
-  nb_re_per_symbol = frame_parms->N_RB_DL*12;
-
-  /* Allocate Output */
-  plhs[0] = mxCreateNumericMatrix(2*nb_re_per_symbol,NB_ANTENNAS_RX*NB_ANTENNAS_TX, mxINT16_CLASS, mxREAL);
-  rho10_out = (int*) mxGetPr(plhs[0]);
-
-  rho10 = (int*) mxCalloc(nb_re_per_frame*NB_ANTENNAS_RX*NB_ANTENNAS_TX, sizeof(int));
-
-  dl_ch_rho_ext[0] = rho10;
-  dl_ch_rho_ext[1] = &rho10[nb_re_per_frame];
-  dl_ch_rho_ext[2] = &rho10[2*nb_re_per_frame];
-  dl_ch_rho_ext[3] = &rho10[3*nb_re_per_frame];
-
-  dl_ch_estimates_ext[0] = Heff0;
-  dl_ch_estimates_ext[1] = &Heff0[nb_re_per_frame];
-  dl_ch_estimates_ext[2] = &Heff0[2*nb_re_per_frame];
-  dl_ch_estimates_ext[3] = &Heff0[3*nb_re_per_frame];
-
-  dl_ch_estimates_ext_i[0] = Heff1;
-  dl_ch_estimates_ext_i[1] = &Heff1[nb_re_per_frame];
-  dl_ch_estimates_ext_i[2] = &Heff1[2*nb_re_per_frame];
-  dl_ch_estimates_ext_i[3] = &Heff1[3*nb_re_per_frame];
-
-
-  /* Algo */
-  dlsch_dual_stream_correlation(frame_parms,
-                                symbol,
-                                frame_parms->N_RB_DL,
-                                dl_ch_estimates_ext,
-                                dl_ch_estimates_ext_i,
-                                dl_ch_rho_ext,
-                                output_shift);
-
-
-  memcpy(rho10_out,&dl_ch_rho_ext[0][symbol*frame_parms->N_RB_DL*12],nb_re_per_symbol<<2);
-  memcpy(&rho10_out[nb_re_per_symbol],&dl_ch_rho_ext[1][symbol*frame_parms->N_RB_DL*12],nb_re_per_symbol<<2);
-  memcpy(&rho10_out[2*nb_re_per_symbol],&dl_ch_rho_ext[2][symbol*frame_parms->N_RB_DL*12],nb_re_per_symbol<<2);
-  memcpy(&rho10_out[3*nb_re_per_symbol],&dl_ch_rho_ext[3][symbol*frame_parms->N_RB_DL*12],nb_re_per_symbol<<2);
-
-  /* free */
-  free(frame_parms);
-  mxFree(rho10);
-}
diff --git a/openair1/USERSPACE_TOOLS/MATLAB/PHY/LTE_TRANSPORT/mexfiles/dlsch_encoding.c b/openair1/USERSPACE_TOOLS/MATLAB/PHY/LTE_TRANSPORT/mexfiles/dlsch_encoding.c
deleted file mode 100644
index e6348af53d4ee70caf05491e6d6b0a198de3becc..0000000000000000000000000000000000000000
--- a/openair1/USERSPACE_TOOLS/MATLAB/PHY/LTE_TRANSPORT/mexfiles/dlsch_encoding.c
+++ /dev/null
@@ -1,225 +0,0 @@
-#include "../../../defs.h"
-
-/*==============================================================================
-* dlsch_encoding.c
-*
-* Returns the encoded bit sequence.
-*
-* example: e = dlsch_encoding(bits,struct1,struct2)
-*
-* Author: Sebastian Wagner
-* Date: 23-07-2012
-*
-===============================================================================*/
-
-// #define DEBUG_DLSCH_ENCODING
-
-void mexFunction( int nlhs, mxArray *plhs[],
-                  int nrhs, const mxArray *prhs[]
-                )
-{
-
-  /* Declare */
-  unsigned char *input_buffer;
-  unsigned char *e; // encoded bits = output
-  unsigned char mcs=0;
-  unsigned char mod_order=2;
-  unsigned char num_pdcch_symbols=1;
-  unsigned char harq_pid=0;
-  unsigned char subframe=0;
-  unsigned char Kmimo=1;
-  unsigned char Mdlharq=8;
-  unsigned char abstraction_flag;
-  int ret, input_buffer_length;
-  unsigned int G;
-  mxArray *tmp;
-  LTE_eNB_DLSCH_t* dlsch;
-  LTE_DL_FRAME_PARMS *frame_parms;
-  time_stats_t dlsch_rate_matching_stats, dlsch_turbo_encoding_stats, dlsch_interleaving_stats;
-
-
-  /* Check proper input and output. */
-  if(nrhs!=3)
-    mexErrMsgTxt("Three inputs required.");
-  else if(nlhs > 1)
-    mexErrMsgTxt("Too many output arguments.");
-  else if(!mxIsStruct(prhs[1]))
-    mexErrMsgTxt("Second input must be a structure.");
-  else if(!mxIsStruct(prhs[2]))
-    mexErrMsgTxt("Third input must be a structure.");
-
-  // Init CRC tables
-  crcTableInit();
-
-  /* Create new dlsch */
-  tmp = mxGetField(prhs[2],0,"Kmimo");
-
-  if (tmp == NULL) {
-    mexErrMsgTxt("Non-existing field 'Kmimo' in input argument 3.");
-  } else {
-    Kmimo = (unsigned char) mxGetScalar(tmp);
-  }
-
-  tmp = mxGetField(prhs[2],0,"Mdlharq");
-
-  if (tmp == NULL) {
-    mexErrMsgTxt("Non-existing field 'Mdlharq' in input argument 3.");
-  } else {
-    Mdlharq = (unsigned char) mxGetScalar(tmp);
-  }
-
-  tmp = mxGetField(prhs[1],0,"abstraction_flag");
-
-  if (tmp == NULL) {
-    mexErrMsgTxt("Non-existing field 'abstraction_flag' in input argument 2.");
-  } else {
-    abstraction_flag = (unsigned char) mxGetScalar(tmp);
-  }
-
-  dlsch = new_eNB_dlsch(Kmimo,Mdlharq,25,abstraction_flag);
-
-  /* Allocate input */
-  input_buffer = (unsigned char*) mxGetData(prhs[0]);
-  (mxGetM(prhs[0]) > 1) ? (input_buffer_length = mxGetM(prhs[0])) : (input_buffer_length = mxGetN(prhs[0]));
-
-  tmp = mxGetField(prhs[2],0,"mcs");
-
-  if (tmp == NULL) {
-    mexErrMsgTxt("Non-existing field 'mcs' in input argument 3.");
-  } else {
-    mcs = (unsigned char) mxGetScalar(tmp);
-  }
-
-  tmp = mxGetField(prhs[2],0,"harq_pid");
-
-  if (tmp == NULL) {
-    mexErrMsgTxt("Non-existing field 'harq_pid' in input argument 3.");
-  } else {
-    harq_pid = (unsigned char) mxGetScalar(tmp);
-  }
-
-  dlsch->current_harq_pid = harq_pid;
-  dlsch->harq_processes[harq_pid]->mcs = mcs;
-
-  tmp = mxGetField(prhs[2],0,"rvidx");
-
-  if (tmp == NULL) {
-    mexErrMsgTxt("Non-existing field 'rvidx' in input argument 3.");
-  } else {
-    dlsch->harq_processes[harq_pid]->rvidx = (unsigned char) mxGetScalar(tmp);
-  }
-
-  tmp = mxGetField(prhs[2],0,"Nl");
-
-  if (tmp == NULL) {
-    mexErrMsgTxt("Non-existing field 'Nl' in input argument 3.");
-  } else {
-    dlsch->harq_processes[harq_pid]->Nl = (unsigned char) mxGetScalar(tmp);
-  }
-
-  /*
-  tmp = mxGetField(prhs[2],0,"Ndi");
-  if (tmp == NULL) {
-    mexErrMsgTxt("Non-existing field 'Ndi' in input argument 3.");
-  } else {
-    dlsch->harq_processes[harq_pid]->Ndi = (unsigned char) mxGetScalar(tmp);
-  }
-  */
-  tmp = mxGetField(prhs[1],0,"rb_alloc");
-
-  if (tmp == NULL) {
-    mexErrMsgTxt("Non-existing field 'rb_alloc' in input argument 2.");
-  } else {
-    dlsch->rb_alloc[0] = (unsigned int) mxGetScalar(tmp);
-  }
-
-  tmp = mxGetField(prhs[1],0,"nb_rb");
-
-  if (tmp == NULL) {
-    mexErrMsgTxt("Non-existing field 'nb_rb' in input argument 2.");
-  } else {
-    dlsch->nb_rb = (unsigned short) mxGetScalar(tmp);
-  }
-
-  dlsch->harq_processes[harq_pid]->TBS = dlsch_tbs25[get_I_TBS(mcs)][dlsch->nb_rb-1];
-
-  // Check if input buffer length is correct
-  if ((input_buffer_length) != (dlsch->harq_processes[harq_pid]->TBS/8+4)) {
-    free_eNB_dlsch(dlsch);
-    mexErrMsgTxt("Length of the input buffer is incorrect.");
-  }
-
-  tmp = mxGetField(prhs[1],0,"num_pdcch_symbols");
-
-  if (tmp == NULL) {
-    mexErrMsgTxt("Non-existing field 'num_pdcch_symbols' in input argument 2.");
-  } else {
-    num_pdcch_symbols = (unsigned char) mxGetScalar(tmp);
-  }
-
-  tmp = mxGetField(prhs[1],0,"subframe");
-
-  if (tmp == NULL) {
-    mexErrMsgTxt("Non-existing field 'subframe' in input argument 2.");
-  } else {
-    subframe = (unsigned char) mxGetScalar(tmp);
-  }
-
-  // Create a LTE_DL_FRAME_PARMS structure and assign required params
-  frame_parms = calloc(1,sizeof(LTE_DL_FRAME_PARMS));
-  frame_parms->N_RB_DL = (unsigned char) dlsch->nb_rb;
-
-  tmp = mxGetField(prhs[1],0,"frame_type");
-
-  if (tmp == NULL) {
-    mexErrMsgTxt("Non-existing field 'frame_type' in input argument 2.");
-  } else {
-    frame_parms->frame_type = (unsigned char) mxGetScalar(tmp);
-  }
-
-  tmp = mxGetField(prhs[1],0,"mode1_flag");
-
-  if (tmp == NULL) {
-    mexErrMsgTxt("Non-existing field 'frame_type' in input argument 2.");
-  } else {
-    frame_parms->mode1_flag = (unsigned char) mxGetScalar(tmp);
-  }
-
-  tmp = mxGetField(prhs[1],0,"Ncp");
-
-  if (tmp == NULL) {
-    mexErrMsgTxt("Non-existing field 'frame_type' in input argument 2.");
-  } else {
-    frame_parms->Ncp = (unsigned char) mxGetScalar(tmp);
-  }
-
-  mod_order = get_Qm(dlsch->harq_processes[harq_pid]->mcs);
-  G = get_G(frame_parms,dlsch->nb_rb,dlsch->rb_alloc,mod_order,dlsch->harq_processes[harq_pid]->Nl,num_pdcch_symbols,0,subframe);
-
-#ifdef DEBUG_DLSCH_ENCODING
-  mexPrintf("dlsch->current_harq_pid = %d\n", dlsch->current_harq_pid);
-  mexPrintf("dlsch->harq_processes[harq_pid]->rvidx = %d\n", dlsch->harq_processes[harq_pid]->rvidx);
-  mexPrintf("dlsch->harq_processes[harq_pid]->Nl = %d\n", dlsch->harq_processes[harq_pid]->Nl);
-  mexPrintf("dlsch->harq_processes[harq_pid]->Ndi = %d\n", dlsch->harq_processes[harq_pid]->Ndi);
-  mexPrintf("mod_order = %d\n",mod_order);
-  mexPrintf("G = %d\n",G);
-  mexPrintf("frame_parms->N_RB_DL = %d\n", frame_parms->N_RB_DL);
-  mexPrintf("frame_parms->frame_type = %d\n", frame_parms->frame_type);
-  mexPrintf("frame_parms->mode1_flag = %d\n", frame_parms->mode1_flag);
-  mexPrintf("frame_parms->Ncp = %d\n", frame_parms->Ncp);
-#endif
-
-  /* Allocate Output */
-  plhs[0] = mxCreateNumericMatrix(G, 1, mxUINT8_CLASS, mxREAL);
-  e = (unsigned char*) mxGetPr(plhs[0]);
-
-  /* Algo */
-  ret = dlsch_encoding(input_buffer, frame_parms, num_pdcch_symbols, dlsch, 0, subframe,&dlsch_rate_matching_stats, &dlsch_turbo_encoding_stats, &dlsch_interleaving_stats);
-
-  /* Assign output */
-  memcpy((void*) e, (void*) dlsch->e,G);
-
-  /* free */
-  free_eNB_dlsch(dlsch);
-  free(frame_parms);
-}
diff --git a/openair1/USERSPACE_TOOLS/MATLAB/PHY/LTE_TRANSPORT/mexfiles/dlsch_mu_mimo_llr.c b/openair1/USERSPACE_TOOLS/MATLAB/PHY/LTE_TRANSPORT/mexfiles/dlsch_mu_mimo_llr.c
deleted file mode 100644
index 09bab5535bda80abfc978c4018f058594904a68e..0000000000000000000000000000000000000000
--- a/openair1/USERSPACE_TOOLS/MATLAB/PHY/LTE_TRANSPORT/mexfiles/dlsch_mu_mimo_llr.c
+++ /dev/null
@@ -1,178 +0,0 @@
-#include "../../../defs.h"
-
-/*==============================================================================
-* dlsch_mu_mimo_llr.c
-*
-* Returns the LLRs for interference aware receiver.
-*
-* example: llr = dlsch_mu_mimo_llr(ymf0,ymf1,Hmag0,Hmag1,rho10,simparms,slot);
-*
-* Author: Sebastian Wagner
-* Date: 24-07-2012
-*
-===============================================================================*/
-
-// #define DEBUG_MU_MIMO_LLR
-#define LLR_GUARD 48
-
-void mexFunction( int nlhs, mxArray *plhs[],
-                  int nrhs, const mxArray *prhs[]
-                )
-{
-  /* Declare */
-  short *ymf0, *ymf1,*hmag0, *hmag1, *rho10, *llr;
-  short *llr_16 __attribute__ ((aligned(16)));
-  unsigned char mod_order;
-  unsigned char symbol, symbol_mod;
-  int nb_re_per_symbol,i;
-  mxArray *tmp;
-  LTE_DL_FRAME_PARMS *frame_parms;
-
-  /* Check proper input and output. */
-  if(nrhs!=7)
-    mexErrMsgTxt("7 inputs required.");
-  else if(nlhs > 1)
-    mexErrMsgTxt("Too many output arguments.");
-  else if(!mxIsStruct(prhs[5]))
-    mexErrMsgTxt("6. input must be a structure.");
-
-  if(!mxIsInt16(prhs[0]))
-    mexErrMsgTxt("First argument must belong to Int16 class.");
-
-  if(!mxIsInt16(prhs[1]))
-    mexErrMsgTxt("Second argument must belong to Int16 class.");
-
-  if(!mxIsInt16(prhs[2]))
-    mexErrMsgTxt("Third argument must belong to Int16 class.");
-
-  if(!mxIsInt16(prhs[3]))
-    mexErrMsgTxt("4. argument must belong to Int16 class.");
-
-  if(!mxIsInt16(prhs[4]))
-    mexErrMsgTxt("5. argument must belong to Int16 class.");
-
-  /* Allocate input */
-  ymf0 = (short*) mxGetData(prhs[0]);
-  ymf1 = (short*) mxGetData(prhs[1]);
-  hmag0 = (short*) mxGetData(prhs[2]);
-  hmag1 = (short*) mxGetData(prhs[3]);
-  rho10 = (short*) mxGetData(prhs[4]);
-  symbol = (unsigned char) mxGetScalar(prhs[6]);
-
-  tmp = mxGetField(prhs[5],0,"codeword");
-
-  if (tmp == NULL) {
-    mexErrMsgTxt("Non-existing field 'codeword' in input argument 6.");
-  } else {
-    tmp = mxGetField(mxGetField(prhs[5],0,"codeword"),0,"mod_order");
-
-    if (tmp == NULL) {
-      mexErrMsgTxt("Non-existing field 'mod_order' in input argument '6.codeword(1)'.");
-    } else {
-      mod_order = (unsigned char) mxGetScalar(tmp);
-    }
-  }
-
-  // Create a LTE_DL_FRAME_PARMS structure and assign required params
-  frame_parms = (LTE_DL_FRAME_PARMS*) mxCalloc(1,sizeof(LTE_DL_FRAME_PARMS));
-  tmp = mxGetField(prhs[5],0,"nb_rb");
-
-  if (tmp == NULL) {
-    mexErrMsgTxt("Non-existing field 'nb_rb' in input argument 6.");
-  } else {
-    frame_parms->N_RB_DL = (unsigned char) mxGetScalar(tmp);
-  }
-
-  tmp = mxGetField(prhs[5],0,"nb_antennas_rx");
-
-  if (tmp == NULL) {
-    mexErrMsgTxt("Non-existing field 'nb_antennas_rx' in input argument 6.");
-  } else {
-    frame_parms->nb_antennas_rx = (unsigned char) mxGetScalar(tmp);
-  }
-
-  tmp = mxGetField(prhs[5],0,"nb_antennas_tx");
-
-  if (tmp == NULL) {
-    mexErrMsgTxt("Non-existing field 'nb_antennas_tx' in input argument 6.");
-  } else {
-    frame_parms->nb_antennas_tx = (unsigned char) mxGetScalar(tmp);
-  }
-
-  tmp = mxGetField(prhs[5],0,"Ncp");
-
-  if (tmp == NULL) {
-    mexErrMsgTxt("Non-existing field 'Ncp' in input argument 6.");
-  } else {
-    frame_parms->Ncp = (unsigned char) mxGetScalar(tmp);
-  }
-
-  // Adapt the channel estimates and receive signal
-  symbol_mod = (symbol>=(7-frame_parms->Ncp)) ? symbol-(7-frame_parms->Ncp) : symbol;
-
-  if ((symbol_mod == 0) || (symbol_mod == (4-frame_parms->Ncp)))
-    nb_re_per_symbol = frame_parms->N_RB_DL*8; // pilots
-  else
-    nb_re_per_symbol = frame_parms->N_RB_DL*12;
-
-  /* Allocate Output */
-  plhs[0] = mxCreateNumericMatrix(mod_order*nb_re_per_symbol,1, mxINT16_CLASS, mxREAL);
-  llr = (short*) mxGetPr(plhs[0]);
-
-#ifdef DEBUG_MU_MIMO_LLR
-  mexPrintf("mod_order: %d\n", mod_order);
-  mexPrintf("frame_parms->N_RB_DL %d\n", frame_parms->N_RB_DL);
-  mexPrintf("frame_parms->nb_antennas_rx %d\n", frame_parms->nb_antennas_rx);
-  mexPrintf("frame_parms->nb_antennas_tx %d\n", frame_parms->nb_antennas_tx);
-  mexPrintf("frame_parms->Ncp %d\n", frame_parms->Ncp);
-  mexPrintf("nb_re_per_symbol %d\n", nb_re_per_symbol);
-  mexPrintf("frame_parms %p\n", frame_parms);
-  //     mexPrintf("ymf0 %p\n",ymf0);
-  //     mexPrintf("ymf1 %p\n",ymf1);
-  //     mexPrintf("llr %p\n",llr);
-  //     mexPrintf("hmag0 %p\n",hmag0);
-  //     mexPrintf("hmag1 %p\n",hmag1);
-  //     mexPrintf("rho10 %p\n",rho10);
-
-  //     for(i=0;i<(nb_re_per_symbol*2);i++) {
-  for(i=0; i<(8*2); i++) {
-    mexPrintf("i=%d\n",i);
-    mexPrintf("ymf0 = %d\n",ymf0[i]);
-    mexPrintf("ymf1 = %d\n",ymf1[i]);
-    mexPrintf("hmag0 = %d\n",hmag0[i]);
-    mexPrintf("hmag1 = %d\n",hmag1[i]);
-    mexPrintf("rho10 = %d\n",rho10[i]);
-  }
-
-#endif
-
-  // 16 bit aligned memory allocation with guard samples
-  llr_16 = (short *) malloc16((mod_order*nb_re_per_symbol+LLR_GUARD)*sizeof(short));
-
-  /* Algo */
-  switch (mod_order) {
-  case 2 :
-    qpsk_qpsk(ymf0, ymf1, llr_16, rho10, nb_re_per_symbol);
-    break;
-
-  case 4 :
-    qam16_qam16(ymf0, ymf1, hmag0, hmag1, llr_16, rho10, nb_re_per_symbol);
-    break;
-
-  case 6 :
-    qam64_qam64(ymf0, ymf1, hmag0, hmag1, llr_16, rho10, nb_re_per_symbol);
-    break;
-
-  default :
-    mexErrMsgTxt("Unknown mod_order.");
-    break;
-  }
-
-  // copy just valid LLRs to output
-  memcpy((void*) llr, (void *) llr_16, mod_order*nb_re_per_symbol*sizeof(short));
-
-
-  /* free */
-  mxFree(frame_parms);
-  free(llr_16);
-}
diff --git a/openair1/USERSPACE_TOOLS/MATLAB/PHY/LTE_TRANSPORT/mexfiles/get_tbs.c b/openair1/USERSPACE_TOOLS/MATLAB/PHY/LTE_TRANSPORT/mexfiles/get_tbs.c
deleted file mode 100644
index b35e550e2ca3c89091b7c186faa7b70521c2afac..0000000000000000000000000000000000000000
--- a/openair1/USERSPACE_TOOLS/MATLAB/PHY/LTE_TRANSPORT/mexfiles/get_tbs.c
+++ /dev/null
@@ -1,52 +0,0 @@
-#include "../../../defs.h"
-
-/*==============================================================================
-* get_tbs.c
-*
-* Returns the transport block size (TBS) given the MCS and the number of RBs.
-*
-* example: tbs = get_tbs(16,25)
-*
-* Author: Sebastian Wagner
-* Date: 23-07-2012
-*
-===============================================================================*/
-
-unsigned char get_I_TBS(unsigned char I_MCS);
-
-void mexFunction( int nlhs, mxArray *plhs[],
-                  int nrhs, const mxArray *prhs[]
-                )
-{
-
-  /* Declare */
-  unsigned char mcs, nb_rb;
-  unsigned int *tbs;
-
-  /* Check correct I/O number */
-  if(nrhs!=2) {
-    mexErrMsgTxt("Two inputs required.");
-  } else if(nlhs>1) {
-    mexErrMsgTxt("Too many output arguments.");
-  }
-
-  /* Allocate input */
-  mcs = (unsigned char) mxGetScalar(prhs[0]);
-  nb_rb = (unsigned char) mxGetScalar(prhs[1]);
-
-  /* Check input */
-  if((mcs < 0) || (mcs > 28)) {
-    mexErrMsgTxt("Wrong MCS index.");
-  } else if((nb_rb<=0) || (nb_rb>25)) {
-    mexErrMsgTxt("Unsupported number of RBs.");
-  };
-
-  /* Allocate Output */
-  plhs[0] = mxCreateNumericMatrix(1, 1, mxUINT32_CLASS, mxREAL);
-
-  tbs = (unsigned int*) mxGetPr(plhs[0]);
-
-  /* Algo */
-  *tbs = dlsch_tbs25[get_I_TBS(mcs)][nb_rb-1];
-
-}
diff --git a/openair1/USERSPACE_TOOLS/MATLAB/PHY/LTE_TRANSPORT/testfiles/test_dlsch_encoding.m b/openair1/USERSPACE_TOOLS/MATLAB/PHY/LTE_TRANSPORT/testfiles/test_dlsch_encoding.m
deleted file mode 100644
index 6a9d32dc4c309059a7d86aa5931f27286a04d184..0000000000000000000000000000000000000000
--- a/openair1/USERSPACE_TOOLS/MATLAB/PHY/LTE_TRANSPORT/testfiles/test_dlsch_encoding.m
+++ /dev/null
@@ -1,32 +0,0 @@
-%% Testfile for dlsch_encoding mex-function
-clear all;
-addpath('../mexfiles');
-
-%% Input
-simparms.nb_rb = 25; % fixed number of RB per OFDM symbol
-simparms.rb_alloc = hex2dec('1FFFFFF'); % 25 ones
-simparms.num_pdcch_symbols = 3;
-simparms.subframe = 7;
-simparms.abstraction_flag = 0;
-simparms.frame_type = 1; % TDD frame
-simparms.mode1_flag = 0; % is TM1 active?
-simparms.Ncp = 0; % Normal CP
-
-codeword.mcs = 13;
-codeword.TBS = get_tbs(codeword.mcs,simparms.nb_rb);
-codeword.Kmimo = 1;
-codeword.harq_pid = 0; % First HARQ round
-codeword.Mdlharq = 1; % Number of HARQ rounds
-codeword.rvidx = 0;
-codeword.Nl = 1;
-codeword.Ndi = 1;
-
-data0 = uint8(randi([0,255],codeword.TBS/8+4,1));
-
-%% mex
-edata0 = dlsch_encoding(data0,simparms,codeword);
-llr = int16((double(edata0)-0.5)*128);
-ret0 = dlsch_decoding(llr,simparms,codeword);
-
-%% Print
-disp(ret0);
\ No newline at end of file
diff --git a/openair1/USERSPACE_TOOLS/MATLAB/PHY/TOOLS/mexfiles/log2_approx.c b/openair1/USERSPACE_TOOLS/MATLAB/PHY/TOOLS/mexfiles/log2_approx.c
deleted file mode 100644
index b55664a20654b02faba4ee0894a6bbf43d89c3fb..0000000000000000000000000000000000000000
--- a/openair1/USERSPACE_TOOLS/MATLAB/PHY/TOOLS/mexfiles/log2_approx.c
+++ /dev/null
@@ -1,21 +0,0 @@
-#include "../../../defs.h"
-
-void mexFunction( int nlhs, mxArray *plhs[],
-                  int nrhs, const mxArray *prhs[]
-                )
-{
-
-  /* Declare */
-  unsigned int x;
-  unsigned char *l2;
-
-  /* Allocate input */
-  x = (unsigned int) mxGetScalar(prhs[0]);
-
-  /* Allocate Output */
-  plhs[0] = mxCreateNumericMatrix(1, 1, mxUINT8_CLASS, mxREAL);
-  l2 = (unsigned char*) mxGetPr(plhs[0]);
-
-  /* Algo */
-  *l2 = log2_approx(x);
-}
\ No newline at end of file
diff --git a/openair1/USERSPACE_TOOLS/MATLAB/SIMULATION/LTE_PHY/TM4/InitSimparms.m b/openair1/USERSPACE_TOOLS/MATLAB/SIMULATION/LTE_PHY/TM4/InitSimparms.m
deleted file mode 100644
index 2f395cf378ef1f07b881706ef5d52fdebfea0fe0..0000000000000000000000000000000000000000
--- a/openair1/USERSPACE_TOOLS/MATLAB/SIMULATION/LTE_PHY/TM4/InitSimparms.m
+++ /dev/null
@@ -1,107 +0,0 @@
-function [ simparms ] = InitSimparms( mcs, n_frames, SNRdB )
-%INITSIMPARMS initialize simparms struct for TM5
-% There are always 2 user schedules for transmission
-% INPUT:
-%   nb_antennas_tx = Number of transmit antennas, max = 2
-%   nb_antennas_rx = Number of receive antennas per UE, max = 2
-%   MCS(2) = Modulation and Coding Scheme [1,...,27]
-%   n_frames = Number of frames to simulate
-%   SNRdB = SNR in dB
-
-addpath('../../../PHY/LTE_TRANSPORT/mexfiles');
-
-j = sqrt(-1);
-
-%% Custom parameters 
-simparms.nb_antennas_tx = 2;
-simparms.nb_antennas_tx_eNB = simparms.nb_antennas_tx;
-simparms.nb_antennas_rx = 2;
-simparms.n_frames = n_frames;
-simparms.snr_db = SNRdB;
-
-%% Constant parameters
-simparms.NB_ANTENNAS_TX = 2; % max number of TX antennas
-simparms.NB_ANTENNAS_RX = 2; % max number of RX antennas
-simparms.snr = 10.^(SNRdB/10);
-simparms.num_pdcch_symbols = 3;
-simparms.subframe = 7;
-simparms.abstraction_flag = 0;
-simparms.nb_rb = 25; % fixed number of RB per OFDM symbol
-simparms.rb_alloc = hex2dec('1FFF'); % 25 RBs
-simparms.MAX_TURBO_ITERATIONS = 5;
-simparms.nb_re = 3000; % there are 3000 REs in subframe 7
-simparms.frame_type = 1; % TDD frame
-simparms.mode1_flag = 0; % no is TM1 active
-simparms.Ncp = 0; % Normal CP
-simparms.ofdm_symbol_size = 512;
-simparms.log2_maxh = 16;
-simparms.dl_power_offset= 1; % no 3dB power offset
-simparms.nb_slots = 14;
-simparms.nb_re_per_symbol = simparms.nb_rb*12;
-simparms.nb_re_per_frame = simparms.nb_slots*simparms.nb_re_per_symbol;
-simparms.frame_errors = zeros(length(simparms.snr),simparms.NB_ANTENNAS_RX);
-simparms.CB = [[1;1],[1;-1],[1;j],[1;-j]]/sqrt(2); % codebook
-simparms.tseeds = set_taus_seed(1); % taus seeds
-
-% Turbo decoder: set the pointer to the td tables allocated by init_td()
-simparms.ptr_td = dlsch_decoding_init();
-
-% Init codewords
-% simparms.codeword(1) = InitCodeword(simparms,mcs(1));
-% simparms.codeword(2) = InitCodeword(simparms,mcs(2));
-
-simparms.codeword(1) = InitCodeword(simparms,mcs(1));
-simparms.codeword(2) = InitCodeword(simparms,mcs(2));
-% simparms.codeword(3) = InitCodeword(simparms,mcs(1));
-% simparms.codeword(4) = InitCodeword(simparms,mcs(1));
-
-end
-
-function codeword = InitCodeword(simparms,mcs)
-
-% Constellation
-j = sqrt(-1);
-amp = 1/32;
-Q4 =  amp*[ 1+j,  1- j,  -1+j, -1-j]./sqrt(2);
-Q16 = amp*[ 1+j,  1+3*j,  3+j,  3+3*j,  1-j,  1-3*j,  3-j,  3-3*j,...
-           -1+j, -1+3*j, -3+j, -3+3*j, -1-j, -1-3*j, -3-j, -3-3*j]./sqrt(10);
-Q64 = amp*[ 3+3*j, 3+j, 1+3*j, 1+  j, 3+5*j, 3+7*j, 1+5*j, 1+7*j,...
-	        5+3*j, 5+j, 7+  j, 7+3*j, 5+5*j, 5+7*j, 7+5*j, 7+7*j,...
-	        3-3*j, 3-j, 1-3*j, 1-  j, 3-5*j, 3-7*j, 1-5*j, 1-7*j,...
-	        5-3*j, 5-j, 7-3*j, 7-  j, 5-5*j, 5-7*j, 7-5*j, 7-7*j,...
-	       -3+3*j,-3+j,-1+3*j,-1+  j,-3+5*j,-3+7*j,-1+5*j,-1+7*j,...
-	       -5+3*j,-5+j,-7+3*j,-7+  j,-5+5*j,-5+7*j,-7+5*j,-7+7*j,...
-	       -3-3*j,-3-j,-1-3*j,-1-  j,-3-5*j,-3-7*j,-1-5*j,-1-7*j,...
-	       -5-3*j,-5-j,-7-3*j,-7-  j,-5-5*j,-5-7*j,-7-5*j,-7-7*j]./sqrt(42);
-
-if (mcs <= 9)
-		codeword.mod_order = 2;
-		codeword.base2 = [2 1];
-		codeword.const = Q4;
-		
-elseif (mcs <= 16)			
-		codeword.mod_order = 4;
-		codeword.base2 = [8 4 2 1];
-		codeword.const = Q16;
-		
-elseif (mcs <= 27)
-		codeword.mod_order = 6;
-		codeword.base2 = [32 16 8 4 2 1];
-		codeword.const = Q64;
-		
-else
-		error('invalid MCS: %d\n', mcs);
-		
-end
-
-codeword.mcs = mcs;
-codeword.G = simparms.nb_re*codeword.mod_order; % Number of softbits
-codeword.TBS = get_tbs(mcs,simparms.nb_rb);
-codeword.Kmimo = 2;
-codeword.harq_pid = 0; % First HARQ round
-codeword.Mdlharq = 1; % Number of HARQ rounds
-codeword.rvidx = 0;
-codeword.Nl = 1;
-codeword.Ndi = 1;
-end
-
diff --git a/openair1/USERSPACE_TOOLS/MATLAB/SIMULATION/LTE_PHY/TM4/tm4.m b/openair1/USERSPACE_TOOLS/MATLAB/SIMULATION/LTE_PHY/TM4/tm4.m
deleted file mode 100644
index fa6dcf50009402c0e9b16be51aa8c9bd1cb17416..0000000000000000000000000000000000000000
--- a/openair1/USERSPACE_TOOLS/MATLAB/SIMULATION/LTE_PHY/TM4/tm4.m
+++ /dev/null
@@ -1,290 +0,0 @@
-%% Header
-%==========================================================================
-% This testbench simulates transmission mode 4 on subframe 7.
-% Results can be compared to "./dlsim -x5 -S7 -R1 -u1" with perfect chest
-% No OFDM Modulation and Demodulation is applied!
-% Only 5 MHz bandwidth simulated. The Channel is Rayleigh block-fading.
-% 
-% The matrices ymf0, ymf1, etc are in the form samples x antennas.
-% More precisely: 
-% row dimension = [Re Im Re Im ...]
-% col dimension: Heffx: [tx1->rx1 tx1->rx2 tx2->rx1 tx2->rx2]
-%                ymfx, Hmagx, Hmagbx, rho10 : [rx1 rx2 rx3 rx4]
-%
-% The same random data is generate as in dlsim.c by setting the right
-% seed value simparms.tseeds. 
-%
-%
-% Author: Sebastian Wagner
-% Date: 10-04-2013
-%
-%==========================================================================
-
-clear all;
-close all;
-clear mex;
-
-addpath('../../../PHY/LTE_TRANSPORT/mexfiles');
-addpath('../../../PHY/TOOLS/mexfiles');
-addpath('../../../SIMULATION/TOOLS/mexfiles');
-
-% profile on;
-%% System parameters
-nt = 2; % number of transmit antennas
-nr = 2; % number of receive antennas
-N = 100; % number of frames (or subframes, codewords)
-nSNR = 1; % number of SNR points
-SNRdB = 5; % SNR per receive antenna in dB
-% nSNR = 13;
-% SNRdB = linspace(8,20,nSNR);
-MCS = [16 16]; % MCS for the 2 users
-j = sqrt(-1);
-amp = 1/32; % amplitude scaling for FXP conversion
-XFORMS = 0; % flag to activate graphics
-
-% LLRs are computed for 8 RE make sure enough valid memory is allocated
-LLR_GUARD_SAMPLES = 8*6; % max mod_order 6 for 8 REs
-
-%% Initialize simparms
-simparms = InitSimparms(MCS, N, SNRdB);
-
-%% Random data, same seed as in dlsim.c
-[tmp simparms.tseeds] = taus(1,simparms.tseeds);
-
-%% Index of REs carrying data
-data_idx = [901:1400 1501:2300 2401:3500 3601:4200];
-data_idx_int = [1801:2800 3001:4600 4801:7000 7201:8400]; % [Re Im] format
-data_idx_int_r = data_idx_int(1:2:length(data_idx_int));
-data_idx_int_i = data_idx_int(2:2:length(data_idx_int));
-
-%% Allocate memory
-% The LLRs of subframe
-llr0 = zeros(simparms.codeword(1).G, 1,'int16');
-llr1 = zeros(simparms.codeword(2).G, 1,'int16');
-% received signal transformed to FXP
-y_fxp = zeros(simparms.NB_ANTENNAS_RX*simparms.NB_ANTENNAS_TX,simparms.nb_re_per_frame,'int16');
-% FXP received signal with transformed dimensions
-y_fxp_t = zeros(2*simparms.nb_re_per_frame,simparms.NB_ANTENNAS_RX*simparms.NB_ANTENNAS_TX,'int16');
-
-% MF output of desired user
-ymf0 = zeros(2*simparms.nb_re_per_frame,simparms.NB_ANTENNAS_RX*simparms.NB_ANTENNAS_TX,'int16');
-% Effective channel will contain the channel estimate at pilot positions
-Heff0 = zeros(2*simparms.nb_re_per_frame,simparms.NB_ANTENNAS_RX*simparms.NB_ANTENNAS_TX,'int16');
-Hmag0 = zeros(2*simparms.nb_re_per_frame,simparms.NB_ANTENNAS_RX*simparms.NB_ANTENNAS_TX,'int16');
-Hmagb0 = zeros(2*simparms.nb_re_per_frame,simparms.NB_ANTENNAS_RX*simparms.NB_ANTENNAS_TX,'int16');
-ymf1 = zeros(2*simparms.nb_re_per_frame,simparms.NB_ANTENNAS_RX*simparms.NB_ANTENNAS_TX,'int16');
-Heff1 = zeros(2*simparms.nb_re_per_frame,simparms.NB_ANTENNAS_RX*simparms.NB_ANTENNAS_TX,'int16');
-Hmag1 = zeros(2*simparms.nb_re_per_frame,simparms.NB_ANTENNAS_RX*simparms.NB_ANTENNAS_TX,'int16');
-Hmagb1 = zeros(2*simparms.nb_re_per_frame,simparms.NB_ANTENNAS_RX*simparms.NB_ANTENNAS_TX,'int16');
-rho10 = zeros(2*simparms.nb_re_per_frame,simparms.NB_ANTENNAS_RX*simparms.NB_ANTENNAS_TX,'int16');
-rho01 = zeros(2*simparms.nb_re_per_frame,simparms.NB_ANTENNAS_RX*simparms.NB_ANTENNAS_TX,'int16');
-H = zeros(simparms.NB_ANTENNAS_RX,simparms.NB_ANTENNAS_TX);
-noise = zeros(simparms.NB_ANTENNAS_RX,simparms.nb_re);
-
-%% XFORMS
-if (XFORMS)
-	scrsz = get(0,'ScreenSize');mu_mimo
-	figure('Position',[1 scrsz(4)/2 scrsz(3)/2 scrsz(4)/2])
-	subplot(1,2,1);
-	xlim([1 simparms.codeword(1).G]);
-	title('LLRs of UE 0');
-	
-	fig_llr0 = scatter(1:simparms.codeword(1).G,llr0,'.','YDataSource','llr0');
-	
-	subplot(1,2,2);
-	title('MF output of UE 0');
-	fig_ymf = scatter(ymf0(data_idx_int_r),ymf0(data_idx_int_i),'.','XDataSource','ymf0(data_idx_int_r)','YDataSource','ymf0(data_idx_int_i)');
-end
-
-%% Encode and modulate transmit signal
-% The same data is used throughout the simulation -> saves time
-[data0 simparms.tseeds] = taus(simparms.codeword(1).TBS/8,simparms.tseeds);
-[data1 simparms.tseeds] = taus(simparms.codeword(2).TBS/8,simparms.tseeds);
-
-% Add 4 bytes CRC
-data0 = [data0; zeros(4,1,'uint8')];
-data1 = [data1; zeros(4,1,'uint8')];
-
-% Turbo encoding of 2 streams for 2 users
-edata0 = dlsch_encoding(data0,simparms,simparms.codeword(1)); % user 1
-edata1 = dlsch_encoding(data1,simparms,simparms.codeword(2)); % user 2
-
-% Symbol mapping and modulation
-edata_enc(:,1) = simparms.codeword(1).base2*double(reshape(edata0,simparms.codeword(1).mod_order,simparms.nb_re));
-edata_enc(:,2) = simparms.codeword(2).base2*double(reshape(edata1,simparms.codeword(2).mod_order,simparms.nb_re));
-s(:,1) = simparms.codeword(1).const(edata_enc(:,1)+1);
-s(:,2) = simparms.codeword(2).const(edata_enc(:,2)+1);
-
-%% Loop over SNRs
-for iSNR=1:length(simparms.snr)
-    cSNR = simparms.snr(iSNR); % current SNR
-    %% Loop over Frames
-    for n=1:simparms.n_frames
-        
-        %% Channel
-        % Rayleigh channel, constant for whole codeblock/frame
-        H(1:nr,1:nt) = (randn(nr,nt) + j*randn(nr,nt))/sqrt(2);
-        
-        %% PMI computation
-        pmi = 1;
-        r = H(:,2)'*H(:,1); % correlation
-        rr = real(r);
-        ri = imag(r);
-        if (rr>ri && rr>-ri)
-            pmi = 1;
-        elseif (rr<ri && rr>-ri)
-            pmi = 3;
-        elseif (rr<ri && rr<-ri)
-            pmi = 2;
-        elseif (rr>ri && rr<-ri)
-            pmi = 4;
-        end
-        
-        % opposite pmi
-        if(pmi<3)
-            pmi_o = mod(pmi,2) + 1;
-        else
-            pmi_o = mod(pmi,2) + 3;
-        end
-        
-        pmi_ext = uint8(repmat(pmi-1,1,simparms.nb_rb));
-        pmi_ext_o = uint8(repmat(pmi_o-1,1,simparms.nb_rb));
-        
-        % normelized precoding vectors
-        g0 = simparms.CB(:,pmi);
-        g1 = simparms.CB(:,pmi_o);
-        
-        %% Transmit signal (frequency domain)
-        x = [g0,g1]*conj(s'); % E[|x|^2] = amp^2
-        Ptx = sum(diag(x'*x))/simparms.nb_re; % average transmit power per RE
-        
-        %% Noise
-        sigma2 = (Ptx/cSNR);
-        % E[|noise|^2] = amp^2/sqrt(SNR) -> SNR=1/sigma^2
-        noise(1:nr,:) = sqrt(sigma2)*(randn(nr,simparms.nb_re) + j*randn(nr,simparms.nb_re))/sqrt(2);
-        % real SNR per receive antenna
-        SNR_real = 10*log10(Ptx / ((noise(1,:)*noise(1,:)')/simparms.nb_re));
-        
-        %% Received signal
-        y = H*x + noise; % flat-fading channel model
-        
-        % Quantization
-        y_fxp_data = int16(floor(y*pow2(15)));
-        H_fxp = int16(fix(H*floor(amp*pow2(15)))); % Perfect Chest
-        
-        % insert dummy pilots
-        y_fxp(1:2,data_idx) = y_fxp_data;
-        
-        % reorder for processing
-        H_fxp_t = repmat([real(H_fxp(:)) imag(H_fxp(:))]',simparms.nb_re_per_frame,1);
-        y_fxp_t(:,1) = reshape([real(y_fxp(1,:)); imag(y_fxp(1,:))],2*simparms.nb_re_per_frame,1);
-        y_fxp_t(:,2) = reshape([real(y_fxp(2,:)); imag(y_fxp(2,:))],2*simparms.nb_re_per_frame,1);
-        
-        %% Compute Scaling
-        avg = dlsch_channel_level_prec(H_fxp_t,pmi_ext,simparms);
-        simparms.log2_maxh = max(double(log2_approx(avg))-13,0);
-        
-        %% Inner receiver loop
-        llr0p = 1; % LLR pointer for codeword 0
-        llr1p = 1; % LLR pointer for codeword 1
-        for symbol = 4:14
-            idxs = 2*(symbol-1)*simparms.nb_re_per_symbol + 1;
-            idxe = 2*(symbol-1)*simparms.nb_re_per_symbol + 2*simparms.nb_re_per_symbol;
-            
-            %% Preprocessing
-            [ymf0(idxs:idxe,:)...
-                Heff0(idxs:idxe,:)...
-                Hmag0(idxs:idxe,:)...
-                Hmagb0(idxs:idxe,:)]...
-                = dlsch_channel_compensation_prec(y_fxp_t,H_fxp_t,pmi_ext,simparms,simparms.codeword(1),symbol-1);
-            
-            % Interfering stream
-            [ymf1(idxs:idxe,:)...
-                Heff1(idxs:idxe,:)...
-                Hmag1(idxs:idxe,:)...
-                Hmagb1(idxs:idxe,:)]...
-                = dlsch_channel_compensation_prec(y_fxp_t,H_fxp_t,pmi_ext_o,simparms,simparms.codeword(2),symbol-1);
-            
-            %% Correlation coefficient
-            rho10(idxs:idxe,:) = dlsch_dual_stream_correlation(Heff0,Heff1,simparms,symbol-1);
-            
-            %% Combining
-            [ymf0(idxs:idxe,:)...
-                ymf1(idxs:idxe,:)...
-                Hmag0(idxs:idxe,:)...
-                Hmagb0(idxs:idxe,:)...
-                Hmag1(idxs:idxe,:)...
-                Hmagb1(idxs:idxe,:)...
-                rho10(idxs:idxe,:)]...
-                = dlsch_detection_mrc(ymf0,ymf1,Hmag0,Hmag1,Hmagb0,Hmagb1,rho10,simparms,symbol-1);
-            
-            %% LLR computation
-            % first stream
-            llr0_t = dlsch_mu_mimo_llr([ymf0(idxs:idxe,1); zeros(LLR_GUARD_SAMPLES,1,'int16')],...
-                [ymf1(idxs:idxe,1); zeros(LLR_GUARD_SAMPLES,1,'int16')],...
-                [Hmag0(idxs:idxe,1); zeros(LLR_GUARD_SAMPLES,1,'int16')],...
-                [Hmag1(idxs:idxe,1); zeros(LLR_GUARD_SAMPLES,1,'int16')],...
-                [rho10(idxs:idxe,1); zeros(LLR_GUARD_SAMPLES,1,'int16')],...
-                simparms,...
-                symbol-1);
-            
-            llr0(llr0p:llr0p+length(llr0_t)-1,:) = llr0_t;
-            llr0p = llr0p + length(llr0_t);
-            
-            % second stream
-            % compute conj. correlation term
-            tmp = rho10(idxs:idxe,:);
-            tmp(2:2:end) = -tmp(2:2:end);
-            rho01(idxs:idxe,:) = tmp;
-            
-            llr1_t = dlsch_mu_mimo_llr([ymf1(idxs:idxe,1); zeros(LLR_GUARD_SAMPLES,1,'int16')],...
-                [ymf0(idxs:idxe,1); zeros(LLR_GUARD_SAMPLES,1,'int16')],...
-                [Hmag1(idxs:idxe,1); zeros(LLR_GUARD_SAMPLES,1,'int16')],...
-                [Hmag0(idxs:idxe,1); zeros(LLR_GUARD_SAMPLES,1,'int16')],...
-                [rho01(idxs:idxe,1); zeros(LLR_GUARD_SAMPLES,1,'int16')],...
-                simparms,...
-                symbol-1);
-            
-            llr1(llr1p:llr1p+length(llr1_t)-1,:) = llr1_t;
-            llr1p = llr1p + length(llr1_t);
-            
-        end
-        
-        if (XFORMS)
-            refreshdata(fig_llr0,'caller');
-            drawnow;
-            
-            refreshdata(fig_ymf,'caller');
-            drawnow; pause(0.1);
-        end
-        
-        %% Channel decoding
-        llr0 = -llr0; % invert (since no scrambling applied)
-        llr1 = -llr1; % invert (since no scrambling applied)
-        ret0 = dlsch_decoding(llr0,simparms,simparms.codeword(1));
-        ret1 = dlsch_decoding(llr1,simparms,simparms.codeword(2));
-        
-        % Check if decoded correctly
-        if (ret0 >= simparms.MAX_TURBO_ITERATIONS)
-            simparms.frame_errors(iSNR,1) = simparms.frame_errors(iSNR,1) + 1;
-        end
-        if (ret1 >= simparms.MAX_TURBO_ITERATIONS)
-            simparms.frame_errors(iSNR,2) = simparms.frame_errors(iSNR,2) + 1;
-        end
-        
-    end
-    fprintf('********************SNR = %3.1f dB processed on %s********************\n',real(simparms.snr_db(iSNR)),datestr(now));
-    fprintf('Errors: %d/%d\n',simparms.frame_errors(iSNR,1),N);
-    fprintf('Errors: %d/%d\n',simparms.frame_errors(iSNR,2),N);
-end
-
-%% Post Processing
-% total_frame_errors = sum(frame_errors,2);
-% fer = total_frame_errors/N;
-% figure; semilogy(SNRdB,fer); grid;
-% 
-% disp(fer);
-
-% profile viewer 
-
-
diff --git a/openair1/USERSPACE_TOOLS/MATLAB/SIMULATION/LTE_PHY/TM5/InitSimparms.m b/openair1/USERSPACE_TOOLS/MATLAB/SIMULATION/LTE_PHY/TM5/InitSimparms.m
deleted file mode 100644
index 06fef622d7b5c900c26c3eb3e8c8a38a919af784..0000000000000000000000000000000000000000
--- a/openair1/USERSPACE_TOOLS/MATLAB/SIMULATION/LTE_PHY/TM5/InitSimparms.m
+++ /dev/null
@@ -1,108 +0,0 @@
-function [ simparms ] = InitSimparms( nb_antennas_tx, nb_antennas_rx, mcs, n_frames, SNRdB )
-%INITSIMPARMS initialize simparms struct for TM5
-% There are always 2 user schedules for transmission
-% INPUT:
-%   nb_antennas_tx = Number of transmit antennas, max = 2
-%   nb_antennas_rx = Number of receive antennas per UE, max = 2
-%   MCS(2) = Modulation and Coding Scheme [1,...,27]
-%   n_frames = Number of frames to simulate
-%   SNRdB = SNR in dB
-
-addpath('../../../PHY/LTE_TRANSPORT/mexfiles');
-
-if (nb_antennas_tx ~= 2)
-	error('unsupported number of tx antennas, only 2 is valid');
-elseif (nb_antennas_rx > 2 || nb_antennas_rx < 1)
-	error('unsupported number of rx antennas, only 1,2 is valid');
-end
-
-j = sqrt(-1);
-
-%% Custom parameters 
-simparms.nb_antennas_tx = nb_antennas_tx;
-simparms.nb_antennas_tx_eNB = simparms.nb_antennas_tx;
-simparms.nb_antennas_rx = nb_antennas_rx;
-simparms.n_frames = n_frames;
-simparms.snr_db = SNRdB;
-
-%% Constant parameters
-simparms.NB_ANTENNAS_TX = 2; % max number of TX antennas
-simparms.NB_ANTENNAS_RX = 2; % max number of RX antennas
-simparms.snr = 10.^(SNRdB/10);
-simparms.num_pdcch_symbols = 3;
-simparms.subframe = 7;
-simparms.abstraction_flag = 0;
-simparms.nb_rb = 25; % fixed number of RB per OFDM symbol
-simparms.rb_alloc = hex2dec('1FFF'); % 25 RBs
-simparms.MAX_TURBO_ITERATIONS = 5;
-simparms.nb_re = 3000; % there are 3000 REs in subframe 7
-simparms.frame_type = 1; % TDD frame
-simparms.mode1_flag = 0; % is TM1 active?
-simparms.Ncp = 0; % Normal CP
-simparms.ofdm_symbol_size = 512;
-simparms.log2_maxh = 16;
-simparms.dl_power_offset= 0; % 0 = 3dB power offset
-simparms.nb_slots = 14;
-simparms.nb_re_per_symbol = simparms.nb_rb*12;
-simparms.nb_re_per_frame = simparms.nb_slots*simparms.nb_re_per_symbol;
-simparms.frame_errors = zeros(length(simparms.snr),1);
-simparms.CB = [[1;1],[1;-1],[1;j],[1;-j]]; % codebook
-simparms.tseeds = set_taus_seed(1); % taus seeds
-
-% Turbo decoder: set the pointer to the td tables allocated by init_td()
-simparms.ptr_td = dlsch_decoding_init();
-
-% Init codewords
-simparms.codeword(1) = InitCodeword(simparms,mcs(1));
-simparms.codeword(2) = InitCodeword(simparms,mcs(2));
-
-end
-
-function codeword = InitCodeword(simparms,mcs)
-
-% Constellation
-j = sqrt(-1);
-amp = 1/32;
-Q4 =  amp*[ 1+j,  1- j,  -1+j, -1-j]./sqrt(2);
-Q16 = amp*[ 1+j,  1+3*j,  3+j,  3+3*j,  1-j,  1-3*j,  3-j,  3-3*j,...
-           -1+j, -1+3*j, -3+j, -3+3*j, -1-j, -1-3*j, -3-j, -3-3*j]./sqrt(10);
-Q64 = amp*[ 3+3*j, 3+j, 1+3*j, 1+  j, 3+5*j, 3+7*j, 1+5*j, 1+7*j,...
-	        5+3*j, 5+j, 7+  j, 7+3*j, 5+5*j, 5+7*j, 7+5*j, 7+7*j,...
-	        3-3*j, 3-j, 1-3*j, 1-  j, 3-5*j, 3-7*j, 1-5*j, 1-7*j,...
-	        5-3*j, 5-j, 7-3*j, 7-  j, 5-5*j, 5-7*j, 7-5*j, 7-7*j,...
-	       -3+3*j,-3+j,-1+3*j,-1+  j,-3+5*j,-3+7*j,-1+5*j,-1+7*j,...
-	       -5+3*j,-5+j,-7+3*j,-7+  j,-5+5*j,-5+7*j,-7+5*j,-7+7*j,...
-	       -3-3*j,-3-j,-1-3*j,-1-  j,-3-5*j,-3-7*j,-1-5*j,-1-7*j,...
-	       -5-3*j,-5-j,-7-3*j,-7-  j,-5-5*j,-5-7*j,-7-5*j,-7-7*j]./sqrt(42);
-
-if (mcs <= 9)
-		codeword.mod_order = 2;
-		codeword.base2 = [2 1];
-		codeword.const = Q4;
-		
-elseif (mcs <= 16)			
-		codeword.mod_order = 4;
-		codeword.base2 = [8 4 2 1];
-		codeword.const = Q16;
-		
-elseif (mcs <= 27)
-		codeword.mod_order = 6;
-		codeword.base2 = [32 16 8 4 2 1];
-		codeword.const = Q64;
-		
-else
-		error('invalid MCS: %d\n', mcs);
-		
-end
-
-codeword.mcs = mcs;
-codeword.G = simparms.nb_re*codeword.mod_order; % Number of softbits
-codeword.TBS = get_tbs(mcs,simparms.nb_rb);
-codeword.Kmimo = 1;
-codeword.harq_pid = 0; % First HARQ round
-codeword.Mdlharq = 1; % Number of HARQ rounds
-codeword.rvidx = 0;
-codeword.Nl = 1;
-codeword.Ndi = 1;
-end
-
diff --git a/openair1/USERSPACE_TOOLS/MATLAB/SIMULATION/LTE_PHY/TM5/tm5.m b/openair1/USERSPACE_TOOLS/MATLAB/SIMULATION/LTE_PHY/TM5/tm5.m
deleted file mode 100644
index 03278f4f95ff46057f657aed06b82ba103dcc62a..0000000000000000000000000000000000000000
--- a/openair1/USERSPACE_TOOLS/MATLAB/SIMULATION/LTE_PHY/TM5/tm5.m
+++ /dev/null
@@ -1,249 +0,0 @@
-%% Header
-%==========================================================================
-% This testbench simulations transmission mode 5 on subframe 7.
-% Results can be compared to "./dlsim -x5 -S7 -R1 -u1" with perfect chest
-% No OFDM Modulation and Demodulation is applied!
-%
-% Author: Sebastian Wagner
-% Date: 24-07-2012
-%
-%==========================================================================
-
-clear all;
-close all;
-clear mex;
-
-addpath('../../../PHY/LTE_TRANSPORT/mexfiles');
-addpath('../../../PHY/TOOLS/mexfiles');
-addpath('../../../SIMULATION/TOOLS/mexfiles');
-
-% profile on;
-tic
-%% System parameters
-nt = 2;
-nr = 2;
-N = 1000; % number of frames (codewords)
-nSNR = 1;
-%SNRdB = [1:20];
-SNRdB = 10;
-% nSNR = 13;
-%SNRdB = linspace(1,20,nSNR);
-MCS = [9 9]; % MCS for the 2 users, currently it is assumed that mcs(2)=mcs(1)
-j = sqrt(-1);
-amp = 1/32;
-XFORMS = 0;
-% LLRs are computed for 8RE make sure enough valid memory is allocated
-LLR_GUARD_SAMPLES = 8*6; % max mod_order 6 for 8 REs
-
-%% Initialize simparms
-simparms = InitSimparms( nt, nr, MCS, N, SNRdB);
-
-%% Random data, same seed as in dlsim.c
-[tmp simparms.tseeds] = taus(1,simparms.tseeds);
-
-%% Index of REs carrying data
-data_idx = [901:1400 1501:2300 2401:3500 3601:4200];
-data_idx_int = [1801:2800 3001:4600 4801:7000 7201:8400]; % [Re Im] format
-data_idx_int_r = data_idx_int(1:2:length(data_idx_int));
-data_idx_int_i = data_idx_int(2:2:length(data_idx_int));
-
-%% Allocate memory
-llr0 = zeros(simparms.codeword(1).G, 1,'int16');
-y_fxp = zeros(simparms.NB_ANTENNAS_RX*simparms.NB_ANTENNAS_TX,simparms.nb_re_per_frame,'int16');
-y_fxp_t = zeros(2*simparms.nb_re_per_frame,simparms.NB_ANTENNAS_RX*simparms.NB_ANTENNAS_TX,'int16');
-ymf0 = zeros(2*simparms.nb_re_per_frame,simparms.NB_ANTENNAS_RX*simparms.NB_ANTENNAS_TX,'int16');
-
-% Effective channel will contain the channel estimate at pilot positions
-Heff0 = zeros(2*simparms.nb_re_per_frame,simparms.NB_ANTENNAS_RX*simparms.NB_ANTENNAS_TX,'int16');
-Hmag0 = zeros(2*simparms.nb_re_per_frame,simparms.NB_ANTENNAS_RX*simparms.NB_ANTENNAS_TX,'int16');
-Hmagb0 = zeros(2*simparms.nb_re_per_frame,simparms.NB_ANTENNAS_RX*simparms.NB_ANTENNAS_TX,'int16');
-ymf1 = zeros(2*simparms.nb_re_per_frame,simparms.NB_ANTENNAS_RX*simparms.NB_ANTENNAS_TX,'int16');
-Heff1 = zeros(2*simparms.nb_re_per_frame,simparms.NB_ANTENNAS_RX*simparms.NB_ANTENNAS_TX,'int16');
-Hmag1 = zeros(2*simparms.nb_re_per_frame,simparms.NB_ANTENNAS_RX*simparms.NB_ANTENNAS_TX,'int16');
-Hmagb1 = zeros(2*simparms.nb_re_per_frame,simparms.NB_ANTENNAS_RX*simparms.NB_ANTENNAS_TX,'int16');
-rho10 = zeros(2*simparms.nb_re_per_frame,simparms.NB_ANTENNAS_RX*simparms.NB_ANTENNAS_TX,'int16');
-H = zeros(simparms.NB_ANTENNAS_RX,simparms.NB_ANTENNAS_TX);
-noise = zeros(simparms.NB_ANTENNAS_RX,simparms.nb_re);
-
-%% XFORMS
-if (XFORMS)
-	scrsz = get(0,'ScreenSize');
-	figure('Position',[1 scrsz(4)/2 scrsz(3)/2 scrsz(4)/2])
-	subplot(1,2,1);
-	xlim([1 simparms.codeword(1).G]);
-	title('LLRs of UE 0');
-	
-	fig_llr0 = scatter(1:simparms.codeword(1).G,llr0,'.','YDataSource','llr0');
-	
-	subplot(1,2,2);
-	title('MF output of UE 0');
-	fig_ymf = scatter(ymf0(data_idx_int_r),ymf0(data_idx_int_i),'.','XDataSource','ymf0(data_idx_int_r)','YDataSource','ymf0(data_idx_int_i)');
-end
-
-%% Encode and modulate transmit signal
-% The same data is used throughout the simulation -> saves time
-[data0 simparms.tseeds] = taus(simparms.codeword(1).TBS/8,simparms.tseeds);
-[data1 simparms.tseeds] = taus(simparms.codeword(2).TBS/8,simparms.tseeds);
-
-% Add 4 bytes CRC
-data0 = [data0; zeros(4,1,'uint8')];
-data1 = [data1; zeros(4,1,'uint8')];
-
-edata0 = dlsch_encoding(data0,simparms,simparms.codeword(1)); % user 1
-edata1 = dlsch_encoding(data1,simparms,simparms.codeword(2)); % user 2
-
-% Modulation
-edata_enc(:,1) = simparms.codeword(1).base2*double(reshape(edata0,simparms.codeword(1).mod_order,simparms.nb_re));
-edata_enc(:,2) = simparms.codeword(2).base2*double(reshape(edata1,simparms.codeword(2).mod_order,simparms.nb_re));
-s(:,1) = simparms.codeword(1).const(edata_enc(:,1)+1);
-s(:,2) = simparms.codeword(2).const(edata_enc(:,2)+1);
-
-Ptx = sum(diag(s'*s))/simparms.nb_re; % average transmit power per RE
-
-%% Loop over SNRs
-for iSNR=1:length(simparms.snr)
-	cSNR = simparms.snr(iSNR); % current SNR
-	%% Loop over Frames
-	for n=1:simparms.n_frames
-		
-		%% Channel
-		% Rayleigh channel, constant for whole codeblock/frame, always 2x2
-		H(1:nr,1:nt) = (randn(nr,nt) + j*randn(nr,nt))/sqrt(2);
-				
-		%% PMI computation
-		pmi = 1;
-		r = H(:,2)'*H(:,1);
-        rr = real(r);
-        ri = imag(r);
-		if (rr>ri && rr>-ri)
-			pmi = 1;
-		elseif (rr<ri && rr>-ri)
-			pmi = 3;
-		elseif (rr<ri && rr<-ri)
-			pmi = 2;
-		elseif (rr>ri && rr<-ri)
-			pmi = 4;			
-		end
-        
-        % opposite pmi       
-		if(pmi<3)
-			pmi_o = mod(pmi,2) + 1;
-		else
-			pmi_o = mod(pmi,2) + 3;
-		end
-		
-		pmi_ext = uint8(repmat(pmi-1,1,simparms.nb_rb));
-		pmi_ext_o = uint8(repmat(pmi_o-1,1,simparms.nb_rb));
-
-        % precoding vectors
-        g0 = simparms.CB(:,pmi);
-        g1 = simparms.CB(:,pmi_o);
-		
-		%% Transmit signal (frequency domain)
-		x = [g0,g1]*conj(s')/sqrt(2); % E[|x|^2] = 2*amp^2		
-		
-		%% Noise		
-		sigma2 = (Ptx/cSNR);
-		% E[|noise|^2] = 2*amp^2/sqrt(SNR) -> SNR=1/sigma^2
-		noise(1:nr,:) = sqrt(sigma2)*(randn(nr,simparms.nb_re) + j*randn(nr,simparms.nb_re))/sqrt(2);
-		
-		%% Received signal
-		y = H*x + noise;
-		
-		% Quantization
-		y_fxp_data = int16(floor(y*pow2(15)));
-		H_fxp = int16(fix(H*floor(amp/sqrt(2)*pow2(15)))); % Perfect Chest		
-		
-		% insert dummy pilots
-		y_fxp(1:2,data_idx) = y_fxp_data;
-		
-		% reorder for processing
-		H_fxp_t = repmat([real(H_fxp(:)) imag(H_fxp(:))]',simparms.nb_re_per_frame,1);
-		y_fxp_t(:,1) = reshape([real(y_fxp(1,:)); imag(y_fxp(1,:))],2*simparms.nb_re_per_frame,1);		
-		y_fxp_t(:,2) = reshape([real(y_fxp(2,:)); imag(y_fxp(2,:))],2*simparms.nb_re_per_frame,1);		
-		
-		%% Compute Scaling
-		avg = dlsch_channel_level_prec(H_fxp_t,pmi_ext,simparms);
-		simparms.log2_maxh = max(double(log2_approx(avg))-13,0);		
-				
-		%% Inner receiver loop
-		llrp = 1; % LLR pointer
-		for symbol = 4:14
-			idxs = 2*(symbol-1)*simparms.nb_re_per_symbol + 1;
-			idxe = 2*(symbol-1)*simparms.nb_re_per_symbol + 2*simparms.nb_re_per_symbol;
-			
-			%% Preprocessing
-			[ymf0(idxs:idxe,:)...
-				Heff0(idxs:idxe,:)...
-				Hmag0(idxs:idxe,:)...
-				Hmagb0(idxs:idxe,:)]...
-				= dlsch_channel_compensation_prec(y_fxp_t,H_fxp_t,pmi_ext,simparms,simparms.codeword(1),symbol-1);
-			
-			% Interfering user
-			[ymf1(idxs:idxe,:)...
-				Heff1(idxs:idxe,:)...
-				Hmag1(idxs:idxe,:)...
-				Hmagb1(idxs:idxe,:)]...
-				= dlsch_channel_compensation_prec(y_fxp_t,H_fxp_t,pmi_ext_o,simparms,simparms.codeword(2),symbol-1);
-			
-			%% Correlation coefficient
-			rho10(idxs:idxe,:) = dlsch_dual_stream_correlation(Heff0,Heff1,simparms,symbol-1);
-			
-			%% Combining
-			if (nr>1)
-				[ymf0(idxs:idxe,:)...
-					ymf1(idxs:idxe,:)...
-					Hmag0(idxs:idxe,:)...
-					Hmagb0(idxs:idxe,:)...
-					Hmag1(idxs:idxe,:)...
-					Hmagb1(idxs:idxe,:)...
-					rho10(idxs:idxe,:)]...
-					= dlsch_detection_mrc(ymf0,ymf1,Hmag0,Hmag1,Hmagb0,Hmagb1,rho10,simparms,symbol-1);								
-			end
-			
-			
-			%% LLR computation
-            llr = dlsch_mu_mimo_llr([ymf0(idxs:idxe,1); zeros(LLR_GUARD_SAMPLES,1,'int16')],...
-                [ymf1(idxs:idxe,1); zeros(LLR_GUARD_SAMPLES,1,'int16')],...
-                [Hmag0(idxs:idxe,1); zeros(LLR_GUARD_SAMPLES,1,'int16')],...
-                [Hmag1(idxs:idxe,1); zeros(LLR_GUARD_SAMPLES,1,'int16')],...
-                [rho10(idxs:idxe,1); zeros(LLR_GUARD_SAMPLES,1,'int16')],...
-                simparms,...
-                symbol-1);
-			
-			llr0(llrp:llrp+length(llr)-1,:) = llr;
-			llrp = llrp + length(llr);                        
-		end
-		
-		if (XFORMS)
-			refreshdata(fig_llr0,'caller');
-			drawnow;
-			
-			refreshdata(fig_ymf,'caller');
-			drawnow; pause(0.1);
-		end
-		
-		%% Channel decoding
-		llr0 = -llr0; % invert (since no scrambling applied)				
-		ret0 = dlsch_decoding(llr0,simparms,simparms.codeword(1));						
-		
-		% Check if decoded correctly
-		if (ret0 >= simparms.MAX_TURBO_ITERATIONS)
-			simparms.frame_errors(iSNR,1) = simparms.frame_errors(iSNR,1) + 1;
-		end
-		
-	end
-	fprintf('********************SNR = %3.1f dB processed on %s********************\n',real(simparms.snr_db(iSNR)),datestr(now));
-	fprintf('Errors: %d/%d\nPe = %1.5f\n',simparms.frame_errors(iSNR,1),N,simparms.frame_errors(iSNR,1)/N);	
-end
-
-%% Post Processing
-%  total_frame_erros = sum(simparms.frame_errors,2);
-%  fer = total_frame_erros/N;
-%  figure; semilogy(SNRdB,fer); grid;
-%  
-%  disp(fer);
-% 
-% profile viewer 
-toc
-
diff --git a/openair1/USERSPACE_TOOLS/MATLAB/SIMULATION/TOOLS/mexfiles/set_taus_seed.c b/openair1/USERSPACE_TOOLS/MATLAB/SIMULATION/TOOLS/mexfiles/set_taus_seed.c
deleted file mode 100644
index fe4ecc6653e285011dbacf51afabcd8a7d55411b..0000000000000000000000000000000000000000
--- a/openair1/USERSPACE_TOOLS/MATLAB/SIMULATION/TOOLS/mexfiles/set_taus_seed.c
+++ /dev/null
@@ -1,68 +0,0 @@
-#include "../../../defs.h"
-
-/*==============================================================================
-* set_taus_seed.c
-*
-* Returns seeds which are the input to taus.c.
-*
-* example: seeds = set_taus_seed(0)
-*
-* Author: Sebastian Wagner
-* Date: 23-07-2012
-*
-===============================================================================*/
-
-
-void mexFunction( int nlhs, mxArray *plhs[],
-                  int nrhs, const mxArray *prhs[]
-                )
-{
-
-  /* Declare */
-  unsigned int seed_init;
-  unsigned int s0, s1, s2, *ret;
-
-  if(nrhs!=1)
-    mexErrMsgTxt("Single input required.");
-  else if(nlhs > 1)
-    mexErrMsgTxt("Too many output arguments.");
-
-  /* Allocate input */
-  seed_init = (unsigned int) mxGetScalar(prhs[0]);
-
-  /* Algo */
-#ifdef USER_MODE
-  struct drand48_data buffer;
-  unsigned int result = 0;
-#endif
-
-  if (seed_init == 0) {
-    s0 = (unsigned int)time(NULL);
-    s1 = (unsigned int)time(NULL);
-    s2 = (unsigned int)time(NULL);
-  } else {
-#ifndef USER_MODE
-    s0 = (unsigned int)0x1e23d852;
-    s1 = (unsigned int)0x81f38a1c;
-    s2 = (unsigned int)0xfe1a133e;
-#else
-    /* Use reentrant version of rand48 to ensure that no conflicts with other generators occur */
-    srand48_r((long int)seed_init, &buffer);
-    mrand48_r(&buffer, (long int *)&result);
-    s0 = result;
-    mrand48_r(&buffer, (long int *)&result);
-    s1 = result;
-    mrand48_r(&buffer, (long int *)&result);
-    s2 = result;
-#endif
-  }
-
-  /* Allocate Output */
-  plhs[0] = mxCreateNumericMatrix(3, 1, mxUINT32_CLASS, mxREAL);
-  ret = (unsigned int*) mxGetPr(plhs[0]);
-
-  ret[0] = s0;
-  ret[1] = s1;
-  ret[2] = s2;
-
-}
\ No newline at end of file
diff --git a/openair1/USERSPACE_TOOLS/MATLAB/SIMULATION/TOOLS/mexfiles/taus.c b/openair1/USERSPACE_TOOLS/MATLAB/SIMULATION/TOOLS/mexfiles/taus.c
deleted file mode 100644
index 9d21fd724c6794f513d988f71b04efdba764c388..0000000000000000000000000000000000000000
--- a/openair1/USERSPACE_TOOLS/MATLAB/SIMULATION/TOOLS/mexfiles/taus.c
+++ /dev/null
@@ -1,69 +0,0 @@
-#include "../../../defs.h"
-
-/*==============================================================================
-* taus.c
-*
-* Returns random unsigned chars as well as the new seeds.
-*
-* example: [rchar seeds] = taus(len, seeds)
-*
-* Author: Sebastian Wagner
-* Date: 23-07-2012
-*
-===============================================================================*/
-
-unsigned int s0, s1, s2, b;
-
-inline unsigned int mtaus()
-{
-
-  b = (((s0 << 13) ^ s0) >> 19);
-  s0 = (((s0 & 0xFFFFFFFE) << 12)^  b);
-  b = (((s1 << 2) ^ s1) >> 25);
-  s1 = (((s1 & 0xFFFFFFF8) << 4)^  b);
-  b = (((s2 << 3) ^ s2) >> 11);
-  s2 = (((s2 & 0xFFFFFFF0) << 17)^  b);
-  return s0 ^ s1 ^ s2;
-}
-
-void mexFunction( int nlhs, mxArray *plhs[],
-                  int nrhs, const mxArray *prhs[]
-                )
-{
-
-  /* Declare */
-  unsigned int len, *tseeds, *tseeds_out;
-  unsigned char *out;
-  int i;
-
-  if(nrhs!=2)
-    mexErrMsgTxt("Two inputs required.");
-  else if(nlhs > 2)
-    mexErrMsgTxt("Too many output arguments.");
-
-  /* Allocate input */
-  len = (unsigned int) mxGetScalar(prhs[0]);
-  tseeds = (unsigned int*) mxGetData(prhs[1]);
-
-  if (mxGetM(prhs[1])!=3 && mxGetN(prhs[1])!=3)
-    mexErrMsgTxt("Three seeds are required.");
-
-  s0 = tseeds[0];
-  s1 = tseeds[1];
-  s2 = tseeds[2];
-
-  /* Allocate Output */
-  plhs[0] = mxCreateNumericMatrix(len, 1, mxUINT8_CLASS, mxREAL);
-  out = (unsigned char*) mxGetPr(plhs[0]);
-
-  plhs[1] = mxCreateNumericMatrix(3, 1, mxUINT32_CLASS, mxREAL);
-  tseeds_out = (unsigned int*) mxGetPr(plhs[1]);
-
-  /* Algo */
-  for(i=0; i<len; i++)
-    out[i] = (unsigned char)(mtaus()&0xff);
-
-  tseeds_out[0] = s0;
-  tseeds_out[1] = s1;
-  tseeds_out[2] = s2;
-}
\ No newline at end of file
diff --git a/openair1/USERSPACE_TOOLS/MATLAB/defs.h b/openair1/USERSPACE_TOOLS/MATLAB/defs.h
deleted file mode 100644
index eea24919a4728a23f3232d9b9d4cd15889403526..0000000000000000000000000000000000000000
--- a/openair1/USERSPACE_TOOLS/MATLAB/defs.h
+++ /dev/null
@@ -1,35 +0,0 @@
-/*******************************************************************************
-    OpenAirInterface
-    Copyright(c) 1999 - 2014 Eurecom
-
-    OpenAirInterface is free software: you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-    the Free Software Foundation, either version 3 of the License, or
-    (at your option) any later version.
-
-
-    OpenAirInterface is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-    GNU General Public License for more details.
-
-    You should have received a copy of the GNU General Public License
-    along with OpenAirInterface.The full GNU General Public License is
-   included in this distribution in the file called "COPYING". If not,
-   see <http://www.gnu.org/licenses/>.
-
-  Contact Information
-  OpenAirInterface Admin: openair_admin@eurecom.fr
-  OpenAirInterface Tech : openair_tech@eurecom.fr
-  OpenAirInterface Dev  : openair4g-devel@eurecom.fr
-
-  Address      : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE
-
- *******************************************************************************/
-#include "mex.h"
-#include "../../SIMULATION/TOOLS/defs.h"
-#include "../../PHY/types.h"
-#include "../../PHY/TOOLS/defs.h"
-#include "../../PHY/defs.h"
-#include "../../PHY/vars.h"
-#include "../../MAC_INTERFACE/vars.h"
diff --git a/openair1/USERSPACE_TOOLS/MATLAB/lib/mex.h b/openair1/USERSPACE_TOOLS/MATLAB/lib/mex.h
deleted file mode 100644
index 9cfa79881b5e2952ab629e1b84303f15e6a88165..0000000000000000000000000000000000000000
--- a/openair1/USERSPACE_TOOLS/MATLAB/lib/mex.h
+++ /dev/null
@@ -1,409 +0,0 @@
-/*
- * @(#)mex.h    generated by: makeheader 5.1.5  Mon Jun 29 15:54:48 2009
- *
- *    built from: ../../src/include/copyright.h
- *        ../../src/include/pragma_interface.h
- *        mex_typedefs.h
- *        mexfunction.hpp
- *        fmexapi.cpp
- *        fmexapi_stdcall.cpp
- *        globals.cpp
- *        mexapi.cpp
- *        mexcbk.cpp
- *        mexdispatch.cpp
- *        mexintrf.cpp
- *        mexdbg.h
- */
-
-#if defined(_MSC_VER)
-# pragma once
-#endif
-#if defined(__GNUC__) && (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 3))
-# pragma once
-#endif
-
-#ifndef mex_h
-#define mex_h
-
-
-/*
- * Copyright 1984-2003 The MathWorks, Inc.
- * All Rights Reserved.
- */
-
-
-
-/* Copyright 2003-2006 The MathWorks, Inc. */
-
-/* Only define EXTERN_C if it hasn't been defined already. This allows
- * individual modules to have more control over managing their exports.
- */
-#ifndef EXTERN_C
-
-#ifdef __cplusplus
-#define EXTERN_C extern "C"
-#else
-#define EXTERN_C extern
-#endif
-
-#endif
-
-
-/* Copyright 1999-2007 The MathWorks, Inc. */
-
-/* $Revision: 1.7.4.4 $ */
-#ifndef mex_typedefs_h
-#define mex_typedefs_h
-
-typedef struct impl_info_tag *MEX_impl_info;
-
-#include "matrix.h"
-
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-typedef void (*mex_exit_fn)(void);
-#ifdef __cplusplus
-}
-#endif
-
-typedef struct mexGlobalTableEntry_Tag {
-  const char *name;             /* The name of the global */
-  mxArray    **variable;        /* A pointer to the variable */
-} mexGlobalTableEntry, *mexGlobalTable;
-
-#ifdef _WIN32
-#define cicompare(s1,s2) utStrcmpi((s1),(s2))
-#else
-#define cicompare(s1,s2) strcmp((s1),(s2))
-#endif
-#define cscompare(s1,s2) strcmp((s1),(s2))
-
-typedef struct mexFunctionTableEntry_tag {
-  const char *  name;
-  mxFunctionPtr f;
-  int           nargin;
-  int           nargout;
-  struct _mexLocalFunctionTable *local_function_table;
-} mexFunctionTableEntry, *mexFunctionTable;
-
-typedef struct _mexLocalFunctionTable {
-  size_t           length;
-  mexFunctionTable entries;
-} _mexLocalFunctionTable, *mexLocalFunctionTable;
-
-typedef struct {
-  void (*initialize)(void);
-  void (*terminate)(void);
-} _mexInitTermTableEntry, *mexInitTermTableEntry;
-
-#define MEX_INFORMATION_VERSION 1
-
-typedef struct {
-  int                   version;
-  int                   file_function_table_length;
-  mexFunctionTable      file_function_table;
-  int                   global_variable_table_length;
-  mexGlobalTable        global_variable_table;
-  int                   npaths;
-  const char **         paths;
-  int                   init_term_table_length;
-  mexInitTermTableEntry init_term_table;
-} _mex_information, *mex_information;
-
-typedef mex_information(*fn_mex_file)(void);
-
-typedef void (*fn_clean_up_after_error)(void);
-typedef const char *(*fn_simple_function_to_string)(mxFunctionPtr f);
-
-typedef void (*fn_mex_enter_mex_library)(mex_information x);
-typedef fn_mex_enter_mex_library fn_mex_exit_mex_library;
-
-typedef mexLocalFunctionTable (*fn_mex_get_local_function_table)(void);
-typedef mexLocalFunctionTable (*fn_mex_set_local_function_table)(mexLocalFunctionTable);
-
-#endif
-
-
-
-#ifdef EXPORT_EXTERN_C
-# define MEXFUNCTION_LINKAGE EXPORT_EXTERN_C
-#else
-# ifdef MW_NEEDS_VERSION_H
-#  include "version.h"
-#  define MEXFUNCTION_LINKAGE EXPORT_EXTERN_C
-# else
-#  define MEXFUNCTION_LINKAGE EXTERN_C
-# endif
-#endif
-
-MEXFUNCTION_LINKAGE
-/*
- * mexFunction is the user-defined C routine that is called upon invocation
- * of a MEX-function.
- */
-void mexFunction(
-  int           nlhs,           /* number of expected outputs */
-  mxArray       *plhs[],        /* array of pointers to output arguments */
-  int           nrhs,           /* number of inputs */
-  const mxArray *prhs[]         /* array of pointers to input arguments */
-);
-
-
-/*
- * This header file "mex.h" declares all the types, macros and
- * functions necessary to interface mex files with the current
- * version of MATLAB.  See the release notes for information on
- * supporting syntax from earlier versions.
- */
-#include "matrix.h"
-
-#include <stdio.h>
-
-
-
-/*
- * Issue error message and return to MATLAB prompt
- */
-EXTERN_C void mexErrMsgTxt(
-  const char  *error_msg  /* string with error message */
-);
-
-
-/*
- * Issue formatted error message with corresponding error identifier and return to MATLAB
- * prompt.
- */
-EXTERN_C void mexErrMsgIdAndTxt(
-  const char * identifier, /* string with error message identifier */
-  const char * err_msg,    /* string with error message printf-style format */
-  ...                      /* any additional arguments */
-);
-
-
-/*
- * Invoke an unidentified warning. Such warnings can only be affected by the M-code
- * 'warning * all', since they have no specific identifier. See also mexWarnMsgIdAndTxt.
- */
-EXTERN_C void mexWarnMsgTxt(
-  const char  *warn_msg /* string with warning message */
-);
-
-
-/*
- * Invoke a warning with message identifier 'identifier' and message derived from 'fmt' and
- * subsequent arguments. The warning may either get printed as is (if it is set to 'on'), or
- * not actually get printed (if set to 'off'). See 'help warning' in MATLAB for more
- * details.
- */
-EXTERN_C void mexWarnMsgIdAndTxt(
-  const char * identifier,    /* string with warning message identifer */
-  const char * warn_msg,  /* string with warning message printf-style format */
-  ...                         /* any additional arguments */
-);
-
-
-/*
- * mex equivalent to MATLAB's "disp" function
- */
-EXTERN_C int mexPrintf(
-  const char  *fmt, /* printf style format */
-  ...       /* any additional arguments */
-);
-
-
-#define printf mexPrintf
-
-
-/*
- * Remove all components of an array plus the array header itself
- * from MATLAB's memory allocation list.  The array will now
- * persist between calls to the mex function.  To destroy this
- * array, you will need to explicitly call mxDestroyArray().
- */
-EXTERN_C void mexMakeArrayPersistent(
-  mxArray *pa              /* pointer to array */
-);
-
-
-/*
- * Remove memory previously allocated via mxCalloc from MATLAB's
- * memory allocation list.  To free this memory, you will need to
- * explicitly call mxFree().
- */
-EXTERN_C void mexMakeMemoryPersistent(void *ptr);
-
-
-/*
- * mex equivalent to MATLAB's "set" function
- */
-EXTERN_C int mexSet(double handle, const char *property, mxArray *value);
-
-
-/* API interface which mimics the "get" function */
-EXTERN_C const mxArray *mexGet(double handle, const char *property);
-
-
-/*
- * call MATLAB function
- */
-EXTERN_C int mexCallMATLAB(
-  int   nlhs,     /* number of expected outputs */
-  mxArray *plhs[],    /* pointer array to outputs */
-  int   nrhs,     /* number of inputs */
-  mxArray *prhs[],    /* pointer array to inputs */
-  const char  *fcn_name   /* name of function to execute */
-);
-
-
-/*
- * call MATLAB function with Trap
- */
-EXTERN_C mxArray  *mexCallMATLABWithTrap(
-  int         nlhs,       /* number of expected outputs */
-  mxArray     *plhs[],    /* pointer array to outputs */
-  int         nrhs,       /* number of inputs */
-  mxArray     *prhs[],    /* pointer array to inputs */
-  const char  *fcn_name   /* name of function to execute */
-);
-
-
-/*
- * set or clear mexCallMATLAB trap flag (if set then an error in
- * mexCallMATLAB is caught and mexCallMATLAB will return a status value,
- * if not set an error will cause control to revert to MATLAB)
- */
-EXTERN_C void mexSetTrapFlag(int flag);
-
-
-/*
- * Print an assertion-style error message and return control to the
- * MATLAB command line.
- */
-EXTERN_C void mexPrintAssertion(
-  const char *test,
-  const char *fname,
-  int linenum,
-  const char *message);
-
-
-/*
- * Tell whether or not a mxArray is in MATLAB's global workspace.
- */
-EXTERN_C bool mexIsGlobal(const mxArray *pA);
-
-
-/*
- * Place a copy of the array value into the specified workspace with the
- * specified name
- */
-EXTERN_C int mexPutVariable(
-  const char *workspace,
-  const char *name,
-  const mxArray *parray   /* matrix to copy */
-);
-
-
-/*
- * return a pointer to the array value with the specified variable
- * name in the specified workspace
- */
-EXTERN_C const mxArray *mexGetVariablePtr(
-  const char *workspace,
-  const char *name    /* name of symbol */
-);
-
-
-/*
- * return a copy of the array value with the specified variable
- * name in the specified workspace
- */
-EXTERN_C mxArray *mexGetVariable(
-  const char  *workspace,
-  const char  *name                /* name of variable in question */
-);
-
-
-/*
- * Lock a MEX-function so that it cannot be cleared from memory.
- */
-EXTERN_C void mexLock(void);
-
-
-/*
- * Unlock a locked MEX-function so that it can be cleared from memory.
- */
-EXTERN_C void mexUnlock(void);
-
-
-/*
- * Return true if the MEX-function is currently locked, false otherwise.
- */
-EXTERN_C bool mexIsLocked(void);
-
-
-/*
- * Return the name of a the MEXfunction currently executing.
- */
-EXTERN_C const char *mexFunctionName(void);
-
-
-/*
- * Parse and execute MATLAB syntax in string.  Returns zero if successful,
- * and a non zero value if an error occurs.
- */
-EXTERN_C int mexEvalString(
-  const char *str     /* matlab command string */
-);
-
-
-/*
- * Parse and execute MATLAB syntax in string.  Returns NULL if successful,
- * and an MException if an error occurs.
- */
-EXTERN_C mxArray* mexEvalStringWithTrap(
-  const char *str     /* matlab command string */
-);
-
-
-/*
- * Register Mex-file's At-Exit function (accessed via MEX callback)
- */
-EXTERN_C int mexAtExit(mex_exit_fn exit_fcn );
-
-
-/* Copyright 1996-2006 The MathWorks, Inc. */
-
-/* $Revision: 1.9.4.3 $ */
-
-/*
- * Revisit.  Conflicts with 32-bit compatibility API.  XXX
- */
-#if 0
-
-#ifdef ARGCHECK
-
-#include "mwdebug.h" /* Prototype _d versions of API functions */
-
-#define mexAtExit(exitfcn)        mexAtExit_d(exitfcn, __FILE__, __LINE__)
-#define mexCallMATLAB(nlhs, plhs, nrhs, prhs, fcn) mexCallMATLAB_d(nlhs, plhs, nrhs, prhs, fcn, __FILE__, __LINE__)
-#define mexErrMsgTxt(errmsg)      mexErrMsgTxt_d(errmsg, __FILE__, __LINE__)
-#define mexEvalString(str)        mexEvalString_d(str, __FILE__, __LINE__)
-#define mexGet(handle, property)    mexGet_d(handle, property, __FILE__, __LINE__)
-#define mexGetVariable(workspace, name)   mexGetVariable_d(workspace, name, __FILE__, __LINE__)
-#define mexGetVariablePtr(workspace, name)      mexGetVariablePtr_d(workspace, name, __FILE__, __LINE__)
-#define mexIsGlobal(pa)                 mexIsGlobal_d(pa, __FILE__, __LINE__)
-#define mexMakeArrayPersistent(pa)    mexMakeArrayPersistent_d(pa, __FILE__, __LINE__)
-#define mexMakeMemoryPersistent(ptr)  mexMakeMemoryPersistent_d(ptr, __FILE__, __LINE__)
-#define mexPutVariable(workspace, name, pa)   mexPutVariable_d(workspace, name, pa, __FILE__, __LINE__)
-#define mexSet(handle, property, value) mexSet_d(handle, property, value, __FILE__, __LINE__)
-#define mexSetTrapFlag(value)           mexSetTrapFlag_d(value, __FILE__, __LINE__)
-#define mexSubsAssign(plhs, sub, nsubs, rhs)    mexSubsAssign_d(plhs, sub, nsubs, rhs, __FILE__, __LINE__)
-#define mexSubsReference(prhs, sub, nsubs)    mexSubsReference_d(prhs, sub, nsubs, __FILE__, __LINE__)
-#define mexWarnMsgTxt(str)        mexWarnMsgTxt_d(str, __FILE__, __LINE__)
-#endif
-
-#endif
-
-#endif /* mex_h */