printf("Error in number of subcarrier in channel estimation\n");
break;
}
ul_sc_start=get_UL_sc_start_NB_IoT(I_sc);// NB-IoT: get the used subcarrier in RB
u=frame_parms->npusch_config_common.ul_ReferenceSignalsNPUSCH.grouphop[n_s][index_Nsc_RU];// Vincent: may be adapted for Nsc_RU, see 36.211, Section 10.1.4.1.3
ul_sc_start=get_UL_sc_start_NB_IoT(I_sc);// NB-IoT: get the used subcarrier in RB
u=frame_parms->npusch_config_common.ul_ReferenceSignalsNPUSCH.grouphop[Ns+(subframe<<1)][index_Nsc_RU];// Vincent: may be adapted for Nsc_RU, see 36.211, Section 10.1.4.1.3
// #endif
// #endif
// if (l == (3 - frame_parms->Ncp)) {
if(l==3){// NB-IoT: no extended CP
// rx_power_correction = 1;
// ul_sc_start = get_UL_sc_start_NB_IoT(I_sc); // NB-IoT: get the used subcarrier in RB
// u=frame_parms->npusch_config_common.ul_ReferenceSignalsNPUSCH.grouphop[Ns+(subframe<<1)][index_Nsc_RU]; // Vincent: may be adapted for Nsc_RU, see 36.211, Section 10.1.4.1.3
// //Extracting Channel Estimates for Distributed Alamouti Receiver Combining
// temp_in_ifft_ptr = &temp_in_ifft_1[0];
// i = symbol_offset;
// for(j=0; j<(frame_parms->N_RB_UL*12); j++) {
// temp_in_ifft_ptr[j] = ul_ch_estimates[aa][i];
// i++;
// }
// switch (frame_parms->N_RB_DL) {
// case 6:
// idft128((int16_t*) &temp_in_ifft_0[0], // Performing IFFT on Combined Channel Estimates
// temp_out_ifft_0,
// 1);
// idft128((int16_t*) &temp_in_ifft_1[0], // Performing IFFT on Combined Channel Estimates
// temp_out_ifft_1,
// 1);
// break;
// case 25:
// idft512((int16_t*) &temp_in_ifft_0[0], // Performing IFFT on Combined Channel Estimates
// temp_out_ifft_0,
// 1);
// idft512((int16_t*) &temp_in_ifft_1[0], // Performing IFFT on Combined Channel Estimates
// temp_out_ifft_1,
// 1);
// break;
// case 50:
// idft1024((int16_t*) &temp_in_ifft_0[0], // Performing IFFT on Combined Channel Estimates
// temp_out_ifft_0,
// 1);
// idft1024((int16_t*) &temp_in_ifft_1[0], // Performing IFFT on Combined Channel Estimates
// temp_out_ifft_1,
// 1);
// break;
// case 100:
// idft2048((int16_t*) &temp_in_ifft_0[0], // Performing IFFT on Combined Channel Estimates
// temp_out_ifft_0,
// 1);
// idft2048((int16_t*) &temp_in_ifft_1[0], // Performing IFFT on Combined Channel Estimates
// temp_out_ifft_1,
// 1);
// break;
// }
// // because the ifft is not power preserving, we should apply the factor sqrt(power_correction) here, but we rather apply power_correction here and nothing after the next fft
// // // because the ifft is not power preserving, we should apply the factor sqrt(power_correction) here, but we rather apply power_correction here and nothing after the next fft
@@ -733,6 +733,7 @@ int ulsch_decoding_data_2thread(PHY_VARS_eNB *eNB,int UE_id,int harq_pid,int llr
return( (ret>proc->tdp.ret) ? ret : proc->tdp.ret );
}
*/
/*
// NB_IoT: functions in ulsch_decoding_data_NB_IoT must be defined
...
...
@@ -983,7 +984,7 @@ unsigned int ulsch_decoding_NB_IoT(PHY_VARS_eNB_NB_IoT *eNB,
// x1 is set in lte_gold_generic
// x2 should not reinitialized each subframe
// x2 should be reinitialized according to 36.211 Sections 10.1.3.1 and 10.1.3.6
x2=((uint32_t)ulsch->rnti<<14)+((uint32_t)subframe<<9)+(((uint32_t)proc->frame_rx%2)<<13)+frame_parms->Nid_cell;//this is c_init in 36.211 Sec 6.3.1
x2=((uint32_t)ulsch->rnti<<14)+((uint32_t)subframe<<9)+(((uint32_t)proc->frame_rx%2)<<13)+frame_parms->Nid_cell;//this is c_init in 36.211 Sec 10.1.3.1
ulsch_harq=ulsch->harq_process;
if(harq_pid==255){
...
...
@@ -1000,7 +1001,8 @@ unsigned int ulsch_decoding_NB_IoT(PHY_VARS_eNB_NB_IoT *eNB,
/* ----------------------- Segmentation */
nb_rb=ulsch_harq->nb_rb;// nb_rb set but not used ??
// nb_rb = ulsch_harq->nb_rb; // nb_rb set but not used ??