taking into account n_ta_offset in slot fep ul
This commit is contained in:
@@ -394,12 +394,13 @@ int nr_slot_fep_ul(NR_DL_FRAME_PARMS *frame_parms,
|
|||||||
int sample_offset,
|
int sample_offset,
|
||||||
int no_prefix)
|
int no_prefix)
|
||||||
{
|
{
|
||||||
uint32_t slot_offset;
|
int32_t slot_offset, rxdata_offset;
|
||||||
uint32_t rxdata_offset;
|
|
||||||
|
|
||||||
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);
|
||||||
|
|
||||||
|
int tmp_dft_in[8192] __attribute__ ((aligned (32)));
|
||||||
|
|
||||||
void (*dft)(int16_t *,int16_t *, int);
|
void (*dft)(int16_t *,int16_t *, int);
|
||||||
|
|
||||||
switch (frame_parms->ofdm_symbol_size) {
|
switch (frame_parms->ofdm_symbol_size) {
|
||||||
@@ -442,14 +443,26 @@ int nr_slot_fep_ul(NR_DL_FRAME_PARMS *frame_parms,
|
|||||||
|
|
||||||
slot_offset = frame_parms->get_samples_slot_timestamp(Ns,frame_parms,0);
|
slot_offset = frame_parms->get_samples_slot_timestamp(Ns,frame_parms,0);
|
||||||
|
|
||||||
|
|
||||||
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 *)&rxdata[rxdata_offset],
|
if(sample_offset>rxdata_offset) {
|
||||||
(int16_t *)&rxdataF[symbol * frame_parms->ofdm_symbol_size], 1);
|
memcpy((void *)tmp_dft_in,
|
||||||
|
(void *) &rxdata[frame_parms->samples_per_frame-sample_offset+rxdata_offset],
|
||||||
|
(sample_offset-rxdata_offset)*sizeof(int));
|
||||||
|
|
||||||
|
memcpy((void *)&tmp_dft_in[sample_offset-rxdata_offset],
|
||||||
|
(void *) &rxdata[0],
|
||||||
|
(frame_parms->ofdm_symbol_size-sample_offset+rxdata_offset)*sizeof(int));
|
||||||
|
|
||||||
|
dft((int16_t *)&tmp_dft_in,
|
||||||
|
(int16_t *)&rxdataF[symbol * frame_parms->ofdm_symbol_size], 1);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
dft((int16_t *)&rxdata[rxdata_offset-sample_offset],
|
||||||
|
(int16_t *)&rxdataF[symbol * frame_parms->ofdm_symbol_size], 1);
|
||||||
|
|
||||||
return(0);
|
return(0);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -520,7 +520,7 @@ void nr_fep0(RU_t *ru, int first_half) {
|
|||||||
ru->common.rxdataF[aa],
|
ru->common.rxdataF[aa],
|
||||||
l,
|
l,
|
||||||
proc->tti_rx,
|
proc->tti_rx,
|
||||||
0,
|
ru->N_TA_offset,
|
||||||
0);
|
0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -642,6 +642,8 @@ void nr_fep_full(RU_t *ru, int slot) {
|
|||||||
// if ((fp->frame_type == TDD) &&
|
// if ((fp->frame_type == TDD) &&
|
||||||
// (subframe_select(fp,proc->tti_rx) != NR_UPLINK_SLOT)) return;
|
// (subframe_select(fp,proc->tti_rx) != NR_UPLINK_SLOT)) return;
|
||||||
|
|
||||||
|
LOG_D(PHY,"In fep_full for slot = %d\n", proc->tti_rx);
|
||||||
|
|
||||||
start_meas(&ru->ofdm_demod_stats);
|
start_meas(&ru->ofdm_demod_stats);
|
||||||
if (ru->idx == 0) VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME( VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_RU_FEPRX, 1 );
|
if (ru->idx == 0) VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME( VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_RU_FEPRX, 1 );
|
||||||
|
|
||||||
@@ -655,7 +657,7 @@ void nr_fep_full(RU_t *ru, int slot) {
|
|||||||
ru->common.rxdataF[aa],
|
ru->common.rxdataF[aa],
|
||||||
l,
|
l,
|
||||||
proc->tti_rx,
|
proc->tti_rx,
|
||||||
0,
|
ru->N_TA_offset,
|
||||||
0);
|
0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user