diff --git a/openair1/PHY/NR_TRANSPORT/nr_prs.c b/openair1/PHY/NR_TRANSPORT/nr_prs.c index 6326863aad59e090efaf6a7506a15337f1cbdc2d..55111333d865986d5aef12ece8c2cfb704efa0a5 100644 --- a/openair1/PHY/NR_TRANSPORT/nr_prs.c +++ b/openair1/PHY/NR_TRANSPORT/nr_prs.c @@ -4,8 +4,8 @@ #include "PHY/NR_REFSIG/nr_refsig.h" #include "PHY/sse_intrin.h" -#define DEBUG_PRS_MOD -#define DEBUG_PRS_MAP +//#define DEBUG_PRS_MOD +//#define DEBUG_PRS_MAP extern short nr_qpsk_mod_table[8]; @@ -29,10 +29,8 @@ int nr_generate_prs(uint32_t **nr_gold_prs, int16_t mod_prs[NR_MAX_PRS_LENGTH<<1]; uint8_t idx=prs_data->NPRSID; - // PRS resource mapping with combsize=k which means PRS symbols exist in every k-th subcarrier in frequency domain // According to ts138.211 sec.7.4.1.7.2 - for (int l = prs_data->SymbolStart; l < prs_data->SymbolStart + prs_data->NumPRSSymbols; l++) { int symInd = l-prs_data->SymbolStart; @@ -50,31 +48,28 @@ int nr_generate_prs(uint32_t **nr_gold_prs, } k = (prs_data->REOffset+k_prime) % prs_data->CombSize + frame_parms->first_carrier_offset ; - - // QPSK modulation - for (int m = 0; m < (12/prs_data->CombSize) * prs_data->NumRB; m++) { idx = (((nr_gold_prs[l][(m<<1)>>5])>>((m<<1)&0x1f))&3); mod_prs[m<<1] = nr_qpsk_mod_table[idx<<1]; mod_prs[(m<<1)+1] = nr_qpsk_mod_table[(idx<<1) + 1]; #ifdef DEBUG_PRS_MOD -printf("m %d idx %d gold seq %d mod_prs %d %d\n", m, idx, nr_gold_prs[l][(m<<1)>>5], mod_prs[m<<1], mod_prs[(m<<1)+1]); + LOG_D("m %d idx %d gold seq %d mod_prs %d %d\n", m, idx, nr_gold_prs[l][(m<<1)>>5], mod_prs[m<<1], mod_prs[(m<<1)+1]); #endif #ifdef DEBUG_PRS_MAP -printf("m %d at k %d of l %d reIdx %d\n", m, k, l, (l*frame_parms->ofdm_symbol_size + k)<<1); + LOG_D("m %d at k %d of l %d reIdx %d\n", m, k, l, (l*frame_parms->ofdm_symbol_size + k)<<1); #endif ((int16_t *)txdataF)[(l*frame_parms->ofdm_symbol_size + k)<<1] = (amp * mod_prs[m<<1]) >> 15; ((int16_t *)txdataF)[((l*frame_parms->ofdm_symbol_size + k)<<1) + 1] = (amp * mod_prs[(m<<1) + 1]) >> 15; #ifdef DEBUG_PRS_MAP -printf("(%d,%d)\n", -((int16_t *)txdataF)[(l*frame_parms->ofdm_symbol_size + k)<<1], -((int16_t *)txdataF)[((l*frame_parms->ofdm_symbol_size + k)<<1)+1]); + LOG_D("(%d,%d)\n", + ((int16_t *)txdataF)[(l*frame_parms->ofdm_symbol_size + k)<<1], + ((int16_t *)txdataF)[((l*frame_parms->ofdm_symbol_size + k)<<1)+1]); #endif k = k + prs_data->CombSize; @@ -83,8 +78,7 @@ printf("(%d,%d)\n", k-=frame_parms->ofdm_symbol_size; } } -LOG_M("nr_prs.m", "prs",(int16_t *)&txdataF[0],frame_parms->samples_per_slot_wCP, 1, 1); -printf("first carrier offset: %d \n",frame_parms->first_carrier_offset); + LOG_M("nr_prs.m", "prs",(int16_t *)&txdataF[0],frame_parms->samples_per_slot_wCP, 1, 1); return 0; } diff --git a/openair1/PHY/NR_UE_ESTIMATION/nr_dl_channel_estimation.c b/openair1/PHY/NR_UE_ESTIMATION/nr_dl_channel_estimation.c index 96b8a956632f138bf96c6a493bf4389c03a4ff37..839ab1d702ae037a199b163641b50d04dcb7eb2e 100644 --- a/openair1/PHY/NR_UE_ESTIMATION/nr_dl_channel_estimation.c +++ b/openair1/PHY/NR_UE_ESTIMATION/nr_dl_channel_estimation.c @@ -81,7 +81,7 @@ int nr_prs_channel_estimation(PHY_VARS_NR_UE *ue, //re_offset k = re_offset = (prs_cfg->REOffset+k_prime) % prs_cfg->CombSize + frame_params->first_carrier_offset; - printf("PRS config l %d k_prime %d, re_offset %d :\nprs_cfg->SymbolStart %d\nprs_cfg->NumPRSSymbols %d\nprs_cfg->NumRB %d\nprs_cfg->CombSize %d\n", l, k_prime, re_offset, prs_cfg->SymbolStart, prs_cfg->NumPRSSymbols, prs_cfg->NumRB, prs_cfg->CombSize); + LOG_D("PRS config l %d k_prime %d, re_offset %d :\nprs_cfg->SymbolStart %d\nprs_cfg->NumPRSSymbols %d\nprs_cfg->NumRB %d\nprs_cfg->CombSize %d\n", l, k_prime, re_offset, prs_cfg->SymbolStart, prs_cfg->NumPRSSymbols, prs_cfg->NumRB, prs_cfg->CombSize); // Pilots generation and modulation for (int m = 0; m < (12/prs_cfg->CombSize)*prs_cfg->NumRB; m++) @@ -121,7 +121,7 @@ int nr_prs_channel_estimation(PHY_VARS_NR_UE *ue, break; default: - printf("nr=prs channel_estimation: k_prime=%d -> ERROR\n",k_prime); + LOG_I("nr=prs channel_estimation: k_prime=%d -> ERROR\n",k_prime); return(-1); break; } @@ -236,7 +236,7 @@ int nr_prs_channel_estimation(PHY_VARS_NR_UE *ue, break; default: - printf("nr=prs channel_estimation: k_prime=%d -> ERROR\n",k_prime); + LOG_I("nr=prs channel_estimation: k_prime=%d -> ERROR\n",k_prime); return(-1); break; } @@ -307,7 +307,7 @@ int nr_prs_channel_estimation(PHY_VARS_NR_UE *ue, } else { - printf("NR_PRS UE Channel EStimation: CombSize other than 2 and 4 are NOT supported currently! Returning"); + LOG_I("NR_PRS UE Channel EStimation: CombSize other than 2 and 4 are NOT supported currently! Returning"); return(0); } @@ -316,7 +316,7 @@ int nr_prs_channel_estimation(PHY_VARS_NR_UE *ue, { prs_chest[re_offset] = ch_intrp[re<<1]; prs_chest[re_offset+1] = ch_intrp[(re<<1)+1]; - printf("prs_ch[%d] %d %d\n", re_offset, ch_intrp[re<<1], ch_intrp[(re<<1)+1]); + LOG_D("prs_ch[%d] %d %d\n", re_offset, ch_intrp[re<<1], ch_intrp[(re<<1)+1]); re_offset = (re_offset+1) % frame_params->ofdm_symbol_size; } @@ -357,7 +357,7 @@ int nr_prs_channel_estimation(PHY_VARS_NR_UE *ue, break; default: - printf("unsupported ofdm symbol size \n"); + LOG_I("unsupported ofdm symbol size \n"); assert(0); } @@ -369,9 +369,9 @@ int nr_prs_channel_estimation(PHY_VARS_NR_UE *ue, memcpy((int16_t *)&ue->prs_ch_estimates_time[rxAnt][l*frame_params->ofdm_symbol_size + (frame_params->ofdm_symbol_size>>1)], &ch_time[0], (frame_params->ofdm_symbol_size>>1)*sizeof(int32_t)); } //for l - LOG_M("rxSigF.m","rxF",&rxdataF[rxAnt][prs_cfg->SymbolStart*frame_params->ofdm_symbol_size], prs_cfg->NumPRSSymbols*frame_params->ofdm_symbol_size,1,1); - LOG_M("prsEstF.m","prs_chest",&ue->prs_ch_estimates[rxAnt][prs_cfg->SymbolStart*frame_params->ofdm_symbol_size], prs_cfg->NumPRSSymbols*frame_params->ofdm_symbol_size,1,1); - LOG_M("prsEstT.m","prs_chest_time",&ue->prs_ch_estimates_time[rxAnt][prs_cfg->SymbolStart*frame_params->ofdm_symbol_size], prs_cfg->NumPRSSymbols*frame_params->ofdm_symbol_size,1,1); + LOG_M("rxSigF.m","rxF",&rxdataF[rxAnt][0], frame_params->symbols_per_slot*frame_params->ofdm_symbol_size,1,1); + LOG_M("prsEstF.m","prs_chestF",&ue->prs_ch_estimates[rxAnt][prs_cfg->SymbolStart*frame_params->ofdm_symbol_size], prs_cfg->NumPRSSymbols*frame_params->ofdm_symbol_size,1,1); + LOG_M("prsEstT.m","prs_chestT",&ue->prs_ch_estimates_time[rxAnt][prs_cfg->SymbolStart*frame_params->ofdm_symbol_size], prs_cfg->NumPRSSymbols*frame_params->ofdm_symbol_size,1,1); T(T_UE_PHY_DL_CHANNEL_ESTIMATE, T_INT(0), T_INT(proc->frame_rx), T_INT(proc->nr_slot_rx), diff --git a/openair1/SCHED_NR/phy_procedures_nr_gNB.c b/openair1/SCHED_NR/phy_procedures_nr_gNB.c index 68e7c40f02bbcb01654315d60b1c70f340fc57ad..11a19cc189edca6297c27630971292da7e46c037 100644 --- a/openair1/SCHED_NR/phy_procedures_nr_gNB.c +++ b/openair1/SCHED_NR/phy_procedures_nr_gNB.c @@ -141,7 +141,7 @@ void nr_common_signal_procedures (PHY_VARS_gNB *gNB,int frame,int slot,nfapi_nr_ ssb_start_symbol, n_hf, frame, cfg, fp); - LOG_M("txsigF0.m","txsF0", gNB->common_vars.txdataF[0],fp->samples_per_subframe_wCP,1,1); + LOG_M("txsigF0.m","txsF0", gNB->common_vars.txdataF[txdataF_offset],fp->samples_per_subframe_wCP,1,1); } diff --git a/openair1/SCHED_NR_UE/phy_procedures_nr_ue.c b/openair1/SCHED_NR_UE/phy_procedures_nr_ue.c index 0bee6db8f7a85ff4bceb3d95b4e8be0a2c3664b9..321a7b0d5d816ec12d04ff79acef04487069a709 100644 --- a/openair1/SCHED_NR_UE/phy_procedures_nr_ue.c +++ b/openair1/SCHED_NR_UE/phy_procedures_nr_ue.c @@ -1758,7 +1758,7 @@ int phy_procedures_nrUE_RX(PHY_VARS_NR_UE *ue, { nr_slot_fep(ue, proc, - j, + (j%fp->symbols_per_slot), nr_slot_rx); }