diff --git a/lib/examples/pdsch_enodeb.c b/lib/examples/pdsch_enodeb.c index 882273ac2..2ee5f5b40 100644 --- a/lib/examples/pdsch_enodeb.c +++ b/lib/examples/pdsch_enodeb.c @@ -728,7 +728,7 @@ int main(int argc, char **argv) { uint8_t mch_table[10]; bzero(&mch_table[0], sizeof(uint8_t)*10); - if(mbsfn_area_id < -1) { + if(mbsfn_area_id > -1) { generate_mcch_table(mch_table, mbsfn_sf_mask); } N_id_2 = cell.id % 3; diff --git a/lib/examples/pdsch_ue.c b/lib/examples/pdsch_ue.c index 91c1bddfe..d9ee074cc 100644 --- a/lib/examples/pdsch_ue.c +++ b/lib/examples/pdsch_ue.c @@ -380,7 +380,7 @@ int main(int argc, char **argv) { } uint8_t mch_table[10]; bzero(&mch_table[0], sizeof(uint8_t)*10); - if(prog_args.mbsfn_area_id < -1) { + if(prog_args.mbsfn_area_id > -1) { generate_mcch_table(mch_table, prog_args.mbsfn_sf_mask); } if(prog_args.cpu_affinity > -1) { diff --git a/lib/src/phy/ch_estimation/chest_dl.c b/lib/src/phy/ch_estimation/chest_dl.c index 59f54e87e..1deb53489 100644 --- a/lib/src/phy/ch_estimation/chest_dl.c +++ b/lib/src/phy/ch_estimation/chest_dl.c @@ -257,6 +257,10 @@ int srslte_chest_dl_set_cell(srslte_chest_dl_t *q, srslte_cell_t cell) fprintf(stderr, "Error initializing interpolator\n"); return SRSLTE_ERROR; } + if (srslte_interp_linear_resize(&q->srslte_interp_lin_mbsfn, 6*q->cell.nof_prb, SRSLTE_NRE/6)) { + fprintf(stderr, "Error initializing interpolator\n"); + return SRSLTE_ERROR; + } } ret = SRSLTE_SUCCESS; @@ -386,7 +390,8 @@ static void interpolate_pilots(srslte_chest_dl_t *q, cf_t *pilot_estimates, cf_t fidx_offset = srslte_refsignal_mbsfn_fidx(l - 1); srslte_interp_linear_offset(&q->srslte_interp_lin_mbsfn, &pilot_estimates[(2*q->cell.nof_prb) + 6*q->cell.nof_prb*(l - 1)], &ce[srslte_refsignal_mbsfn_nsymbol(l - 1) * q->cell.nof_prb * SRSLTE_NRE], - fidx_offset, SRSLTE_NRE/6-fidx_offset); + fidx_offset, (fidx_offset)?0:1); + } } else { if (q->average_subframe) {