commit before merge
This commit is contained in:
@@ -858,37 +858,37 @@ void rx_nr_prach(PHY_VARS_gNB *gNB,
|
|||||||
|
|
||||||
memset(prachF, 0, sizeof(int16_t)*2*1024 );
|
memset(prachF, 0, sizeof(int16_t)*2*1024 );
|
||||||
if (LOG_DUMPFLAG(PRACH)) {
|
if (LOG_DUMPFLAG(PRACH)) {
|
||||||
LOG_M("prach_rxF0.m","prach_rxF0",rxsigF[0],N_ZC,1,1);
|
LOG_M("prach_rxF0.m","prach_rxF0",rxsigF[0],N_ZC,1,1);
|
||||||
LOG_M("prach_rxF1.m","prach_rxF1",rxsigF[1],6144,1,1);
|
LOG_M("prach_rxF1.m","prach_rxF1",rxsigF[1],6144,1,1);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (aa=0;aa<nb_rx; aa++) {
|
for (aa=0;aa<nb_rx; aa++) {
|
||||||
// Do componentwise product with Xu* on each antenna
|
// Do componentwise product with Xu* on each antenna
|
||||||
|
|
||||||
for (offset=0; offset<(N_ZC<<1); offset+=2) {
|
for (offset=0; offset<(N_ZC<<1); offset+=2) {
|
||||||
prachF[offset] = (int16_t)(((int32_t)Xu[offset]*rxsigF[aa][offset] + (int32_t)Xu[offset+1]*rxsigF[aa][offset+1])>>15);
|
prachF[offset] = (int16_t)(((int32_t)Xu[offset]*rxsigF[aa][offset] + (int32_t)Xu[offset+1]*rxsigF[aa][offset+1])>>15);
|
||||||
prachF[offset+1] = (int16_t)(((int32_t)Xu[offset]*rxsigF[aa][offset+1] - (int32_t)Xu[offset+1]*rxsigF[aa][offset])>>15);
|
prachF[offset+1] = (int16_t)(((int32_t)Xu[offset]*rxsigF[aa][offset+1] - (int32_t)Xu[offset+1]*rxsigF[aa][offset])>>15);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Now do IFFT of size 1024 (N_ZC=839) or 256 (N_ZC=139)
|
// Now do IFFT of size 1024 (N_ZC=839) or 256 (N_ZC=139)
|
||||||
if (N_ZC == 839) {
|
if (N_ZC == 839) {
|
||||||
log2_ifft_size = 10;
|
log2_ifft_size = 10;
|
||||||
idft(IDFT_1024,prachF,prach_ifft_tmp,1);
|
idft(IDFT_1024,prachF,prach_ifft_tmp,1);
|
||||||
// compute energy and accumulate over receive antennas
|
// compute energy and accumulate over receive antennas
|
||||||
for (i=0;i<2048;i++)
|
for (i=0;i<2048;i++)
|
||||||
prach_ifft[i] += ((int32_t)prach_ifft_tmp[i<<1]*(int32_t)prach_ifft_tmp[i<<1] + (int32_t)prach_ifft_tmp[1+(i<<1)]*(int32_t)prach_ifft_tmp[1+(i<<1)])>>10;
|
prach_ifft[i] += ((int32_t)prach_ifft_tmp[i<<1]*(int32_t)prach_ifft_tmp[i<<1] + (int32_t)prach_ifft_tmp[1+(i<<1)]*(int32_t)prach_ifft_tmp[1+(i<<1)])/nb_rx;
|
||||||
} else {
|
} else {
|
||||||
idft(IDFT_256,prachF,prach_ifft_tmp,1);
|
idft(IDFT_256,prachF,prach_ifft_tmp,1);
|
||||||
log2_ifft_size = 8;
|
log2_ifft_size = 8;
|
||||||
// compute energy and accumulate over receive antennas and repetitions for BR
|
// compute energy and accumulate over receive antennas and repetitions for BR
|
||||||
for (i=0;i<256;i++)
|
for (i=0;i<256;i++)
|
||||||
prach_ifft[i] += ((int32_t)prach_ifft_tmp[i<<1]*(int32_t)prach_ifft_tmp[(i<<1)] + (int32_t)prach_ifft_tmp[1+(i<<1)]*(int32_t)prach_ifft_tmp[1+(i<<1)])>>10;
|
prach_ifft[i] += ((int32_t)prach_ifft_tmp[i<<1]*(int32_t)prach_ifft_tmp[(i<<1)] + (int32_t)prach_ifft_tmp[1+(i<<1)]*(int32_t)prach_ifft_tmp[1+(i<<1)])/nb_rx;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (LOG_DUMPFLAG(PRACH)) {
|
if (LOG_DUMPFLAG(PRACH)) {
|
||||||
if (aa==0) LOG_M("prach_rxF_comp0.m","prach_rxF_comp0",prachF,1024,1,1);
|
if (aa==0) LOG_M("prach_rxF_comp0.m","prach_rxF_comp0",prachF,1024,1,1);
|
||||||
if (aa==1) LOG_M("prach_rxF_comp1.m","prach_rxF_comp1",prachF,1024,1,1);
|
if (aa==1) LOG_M("prach_rxF_comp1.m","prach_rxF_comp1",prachF,1024,1,1);
|
||||||
}
|
}
|
||||||
}// antennas_rx
|
}// antennas_rx
|
||||||
} // new dft
|
} // new dft
|
||||||
|
|
||||||
@@ -900,10 +900,10 @@ void rx_nr_prach(PHY_VARS_gNB *gNB,
|
|||||||
lev = (int32_t)prach_ifft[(preamble_shift2+i)];
|
lev = (int32_t)prach_ifft[(preamble_shift2+i)];
|
||||||
levdB = dB_fixed_times10(lev);
|
levdB = dB_fixed_times10(lev);
|
||||||
if (levdB>*max_preamble_energy) {
|
if (levdB>*max_preamble_energy) {
|
||||||
LOG_D(PHY,"preamble_index %d, delay %d en %d dB > %d dB\n",preamble_index,i,levdB,*max_preamble_energy);
|
LOG_D(PHY,"preamble_index %d, delay %d en %d dB > %d dB\n",preamble_index,i,levdB,*max_preamble_energy);
|
||||||
*max_preamble_energy = levdB;
|
*max_preamble_energy = levdB;
|
||||||
*max_preamble_delay = i; // Note: This has to be normalized to the 30.72 Ms/s sampling rate
|
*max_preamble_delay = i; // Note: This has to be normalized to the 30.72 Ms/s sampling rate
|
||||||
*max_preamble = preamble_index;
|
*max_preamble = preamble_index;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}// preamble_index
|
}// preamble_index
|
||||||
|
|||||||
@@ -1631,13 +1631,14 @@ uint16_t do_RRCReconfiguration(
|
|||||||
// *security_config->keyToUse = NR_SecurityConfig__keyToUse_master;
|
// *security_config->keyToUse = NR_SecurityConfig__keyToUse_master;
|
||||||
|
|
||||||
ie = calloc(1, sizeof(NR_RRCReconfiguration_IEs_t));
|
ie = calloc(1, sizeof(NR_RRCReconfiguration_IEs_t));
|
||||||
ie->radioBearerConfig = calloc(1, sizeof(NR_RadioBearerConfig_t));
|
if (SRB_configList || DRB_configList) {
|
||||||
ie->radioBearerConfig->srb_ToAddModList = SRB_configList;
|
ie->radioBearerConfig = calloc(1, sizeof(NR_RadioBearerConfig_t));
|
||||||
ie->radioBearerConfig->drb_ToAddModList = DRB_configList;
|
ie->radioBearerConfig->srb_ToAddModList = SRB_configList;
|
||||||
ie->radioBearerConfig->securityConfig = security_config;
|
ie->radioBearerConfig->drb_ToAddModList = DRB_configList;
|
||||||
ie->radioBearerConfig->srb3_ToRelease = NULL;
|
ie->radioBearerConfig->securityConfig = security_config;
|
||||||
ie->radioBearerConfig->drb_ToReleaseList = DRB_releaseList;
|
ie->radioBearerConfig->srb3_ToRelease = NULL;
|
||||||
|
ie->radioBearerConfig->drb_ToReleaseList = DRB_releaseList;
|
||||||
|
}
|
||||||
/******************** Secondary Cell Group ********************/
|
/******************** Secondary Cell Group ********************/
|
||||||
// rrc_gNB_carrier_data_t *carrier = &(gnb_rrc_inst->carrier);
|
// rrc_gNB_carrier_data_t *carrier = &(gnb_rrc_inst->carrier);
|
||||||
// fill_default_secondaryCellGroup( carrier->servingcellconfigcommon,
|
// fill_default_secondaryCellGroup( carrier->servingcellconfigcommon,
|
||||||
|
|||||||
Reference in New Issue
Block a user