diff --git a/openair1/PHY/LTE_TRANSPORT/dlsch_demodulation.c b/openair1/PHY/LTE_TRANSPORT/dlsch_demodulation.c index 963d03a35ee2c55251c32456311102ef4c04e5e7..f87835e2bdeb1a5f836b3f8994d651e88fa238e4 100644 --- a/openair1/PHY/LTE_TRANSPORT/dlsch_demodulation.c +++ b/openair1/PHY/LTE_TRANSPORT/dlsch_demodulation.c @@ -439,10 +439,18 @@ int rx_pdsch(PHY_VARS_UE *phy_vars_ue, if (rx_type>rx_standard) { - // interf_unaw_shift_tm4_mcs is to avoid tails in SNR/BLER curves - avg[0] = log2_approx(avg[0]) - 13 + offset_mumimo_llr_drange[dlsch0_harq->mcs][(dlsch1_harq->Qm>>1)-1]; - lte_ue_pdsch_vars[eNB_id]->log2_maxh0 = (log2_approx(avg[0])/2) +interf_unaw_shift_tm4_mcs[dlsch0_harq->mcs];//+offset_mumimo_llr_drange[dlsch0_harq->mcs][(get_Qm(dlsch1_harq->mcs)>>1)-1]; - lte_ue_pdsch_vars[eNB_id]->log2_maxh1 = (log2_approx(avg[0])/2) +interf_unaw_shift_tm4_mcs[dlsch1_harq->mcs];//+offset_mumimo_llr_drange[dlsch1_harq->mcs][(get_Qm(dlsch0_harq->mcs)>>1)-1]; + // !!!!! Right now in testing mode for -gS channel ONLY. We investigate if any + // additional gain/penalty needs to be introduced in comparison with I-UA receiver + // by comparing performances if run with -u2 and -u0. + // this is valid only if same mcs are used. We calibrate for mcs 4. Best shift value is 3. + // MCS-dependent LUT will be introduced. + avg[0] = (log2_approx(avg[0])/2) - 13 + interf_unaw_shift; + lte_ue_pdsch_vars[eNB_id]->log2_maxh0 = cmax(avg[0],0); + lte_ue_pdsch_vars[eNB_id]->log2_maxh1 = cmax(avg[0],0); + + //avg[0] = log2_approx(avg[0]) - 13 + offset_mumimo_llr_drange[dlsch0_harq->mcs][(dlsch1_harq->Qm>>1)-1]; + //lte_ue_pdsch_vars[eNB_id]->log2_maxh0 = (log2_approx(avg[0])/2) +interf_unaw_shift_tm4_mcs[dlsch0_harq->mcs];//+offset_mumimo_llr_drange[dlsch0_harq->mcs][(get_Qm(dlsch1_harq->mcs)>>1)-1]; + //lte_ue_pdsch_vars[eNB_id]->log2_maxh1 = (log2_approx(avg[0])/2) +interf_unaw_shift_tm4_mcs[dlsch1_harq->mcs];//+offset_mumimo_llr_drange[dlsch1_harq->mcs][(get_Qm(dlsch0_harq->mcs)>>1)-1]; //printf("TM4 I-A shift layer1 = %d\n",interf_unaw_shift_tm4_mcs[dlsch0_harq->mcs]); //printf("TM4 I-A shift layer2 = %d\n",interf_unaw_shift_tm4_mcs[dlsch1_harq->mcs] ); @@ -450,7 +458,9 @@ int rx_pdsch(PHY_VARS_UE *phy_vars_ue, } else - // to avoid tails in SNR/BLER curves + // to avoid tails in SNR/BLER curves. -13 is needed to make shift a positive number. + // this is valid only if same mcs are used. We calibrate for mcs 4. Best shift value is 3. + // MCS-dependent LUT will be introduced. avg[0] = (log2_approx(avg[0])/2) - 13 + interf_unaw_shift; lte_ue_pdsch_vars[eNB_id]->log2_maxh0 = cmax(avg[0],0); lte_ue_pdsch_vars[eNB_id]->log2_maxh1 = cmax(avg[0],0);