mirror of https://github.com/PentHertz/srsLTE.git
Revert zeros around DC REs in NR PDSCH
This commit is contained in:
parent
93c3dc1cb1
commit
53e41a165c
|
@ -37,8 +37,6 @@ typedef struct SRSRAN_API {
|
|||
srsran_sch_nr_args_t sch;
|
||||
bool measure_evm;
|
||||
bool measure_time;
|
||||
bool disable_zero_re_around_dc; ///< PDSCH NR sets the LLR around the DC to zero to avoid noise
|
||||
uint32_t nof_zero_re_around_dc; ///< Number of RE to set to zero around DC. It uses default value if 0.
|
||||
} srsran_pdsch_nr_args_t;
|
||||
|
||||
/**
|
||||
|
@ -59,8 +57,6 @@ typedef struct SRSRAN_API {
|
|||
uint32_t meas_time_us;
|
||||
srsran_re_pattern_t dmrs_re_pattern;
|
||||
uint32_t nof_rvd_re;
|
||||
uint32_t nof_zero_re_around_dc; ///< Sets a number of RE surrounding the center of the resource grid to zero. Set to 0
|
||||
///< for disabling.
|
||||
} srsran_pdsch_nr_t;
|
||||
|
||||
/**
|
||||
|
|
|
@ -17,9 +17,6 @@
|
|||
#include "srsran/phy/mimo/precoding.h"
|
||||
#include "srsran/phy/modem/demod_soft.h"
|
||||
|
||||
///@brief Default number of zero RE around DC
|
||||
#define PDSCH_NR_DEFAULT_NOF_ZERO_RE_AROUND_DC 3
|
||||
|
||||
int pdsch_nr_init_common(srsran_pdsch_nr_t* q, const srsran_pdsch_nr_args_t* args)
|
||||
{
|
||||
SRSRAN_MEM_ZERO(q, srsran_pdsch_nr_t, 1);
|
||||
|
@ -34,14 +31,6 @@ int pdsch_nr_init_common(srsran_pdsch_nr_t* q, const srsran_pdsch_nr_args_t* arg
|
|||
}
|
||||
}
|
||||
|
||||
if (!args->disable_zero_re_around_dc) {
|
||||
if (args->nof_zero_re_around_dc == 0) {
|
||||
q->nof_zero_re_around_dc = PDSCH_NR_DEFAULT_NOF_ZERO_RE_AROUND_DC;
|
||||
} else {
|
||||
q->nof_zero_re_around_dc = args->nof_zero_re_around_dc;
|
||||
}
|
||||
}
|
||||
|
||||
return SRSRAN_SUCCESS;
|
||||
}
|
||||
|
||||
|
@ -250,23 +239,7 @@ static int srsran_pdsch_nr_cp(const srsran_pdsch_nr_t* q,
|
|||
if (put) {
|
||||
count += pdsch_nr_put_rb(&sf_symbols[re_idx], &symbols[count], &rvd_mask[rb * SRSRAN_NRE]);
|
||||
} else {
|
||||
uint32_t k_begin = rb * SRSRAN_NRE;
|
||||
uint32_t k_end = (rb + 1) * SRSRAN_NRE;
|
||||
uint32_t k_dc_begin = q->carrier.nof_prb * SRSRAN_NRE / 2 - q->nof_zero_re_around_dc / 2;
|
||||
uint32_t k_dc_end = q->carrier.nof_prb * SRSRAN_NRE / 2 + SRSRAN_CEIL(q->nof_zero_re_around_dc, 2);
|
||||
if (k_begin <= k_dc_end && k_end >= k_dc_begin && q->nof_zero_re_around_dc > 0) {
|
||||
for (uint32_t k = k_begin; k < k_end; k++) {
|
||||
if (!rvd_mask[k]) {
|
||||
if (k >= k_dc_begin && k < k_dc_end) {
|
||||
symbols[count++] = 0.0f;
|
||||
} else {
|
||||
symbols[count++] = sf_symbols[q->carrier.nof_prb * l * SRSRAN_NRE + k];
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
count += pdsch_nr_get_rb(&symbols[count], &sf_symbols[re_idx], &rvd_mask[rb * SRSRAN_NRE]);
|
||||
}
|
||||
count += pdsch_nr_get_rb(&symbols[count], &sf_symbols[re_idx], &rvd_mask[rb * SRSRAN_NRE]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -214,7 +214,6 @@ int main(int argc, char** argv)
|
|||
ue_dl_args.pdsch.sch.disable_simd = false;
|
||||
ue_dl_args.pdsch.sch.decoder_use_flooded = false;
|
||||
ue_dl_args.pdsch.measure_evm = true;
|
||||
ue_dl_args.pdsch.disable_zero_re_around_dc = true;
|
||||
ue_dl_args.pdcch.disable_simd = false;
|
||||
ue_dl_args.pdcch.measure_evm = true;
|
||||
ue_dl_args.nof_max_prb = carrier.nof_prb;
|
||||
|
|
Loading…
Reference in New Issue