Fixing FDD for TM4
This commit is contained in:
@@ -1586,7 +1586,7 @@ int generate_eNB_dlsch_params_from_dci(int frame,
|
||||
dlsch0_harq->mimo_mode = DUALSTREAM_PUSCH_PRECODING;
|
||||
dlsch0_harq->pmi_alloc = DL_pmi_single;
|
||||
dlsch1_harq->mimo_mode = DUALSTREAM_PUSCH_PRECODING;
|
||||
dlsch1_harq->pmi_alloc = DL_pmi_single; //this is actually never used, since the PMI for the second codeword is always the opposote of the first one
|
||||
dlsch1_harq->pmi_alloc = DL_pmi_single;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
@@ -3337,7 +3337,8 @@ int dump_dci(LTE_DL_FRAME_PARMS *frame_parms, DCI_ALLOC_t *dci)
|
||||
break;
|
||||
|
||||
case 25:
|
||||
LOG_D(PHY,"DCI format2 2 antennas (FDD, 5 MHz), rnti %x (%x): rah %d, rb_alloc %x, mcs %d, harq_pid %d, ndi %d, RV %d, TPC %d\n",
|
||||
//LOG_D
|
||||
printf("DCI format2 2 antennas (FDD, 5 MHz), rnti %x (%x): rah %d, rb_alloc %x, mcs1 %d, mcs2 %d, harq_pid %d, ndi1 %d, ndi2 %d, RV1 %d, RV2 %d, swap %d, TPMI %d, TPC %d\n",
|
||||
dci->rnti,
|
||||
((uint32_t*)&dci->dci_pdu)[0],
|
||||
((DCI2_5MHz_2A_FDD_t *)&dci->dci_pdu[0])->rah,
|
||||
@@ -4772,8 +4773,10 @@ int generate_ue_dlsch_params_from_dci(int frame,
|
||||
return(-1);
|
||||
}
|
||||
|
||||
|
||||
tbswap = ((DCI2_5MHz_2A_TDD_t *)dci_pdu)->tb_swap;
|
||||
if (frame_type == TDD)
|
||||
tbswap = ((DCI2_5MHz_2A_TDD_t *)dci_pdu)->tb_swap;
|
||||
else
|
||||
tbswap = ((DCI2_5MHz_2A_FDD_t *)dci_pdu)->tb_swap;
|
||||
|
||||
if (tbswap == 0) {
|
||||
dlsch0 = dlsch[0];
|
||||
@@ -5899,7 +5902,7 @@ uint16_t quantize_subband_pmi(PHY_MEASUREMENTS *meas,uint8_t eNB_id,int nb_rb)
|
||||
else
|
||||
pmiq = PMI_2A_R1_1j;
|
||||
|
||||
// printf("subband %d, pmi_re %d, pmi_im %d, pmiq %d \n",i,pmi_re,pmi_im,pmiq);
|
||||
// printf("subband %d, pmi_re %d, pmi_im %d, pmiq %d \n",i,pmi_re,pmi_im,pmiq);
|
||||
// printf("subband %d, pmi%d \n",i,pmiq);
|
||||
//According to Section 7.2.4 of 36.213
|
||||
|
||||
|
||||
@@ -776,9 +776,7 @@ int allocate_REs_in_RB(LTE_DL_FRAME_PARMS *frame_parms,
|
||||
else if ((mimo_mode >= DUALSTREAM_UNIFORM_PRECODING1)&&(mimo_mode <= DUALSTREAM_PUSCH_PRECODING)) {
|
||||
// this is for transmission mode 4 (1 layer)
|
||||
*re_allocated = *re_allocated + 1;
|
||||
//amp = (int16_t)(((int32_t)tmp_amp*ONE_OVER_SQRT2_Q15)>>15);
|
||||
amp = tmp_amp/2;
|
||||
gain_lin_QPSK = (int16_t)((amp*ONE_OVER_SQRT2_Q15)>>15);
|
||||
|
||||
|
||||
if (precoder_index==0) {
|
||||
precoder_index0 = 0; //[1 1]
|
||||
|
||||
@@ -1785,7 +1785,7 @@ n(tikz_fname,"w");
|
||||
}
|
||||
|
||||
printf ("TM4 with tpmi =%d\n", ((DCI2_5MHz_2A_TDD_t *)&DLSCH_alloc_pdu_1[k])->tpmi);
|
||||
if (((DCI2_5MHz_2A_TDD_t *)&DLSCH_alloc_pdu_1[k])->tpmi == 2) {
|
||||
if ((((DCI2_5MHz_2A_TDD_t *)&DLSCH_alloc_pdu_1[k])->tpmi == 2) || (((DCI2_5MHz_2A_FDD_t *)&DLSCH_alloc_pdu_1[k])->tpmi == 2)) {
|
||||
|
||||
PHY_vars_eNB->eNB_UE_stats[0].DL_pmi_single = (unsigned short)(taus()&0xffff);
|
||||
|
||||
@@ -2771,7 +2771,7 @@ n(tikz_fname,"w");
|
||||
}
|
||||
|
||||
|
||||
if (transmission_mode==4 && (((DCI2_5MHz_2A_TDD_t *)&DLSCH_alloc_pdu_1[k])->tpmi == 2)){
|
||||
if (transmission_mode==4 && ((((DCI2_5MHz_2A_TDD_t *)&DLSCH_alloc_pdu_1[k])->tpmi == 2) ||(((DCI2_5MHz_2A_FDD_t *)&DLSCH_alloc_pdu_1[k])->tpmi == 2))){
|
||||
PHY_vars_eNB->dlsch_eNB[0][0]->harq_processes[0]->pmi_alloc = quantize_subband_pmi(&PHY_vars_UE->PHY_measurements,0,PHY_vars_eNB->lte_frame_parms.N_RB_DL);
|
||||
PHY_vars_UE->dlsch_ue[0][0]->pmi_alloc = quantize_subband_pmi(&PHY_vars_UE->PHY_measurements,0,PHY_vars_UE->lte_frame_parms.N_RB_DL);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user