move get_dft() and get_idft() from pss_nr.c to tools_defs.h
This commit is contained in:
@@ -34,47 +34,6 @@
|
|||||||
#define LOG_I(A,B...) printf(A)
|
#define LOG_I(A,B...) printf(A)
|
||||||
#endif*/
|
#endif*/
|
||||||
|
|
||||||
dft_size_idx_t get_dft_size_idx(uint16_t ofdm_symbol_size)
|
|
||||||
{
|
|
||||||
switch (ofdm_symbol_size) {
|
|
||||||
case 128:
|
|
||||||
return DFT_128;
|
|
||||||
|
|
||||||
case 256:
|
|
||||||
return DFT_256;
|
|
||||||
|
|
||||||
case 512:
|
|
||||||
return DFT_512;
|
|
||||||
|
|
||||||
case 1024:
|
|
||||||
return DFT_1024;
|
|
||||||
|
|
||||||
case 1536:
|
|
||||||
return DFT_1536;
|
|
||||||
|
|
||||||
case 2048:
|
|
||||||
return DFT_2048;
|
|
||||||
|
|
||||||
case 3072:
|
|
||||||
return DFT_3072;
|
|
||||||
|
|
||||||
case 4096:
|
|
||||||
return DFT_4096;
|
|
||||||
|
|
||||||
case 6144:
|
|
||||||
return DFT_6144;
|
|
||||||
|
|
||||||
case 8192:
|
|
||||||
return DFT_8192;
|
|
||||||
|
|
||||||
default:
|
|
||||||
printf("unsupported ofdm symbol size \n");
|
|
||||||
assert(0);
|
|
||||||
}
|
|
||||||
|
|
||||||
return DFT_SIZE_IDXTABLESIZE;
|
|
||||||
}
|
|
||||||
|
|
||||||
int nr_slot_fep(PHY_VARS_NR_UE *ue,
|
int nr_slot_fep(PHY_VARS_NR_UE *ue,
|
||||||
UE_nr_rxtx_proc_t *proc,
|
UE_nr_rxtx_proc_t *proc,
|
||||||
unsigned char symbol,
|
unsigned char symbol,
|
||||||
@@ -96,7 +55,7 @@ int nr_slot_fep(PHY_VARS_NR_UE *ue,
|
|||||||
nb_prefix_samples0 = frame_parms->nb_prefix_samples;
|
nb_prefix_samples0 = frame_parms->nb_prefix_samples;
|
||||||
}
|
}
|
||||||
|
|
||||||
dft_size_idx_t dftsize = get_dft_size_idx(frame_parms->ofdm_symbol_size);
|
dft_size_idx_t dftsize = get_dft(frame_parms->ofdm_symbol_size);
|
||||||
// This is for misalignment issues
|
// This is for misalignment issues
|
||||||
int32_t tmp_dft_in[8192] __attribute__ ((aligned (32)));
|
int32_t tmp_dft_in[8192] __attribute__ ((aligned (32)));
|
||||||
|
|
||||||
@@ -195,7 +154,7 @@ int nr_slot_fep_init_sync(PHY_VARS_NR_UE *ue,
|
|||||||
}
|
}
|
||||||
unsigned int frame_length_samples = frame_parms->samples_per_frame;
|
unsigned int frame_length_samples = frame_parms->samples_per_frame;
|
||||||
|
|
||||||
dft_size_idx_t dftsize = get_dft_size_idx(frame_parms->ofdm_symbol_size);
|
dft_size_idx_t dftsize = get_dft(frame_parms->ofdm_symbol_size);
|
||||||
// This is for misalignment issues
|
// This is for misalignment issues
|
||||||
int32_t tmp_dft_in[8192] __attribute__ ((aligned (32)));
|
int32_t tmp_dft_in[8192] __attribute__ ((aligned (32)));
|
||||||
|
|
||||||
@@ -289,7 +248,7 @@ int nr_slot_fep_ul(NR_DL_FRAME_PARMS *frame_parms,
|
|||||||
unsigned int nb_prefix_samples = frame_parms->nb_prefix_samples;
|
unsigned int nb_prefix_samples = frame_parms->nb_prefix_samples;
|
||||||
unsigned int nb_prefix_samples0 = frame_parms->nb_prefix_samples0;
|
unsigned int nb_prefix_samples0 = frame_parms->nb_prefix_samples0;
|
||||||
|
|
||||||
dft_size_idx_t dftsize = get_dft_size_idx(frame_parms->ofdm_symbol_size);
|
dft_size_idx_t dftsize = get_dft(frame_parms->ofdm_symbol_size);
|
||||||
// This is for misalignment issues
|
// This is for misalignment issues
|
||||||
int32_t tmp_dft_in[8192] __attribute__ ((aligned (32)));
|
int32_t tmp_dft_in[8192] __attribute__ ((aligned (32)));
|
||||||
|
|
||||||
|
|||||||
@@ -126,8 +126,6 @@ EXTERN time_stats_t generic_time[TIME_LAST];
|
|||||||
|
|
||||||
/************** FUNCTION ******************************************/
|
/************** FUNCTION ******************************************/
|
||||||
|
|
||||||
idft_size_idx_t get_idft(int ofdm_symbol_size);
|
|
||||||
dft_size_idx_t get_dft(int ofdm_symbol_size);
|
|
||||||
void init_context_synchro_nr(NR_DL_FRAME_PARMS *frame_parms_ue);
|
void init_context_synchro_nr(NR_DL_FRAME_PARMS *frame_parms_ue);
|
||||||
void free_context_synchro_nr(void);
|
void free_context_synchro_nr(void);
|
||||||
void init_context_pss_nr(NR_DL_FRAME_PARMS *frame_parms_ue);
|
void init_context_pss_nr(NR_DL_FRAME_PARMS *frame_parms_ue);
|
||||||
|
|||||||
@@ -48,126 +48,8 @@
|
|||||||
#include "PHY/NR_REFSIG/sss_nr.h"
|
#include "PHY/NR_REFSIG/sss_nr.h"
|
||||||
#include "PHY/NR_UE_TRANSPORT/cic_filter_nr.h"
|
#include "PHY/NR_UE_TRANSPORT/cic_filter_nr.h"
|
||||||
|
|
||||||
/*******************************************************************
|
|
||||||
*
|
|
||||||
* NAME : get_idft
|
|
||||||
*
|
|
||||||
* PARAMETERS : size of ofdm symbol
|
|
||||||
*
|
|
||||||
* RETURN : index pointing to the dft func in the dft library
|
|
||||||
*
|
|
||||||
* DESCRIPTION : get idft function depending of ofdm size
|
|
||||||
*
|
|
||||||
*********************************************************************/
|
|
||||||
|
|
||||||
//#define DBG_PSS_NR
|
//#define DBG_PSS_NR
|
||||||
|
|
||||||
idft_size_idx_t get_idft(int ofdm_symbol_size)
|
|
||||||
{
|
|
||||||
|
|
||||||
|
|
||||||
switch (ofdm_symbol_size) {
|
|
||||||
case 128:
|
|
||||||
return IDFT_128;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 256:
|
|
||||||
return IDFT_256;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 512:
|
|
||||||
return IDFT_512;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 1024:
|
|
||||||
return IDFT_1024;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 1536:
|
|
||||||
return IDFT_1536;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 2048:
|
|
||||||
return IDFT_2048;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 3072:
|
|
||||||
return IDFT_3072;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 4096:
|
|
||||||
return IDFT_4096;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 8192:
|
|
||||||
return IDFT_8192;
|
|
||||||
break;
|
|
||||||
|
|
||||||
default:
|
|
||||||
printf("function get_idft : unsupported ofdm symbol size \n");
|
|
||||||
assert(0);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
return IDFT_SIZE_IDXTABLESIZE; // never reached and will trigger assertion in idft function
|
|
||||||
}
|
|
||||||
|
|
||||||
/*******************************************************************
|
|
||||||
*
|
|
||||||
* NAME : get_dft
|
|
||||||
*
|
|
||||||
* PARAMETERS : size of ofdm symbol
|
|
||||||
*
|
|
||||||
* RETURN : function for discrete fourier transform
|
|
||||||
*
|
|
||||||
* DESCRIPTION : get dft function depending of ofdm size
|
|
||||||
*
|
|
||||||
*********************************************************************/
|
|
||||||
|
|
||||||
dft_size_idx_t get_dft(int ofdm_symbol_size)
|
|
||||||
{
|
|
||||||
|
|
||||||
|
|
||||||
switch (ofdm_symbol_size) {
|
|
||||||
case 128:
|
|
||||||
return DFT_128;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 256:
|
|
||||||
return DFT_256;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 512:
|
|
||||||
return DFT_512;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 1024:
|
|
||||||
return DFT_1024;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 1536:
|
|
||||||
return DFT_1536;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 2048:
|
|
||||||
return DFT_2048;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 4096:
|
|
||||||
return DFT_4096;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 8192:
|
|
||||||
return DFT_8192;
|
|
||||||
break;
|
|
||||||
|
|
||||||
default:
|
|
||||||
printf("function get_dft : unsupported ofdm symbol size \n");
|
|
||||||
assert(0);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
return DFT_SIZE_IDXTABLESIZE; // never reached and will trigger assertion in idft function;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*******************************************************************
|
/*******************************************************************
|
||||||
*
|
*
|
||||||
* NAME : generate_pss_nr
|
* NAME : generate_pss_nr
|
||||||
|
|||||||
@@ -33,7 +33,9 @@
|
|||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
|
#include <assert.h>
|
||||||
#include "PHY/sse_intrin.h"
|
#include "PHY/sse_intrin.h"
|
||||||
|
|
||||||
#define CEILIDIV(a,b) ((a+b-1)/b)
|
#define CEILIDIV(a,b) ((a+b-1)/b)
|
||||||
@@ -322,6 +324,65 @@ adftfunc_t dft_ftab[]={
|
|||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/*******************************************************************
|
||||||
|
*
|
||||||
|
* NAME : get_dft
|
||||||
|
*
|
||||||
|
* PARAMETERS : size of ofdm symbol
|
||||||
|
*
|
||||||
|
* RETURN : function for discrete fourier transform
|
||||||
|
*
|
||||||
|
* DESCRIPTION : get dft function depending of ofdm size
|
||||||
|
*
|
||||||
|
*********************************************************************/
|
||||||
|
static inline
|
||||||
|
dft_size_idx_t get_dft(int ofdm_symbol_size)
|
||||||
|
{
|
||||||
|
switch (ofdm_symbol_size) {
|
||||||
|
case 128:
|
||||||
|
return DFT_128;
|
||||||
|
case 256:
|
||||||
|
return DFT_256;
|
||||||
|
case 512:
|
||||||
|
return DFT_512;
|
||||||
|
case 1024:
|
||||||
|
return DFT_1024;
|
||||||
|
case 1536:
|
||||||
|
return DFT_1536;
|
||||||
|
case 2048:
|
||||||
|
return DFT_2048;
|
||||||
|
case 3072:
|
||||||
|
return DFT_3072;
|
||||||
|
case 4096:
|
||||||
|
return DFT_4096;
|
||||||
|
case 6144:
|
||||||
|
return DFT_6144;
|
||||||
|
case 8192:
|
||||||
|
return DFT_8192;
|
||||||
|
case 9216:
|
||||||
|
return DFT_9216;
|
||||||
|
case 12288:
|
||||||
|
return DFT_12288;
|
||||||
|
case 18432:
|
||||||
|
return DFT_18432;
|
||||||
|
case 24576:
|
||||||
|
return DFT_24576;
|
||||||
|
case 36864:
|
||||||
|
return DFT_36864;
|
||||||
|
case 49152:
|
||||||
|
return DFT_49152;
|
||||||
|
case 73728:
|
||||||
|
return DFT_73728;
|
||||||
|
case 98304:
|
||||||
|
return DFT_98304;
|
||||||
|
default:
|
||||||
|
printf("function get_dft : unsupported ofdm symbol size \n");
|
||||||
|
assert(0);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return DFT_SIZE_IDXTABLESIZE; // never reached and will trigger assertion in idft function;
|
||||||
|
}
|
||||||
|
|
||||||
typedef enum idft_size_idx {
|
typedef enum idft_size_idx {
|
||||||
IDFT_128, IDFT_256, IDFT_512, IDFT_1024, IDFT_1536, IDFT_2048, IDFT_3072, IDFT_4096,
|
IDFT_128, IDFT_256, IDFT_512, IDFT_1024, IDFT_1536, IDFT_2048, IDFT_3072, IDFT_4096,
|
||||||
IDFT_6144, IDFT_8192, IDFT_9216, IDFT_12288, IDFT_18432, IDFT_24576, IDFT_36864, IDFT_49152,
|
IDFT_6144, IDFT_8192, IDFT_9216, IDFT_12288, IDFT_18432, IDFT_24576, IDFT_36864, IDFT_49152,
|
||||||
@@ -336,6 +397,64 @@ aidftfunc_t idft_ftab[]={
|
|||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/*******************************************************************
|
||||||
|
*
|
||||||
|
* NAME : get_idft
|
||||||
|
*
|
||||||
|
* PARAMETERS : size of ofdm symbol
|
||||||
|
*
|
||||||
|
* RETURN : index pointing to the dft func in the dft library
|
||||||
|
*
|
||||||
|
* DESCRIPTION : get idft function depending of ofdm size
|
||||||
|
*
|
||||||
|
*********************************************************************/
|
||||||
|
static inline
|
||||||
|
idft_size_idx_t get_idft(int ofdm_symbol_size)
|
||||||
|
{
|
||||||
|
switch (ofdm_symbol_size) {
|
||||||
|
case 128:
|
||||||
|
return IDFT_128;
|
||||||
|
case 256:
|
||||||
|
return IDFT_256;
|
||||||
|
case 512:
|
||||||
|
return IDFT_512;
|
||||||
|
case 1024:
|
||||||
|
return IDFT_1024;
|
||||||
|
case 1536:
|
||||||
|
return IDFT_1536;
|
||||||
|
case 2048:
|
||||||
|
return IDFT_2048;
|
||||||
|
case 3072:
|
||||||
|
return IDFT_3072;
|
||||||
|
case 4096:
|
||||||
|
return IDFT_4096;
|
||||||
|
case 6144:
|
||||||
|
return IDFT_6144;
|
||||||
|
case 8192:
|
||||||
|
return IDFT_8192;
|
||||||
|
case 9216:
|
||||||
|
return IDFT_9216;
|
||||||
|
case 12288:
|
||||||
|
return IDFT_12288;
|
||||||
|
case 18432:
|
||||||
|
return IDFT_18432;
|
||||||
|
case 24576:
|
||||||
|
return IDFT_24576;
|
||||||
|
case 36864:
|
||||||
|
return IDFT_36864;
|
||||||
|
case 49152:
|
||||||
|
return IDFT_49152;
|
||||||
|
case 73728:
|
||||||
|
return IDFT_73728;
|
||||||
|
case 98304:
|
||||||
|
return IDFT_98304;
|
||||||
|
default:
|
||||||
|
printf("function get_idft : unsupported ofdm symbol size \n");
|
||||||
|
assert(0);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return IDFT_SIZE_IDXTABLESIZE; // never reached and will trigger assertion in idft function
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/*!\fn int32_t rotate_cpx_vector(int16_t *x,int16_t *alpha,int16_t *y,uint32_t N,uint16_t output_shift)
|
/*!\fn int32_t rotate_cpx_vector(int16_t *x,int16_t *alpha,int16_t *y,uint32_t N,uint16_t output_shift)
|
||||||
|
|||||||
Reference in New Issue
Block a user