bugfixing for UL. Remaining problems: CCE allocations in subframe 5 lead to occasional illegal DCI allocations (affects UL DCI which is missed by UE). waveform compliance with CQI in ULSCH.

This commit is contained in:
Raymond Knopp
2016-04-10 23:25:58 +02:00
parent 15cd4ab077
commit 2dfe84a7e4
16 changed files with 810 additions and 1216 deletions
+2 -2
View File
@@ -99,7 +99,7 @@ uint64_t DLSCH_alloc_pdu_1[2];
#define CCCH_RB_ALLOC computeRIV(PHY_vars_eNB->lte_frame_parms.N_RB_UL,0,2)
//#define DLSCH_RB_ALLOC 0x1fbf // igore DC component,RB13
//#define DLSCH_RB_ALLOC 0x0001
void do_OFDM_mod_l(mod_sym_t **txdataF, int32_t **txdata, uint16_t next_slot, LTE_DL_FRAME_PARMS *frame_parms)
void do_OFDM_mod_l(int32_t **txdataF, int32_t **txdata, uint16_t next_slot, LTE_DL_FRAME_PARMS *frame_parms)
{
int aa, slot_offset, slot_offset_F;
@@ -2111,7 +2111,7 @@ PMI_FEEDBACK:
// printf("Trial %d : Round %d, pmi_feedback %d \n",trials,round,pmi_feedback);
for (aa=0; aa<PHY_vars_eNB->lte_frame_parms.nb_antennas_tx; aa++) {
memset(&PHY_vars_eNB->lte_eNB_common_vars.txdataF[eNB_id][aa][0],0,FRAME_LENGTH_COMPLEX_SAMPLES_NO_PREFIX*sizeof(mod_sym_t));
memset(&PHY_vars_eNB->lte_eNB_common_vars.txdataF[eNB_id][aa][0],0,FRAME_LENGTH_COMPLEX_SAMPLES_NO_PREFIX*sizeof(int32_t));
}
if (input_fd==NULL) {
+1 -2
View File
@@ -131,7 +131,6 @@ int main(int argc, char **argv)
double sigma2, sigma2_dB=0,SNR,snr0=-2.0,snr1=0.0;
uint8_t snr1set=0;
double snr_step=1,input_snr_step=1;
//mod_sym_t **txdataF;
int **txdata;
double **s_re,**s_im,**r_re,**r_im;
double iqim = 0.0;
@@ -451,7 +450,7 @@ int main(int argc, char **argv)
//if (trials%100==0)
//eNB2UE[0]->first_run = 1;
eNB2UE->first_run = 1;
memset(&PHY_vars_eNB->lte_eNB_common_vars.txdataF[0][0][0],0,FRAME_LENGTH_COMPLEX_SAMPLES_NO_PREFIX*sizeof(mod_sym_t));
memset(&PHY_vars_eNB->lte_eNB_common_vars.txdataF[0][0][0],0,FRAME_LENGTH_COMPLEX_SAMPLES_NO_PREFIX*sizeof(int32_t));
generate_mch(PHY_vars_eNB,sched_subframe,input_buffer,0);
+6 -7
View File
@@ -57,11 +57,11 @@ PHY_VARS_UE *PHY_vars_UE;
#define DLSCH_RB_ALLOC 0x1fbf // igore DC component,RB13
mod_sym_t *dummybuf[4];
mod_sym_t dummy0[2048*14];
mod_sym_t dummy1[2048*14];
mod_sym_t dummy2[2048*14];
mod_sym_t dummy3[2048*14];
int32_t *dummybuf[4];
int32_t dummy0[2048*14];
int32_t dummy1[2048*14];
int32_t dummy2[2048*14];
int32_t dummy3[2048*14];
int main(int argc, char **argv)
@@ -72,7 +72,6 @@ int main(int argc, char **argv)
int i,l,aa;
double sigma2, sigma2_dB=0,SNR,snr0=-2.0,snr1;
uint8_t snr1set=0;
//mod_sym_t **txdataF;
int **txdata,**txdata1,**txdata2;
double **s_re,**s_im,**s_re1,**s_im1,**s_re2,**s_im2,**r_re,**r_im,**r_re1,**r_im1,**r_re2,**r_im2;
double iqim = 0.0;
@@ -603,7 +602,7 @@ int main(int argc, char **argv)
dummybuf[2] = dummy2;
dummybuf[3] = dummy3;
generate_pbch(&PHY_vars_eNB->lte_eNB_pbch,
(mod_sym_t**)dummybuf,
(int32_t**)dummybuf,
AMP,
&PHY_vars_eNB->lte_frame_parms,
pbch_pdu,
+3 -4
View File
@@ -410,7 +410,6 @@ int main(int argc, char **argv)
int i,l,aa;
double sigma2, sigma2_dB=0,SNR,snr0=-2.0,snr1;
//mod_sym_t **txdataF;
int **txdata;
double **s_re,**s_im,**r_re,**r_im;
@@ -773,8 +772,8 @@ int main(int argc, char **argv)
PHY_vars_eNB->ulsch_eNB[0] = new_eNB_ulsch(8,MAX_TURBO_ITERATIONS,N_RB_DL,0);
PHY_vars_UE->ulsch_ue[0] = new_ue_ulsch(8,N_RB_DL,0);
PHY_vars_eNB->ulsch_eNB[0] = new_eNB_ulsch(MAX_TURBO_ITERATIONS,N_RB_DL,0);
PHY_vars_UE->ulsch_ue[0] = new_ue_ulsch(N_RB_DL,0);
PHY_vars_eNB->proc[subframe].frame_tx = 0;
@@ -838,7 +837,7 @@ int main(int argc, char **argv)
// printf("DCI (SF %d): txdataF %p (0 %p)\n",subframe,&PHY_vars_eNB->lte_eNB_common_vars.txdataF[eNb_id][aa][512*14*subframe],&PHY_vars_eNB->lte_eNB_common_vars.txdataF[eNb_id][aa][0]);
for (aa=0; aa<PHY_vars_eNB->lte_frame_parms.nb_antennas_tx_eNB; aa++) {
memset(&PHY_vars_eNB->lte_eNB_common_vars.txdataF[eNb_id][aa][0],0,FRAME_LENGTH_COMPLEX_SAMPLES_NO_PREFIX*sizeof(mod_sym_t));
memset(&PHY_vars_eNB->lte_eNB_common_vars.txdataF[eNb_id][aa][0],0,FRAME_LENGTH_COMPLEX_SAMPLES_NO_PREFIX*sizeof(int32_t));
/*
re_offset = PHY_vars_eNB->lte_frame_parms.first_carrier_offset;
+2 -2
View File
@@ -635,8 +635,8 @@ int main(int argc, char **argv)
UE2eNB->max_Doppler = maxDoppler;
// NN: N_RB_UL has to be defined in ulsim
PHY_vars_eNB->ulsch_eNB[0] = new_eNB_ulsch(8,max_turbo_iterations,N_RB_DL,0);
PHY_vars_UE->ulsch_ue[0] = new_ue_ulsch(8,N_RB_DL,0);
PHY_vars_eNB->ulsch_eNB[0] = new_eNB_ulsch(max_turbo_iterations,N_RB_DL,0);
PHY_vars_UE->ulsch_ue[0] = new_ue_ulsch(N_RB_DL,0);
// Create transport channel structures for 2 transport blocks (MIMO)
for (i=0; i<2; i++) {