Restructuring "nr_slot_fep_ul"
- Now it takes input and output pointers instead of gNB struct
This commit is contained in:
committed by
Thomas Schlichter
parent
3d9ae4227b
commit
10e3a299be
@@ -55,14 +55,18 @@ void nr_layer_mapping(int16_t **mod_symbs,
|
|||||||
|
|
||||||
/*!
|
/*!
|
||||||
\brief This function implements the OFDM front end processor on reception (FEP)
|
\brief This function implements the OFDM front end processor on reception (FEP)
|
||||||
\param phy_vars_ue Pointer to PHY variables
|
\param frame_parms Pointer to frame parameters
|
||||||
|
\param rxdata Pointer to input data in time domain
|
||||||
|
\param rxdataF Pointer to output data in frequency domain
|
||||||
\param symbol symbol within slot (0..12/14)
|
\param symbol symbol within slot (0..12/14)
|
||||||
\param Ns Slot number (0..19)
|
\param Ns Slot number (0..19)
|
||||||
\param sample_offset offset within rxdata (points to beginning of subframe)
|
\param sample_offset offset within rxdata (points to beginning of subframe)
|
||||||
\param no_prefix if 1 prefix is removed by HW
|
\param no_prefix if 1 prefix is removed by HW
|
||||||
*/
|
*/
|
||||||
|
|
||||||
int nr_slot_fep_ul(PHY_VARS_gNB *phy_vars_gNB,
|
int nr_slot_fep_ul(NR_DL_FRAME_PARMS *frame_parms,
|
||||||
|
int32_t *rxdata,
|
||||||
|
int32_t *rxdataF,
|
||||||
unsigned char symbol,
|
unsigned char symbol,
|
||||||
unsigned char Ns,
|
unsigned char Ns,
|
||||||
int sample_offset,
|
int sample_offset,
|
||||||
|
|||||||
@@ -200,17 +200,17 @@ int nr_slot_fep(PHY_VARS_NR_UE *ue,
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
int nr_slot_fep_ul(PHY_VARS_gNB *gNB,
|
int nr_slot_fep_ul(NR_DL_FRAME_PARMS *frame_parms,
|
||||||
|
int32_t *rxdata,
|
||||||
|
int32_t *rxdataF,
|
||||||
unsigned char symbol,
|
unsigned char symbol,
|
||||||
unsigned char Ns,
|
unsigned char Ns,
|
||||||
int sample_offset,
|
int sample_offset,
|
||||||
int no_prefix)
|
int no_prefix)
|
||||||
{
|
{
|
||||||
unsigned char aa;
|
|
||||||
uint32_t slot_offset;
|
uint32_t slot_offset;
|
||||||
uint32_t rxdata_offset;
|
uint32_t rxdata_offset;
|
||||||
|
|
||||||
NR_DL_FRAME_PARMS *frame_parms = &gNB->frame_parms;
|
|
||||||
unsigned int nb_prefix_samples = (no_prefix ? 0 : frame_parms->nb_prefix_samples);
|
unsigned int nb_prefix_samples = (no_prefix ? 0 : frame_parms->nb_prefix_samples);
|
||||||
unsigned int nb_prefix_samples0 = (no_prefix ? 0 : frame_parms->nb_prefix_samples0);
|
unsigned int nb_prefix_samples0 = (no_prefix ? 0 : frame_parms->nb_prefix_samples0);
|
||||||
|
|
||||||
@@ -256,15 +256,14 @@ int nr_slot_fep_ul(PHY_VARS_gNB *gNB,
|
|||||||
|
|
||||||
slot_offset = Ns * frame_parms->samples_per_slot;
|
slot_offset = Ns * frame_parms->samples_per_slot;
|
||||||
|
|
||||||
for (aa = 0; aa < frame_parms->nb_antennas_rx; aa++) {
|
|
||||||
if(symbol == 0)
|
if(symbol == 0)
|
||||||
rxdata_offset = slot_offset + nb_prefix_samples0 - SOFFSET;
|
rxdata_offset = slot_offset + nb_prefix_samples0 - SOFFSET;
|
||||||
else
|
else
|
||||||
rxdata_offset = slot_offset + nb_prefix_samples0 + (symbol * (frame_parms->ofdm_symbol_size + nb_prefix_samples)) - SOFFSET;
|
rxdata_offset = slot_offset + nb_prefix_samples0 + (symbol * (frame_parms->ofdm_symbol_size + nb_prefix_samples)) - SOFFSET;
|
||||||
|
|
||||||
dft((int16_t *)&gNB->common_vars.rxdata[aa][rxdata_offset],
|
dft((int16_t *)&rxdata[rxdata_offset],
|
||||||
(int16_t *)&gNB->common_vars.rxdataF[aa][symbol * frame_parms->ofdm_symbol_size], 1);
|
(int16_t *)&rxdataF[symbol * frame_parms->ofdm_symbol_size], 1);
|
||||||
}
|
|
||||||
|
|
||||||
return(0);
|
return(0);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -239,9 +239,19 @@ void nr_ulsch_procedures(PHY_VARS_gNB *gNB, gNB_L1_rxtx_proc_t *proc, int UE_id,
|
|||||||
void phy_procedures_gNB_common_RX(PHY_VARS_gNB *gNB, gNB_L1_rxtx_proc_t *proc) {
|
void phy_procedures_gNB_common_RX(PHY_VARS_gNB *gNB, gNB_L1_rxtx_proc_t *proc) {
|
||||||
|
|
||||||
uint8_t symbol;
|
uint8_t symbol;
|
||||||
|
unsigned char aa;
|
||||||
|
|
||||||
for(symbol = 0; symbol < NR_SYMBOLS_PER_SLOT; symbol++) {
|
for(symbol = 0; symbol < NR_SYMBOLS_PER_SLOT; symbol++) {
|
||||||
nr_slot_fep_ul(gNB, symbol, proc->slot_rx, 0, 0);
|
// nr_slot_fep_ul(gNB, symbol, proc->slot_rx, 0, 0);
|
||||||
|
for (aa = 0; aa < gNB->frame_parms.nb_antennas_rx; aa++) {
|
||||||
|
nr_slot_fep_ul(&gNB->frame_parms,
|
||||||
|
gNB->common_vars.rxdata[aa],
|
||||||
|
gNB->common_vars.rxdataF[aa],
|
||||||
|
symbol,
|
||||||
|
proc->slot_rx,
|
||||||
|
0,
|
||||||
|
0);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user