minor changes
This commit is contained in:
@@ -298,16 +298,7 @@ void nr_processULSegment(void* arg) {
|
|||||||
stop_meas(&phy_vars_gNB->ulsch_deinterleaving_stats);
|
stop_meas(&phy_vars_gNB->ulsch_deinterleaving_stats);
|
||||||
|
|
||||||
|
|
||||||
/*LOG_D(PHY,"HARQ_PID %d Rate Matching Segment %d (coded bits %d,unpunctured/repeated bits %d, TBS %d, mod_order %d, nb_rb %d, Nl %d, rv %d, round %d)...\n",
|
//////////////////////////////////////////////////////////////////////////////////////////
|
||||||
harq_pid,r, G,
|
|
||||||
Kr*3,
|
|
||||||
ulsch_harq->TBS,
|
|
||||||
Qm,
|
|
||||||
nb_rb,
|
|
||||||
n_layers,
|
|
||||||
pusch_pdu->pusch_data.rv_index,
|
|
||||||
ulsch_harq->round);*/
|
|
||||||
//////////////////////////////////////////////////////////////////////////////////////////
|
|
||||||
|
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////////////////////
|
||||||
@@ -387,13 +378,13 @@ void nr_processULSegment(void* arg) {
|
|||||||
|
|
||||||
if (check_crc((uint8_t*)llrProcBuf,length_dec,ulsch_harq->F,crc_type)) {
|
if (check_crc((uint8_t*)llrProcBuf,length_dec,ulsch_harq->F,crc_type)) {
|
||||||
#ifdef PRINT_CRC_CHECK
|
#ifdef PRINT_CRC_CHECK
|
||||||
LOG_I(PHY, "Segment %d CRC OK, iterations %d/%d\n",r,no_iteration_ldpc,max_ldpc_iterations);
|
LOG_I(PHY,"Segment %d CRC OK, iterations %d/%d\n",r,no_iteration_ldpc,max_ldpc_iterations);
|
||||||
#endif
|
#endif
|
||||||
rdata->decodeIterations = no_iteration_ldpc;
|
rdata->decodeIterations = no_iteration_ldpc;
|
||||||
if (rdata->decodeIterations > p_decoderParms->numMaxIter) rdata->decodeIterations--;
|
if (rdata->decodeIterations > p_decoderParms->numMaxIter) rdata->decodeIterations--;
|
||||||
} else {
|
} else {
|
||||||
#ifdef PRINT_CRC_CHECK
|
#ifdef PRINT_CRC_CHECK
|
||||||
LOG_I(PHY, "CRC NOK\n");
|
LOG_I(PHY,"CRC NOK\n");
|
||||||
#endif
|
#endif
|
||||||
rdata->decodeIterations = max_ldpc_iterations + 1;
|
rdata->decodeIterations = max_ldpc_iterations + 1;
|
||||||
}
|
}
|
||||||
@@ -480,7 +471,8 @@ uint32_t nr_ulsch_decoding(PHY_VARS_gNB *phy_vars_gNB,
|
|||||||
|
|
||||||
A = (harq_process->TBS)<<3;
|
A = (harq_process->TBS)<<3;
|
||||||
|
|
||||||
LOG_D(PHY,"ULSCH Decoding, harq_pid %d TBS %d G %d mcs %d Nl %d nb_rb %d, Qm %d, n_layers %d, Coderate %d\n",harq_pid,A,G, mcs, n_layers, nb_rb, Qm, n_layers, R);
|
LOG_D(PHY,"ULSCH Decoding, harq_pid %d TBS %d G %d mcs %d Nl %d nb_rb %d, Qm %d, Coderate %d RV %d round %d\n",
|
||||||
|
harq_pid, A, G, mcs, n_layers, nb_rb, Qm, R, pusch_pdu->pusch_data.rv_index, harq_process->round);
|
||||||
|
|
||||||
if (R<1024)
|
if (R<1024)
|
||||||
Coderate = (float) R /(float) 1024;
|
Coderate = (float) R /(float) 1024;
|
||||||
|
|||||||
@@ -347,14 +347,12 @@ void nr_ulsch_extract_rbs(int32_t **rxdataF,
|
|||||||
if (is_dmrs_symbol == 0) {
|
if (is_dmrs_symbol == 0) {
|
||||||
//
|
//
|
||||||
//rxF[ ((start_re + re)*2) % (frame_parms->ofdm_symbol_size*2)]);
|
//rxF[ ((start_re + re)*2) % (frame_parms->ofdm_symbol_size*2)]);
|
||||||
if (start_re + nb_re_pusch < frame_parms->ofdm_symbol_size)
|
if (start_re + nb_re_pusch < frame_parms->ofdm_symbol_size) {
|
||||||
{
|
|
||||||
memcpy1((void*)rxF_ext,
|
memcpy1((void*)rxF_ext,
|
||||||
(void*)&rxF[start_re*2],
|
(void*)&rxF[start_re*2],
|
||||||
nb_re_pusch*sizeof(int32_t));
|
nb_re_pusch*sizeof(int32_t));
|
||||||
}
|
}
|
||||||
else
|
else {
|
||||||
{
|
|
||||||
int neg_length = frame_parms->ofdm_symbol_size-start_re;
|
int neg_length = frame_parms->ofdm_symbol_size-start_re;
|
||||||
int pos_length = nb_re_pusch-neg_length;
|
int pos_length = nb_re_pusch-neg_length;
|
||||||
memcpy1((void*)rxF_ext,(void*)&rxF[start_re*2],neg_length*sizeof(int32_t));
|
memcpy1((void*)rxF_ext,(void*)&rxF[start_re*2],neg_length*sizeof(int32_t));
|
||||||
@@ -373,8 +371,7 @@ void nr_ulsch_extract_rbs(int32_t **rxdataF,
|
|||||||
memcpy1((void*)ul_ch0_ext,(void*)ul_ch0,nb_re_pusch*sizeof(int32_t));
|
memcpy1((void*)ul_ch0_ext,(void*)ul_ch0,nb_re_pusch*sizeof(int32_t));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else {
|
||||||
{
|
|
||||||
#ifdef SUPPORT_PMI_MATRIC
|
#ifdef SUPPORT_PMI_MATRIC
|
||||||
for (aatx = 0; aatx < pusch_pdu->nrOfLayers; aatx++)
|
for (aatx = 0; aatx < pusch_pdu->nrOfLayers; aatx++)
|
||||||
#else
|
#else
|
||||||
@@ -390,26 +387,22 @@ void nr_ulsch_extract_rbs(int32_t **rxdataF,
|
|||||||
ul_ch0_ext_index = 0;
|
ul_ch0_ext_index = 0;
|
||||||
ul_ch0_index = 0;
|
ul_ch0_index = 0;
|
||||||
|
|
||||||
for (re = 0; re < nb_re_pusch; re++)
|
for (re = 0; re < nb_re_pusch; re++) {
|
||||||
{
|
|
||||||
uint16_t k= start_re+re;
|
uint16_t k= start_re+re;
|
||||||
|
|
||||||
is_data_re = allowed_xlsch_re_in_dmrs_symbol(k, start_re, frame_parms->ofdm_symbol_size, pusch_pdu->num_dmrs_cdm_grps_no_data, pusch_pdu->dmrs_config_type);
|
is_data_re = allowed_xlsch_re_in_dmrs_symbol(k, start_re, frame_parms->ofdm_symbol_size, pusch_pdu->num_dmrs_cdm_grps_no_data, pusch_pdu->dmrs_config_type);
|
||||||
|
|
||||||
if (++k >= frame_parms->ofdm_symbol_size)
|
if (++k >= frame_parms->ofdm_symbol_size) {
|
||||||
{
|
|
||||||
k -= frame_parms->ofdm_symbol_size;
|
k -= frame_parms->ofdm_symbol_size;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef DEBUG_RB_EXT
|
#ifdef DEBUG_RB_EXT
|
||||||
printf("re = %d, kprime %d, n %d, is_dmrs_symbol = %d, symbol = %d\n", re, k_prime, n, is_dmrs_symbol, symbol);
|
printf("re = %d, is_dmrs_symbol = %d, symbol = %d\n", re, is_dmrs_symbol, symbol);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* save only data and respective channel estimates */
|
/* save only data and respective channel estimates */
|
||||||
if (is_data_re == 1)
|
if (is_data_re == 1) {
|
||||||
{
|
if (aatx == aarx) {
|
||||||
if (aatx == aarx)
|
|
||||||
{
|
|
||||||
rxF_ext[rxF_ext_index] = (rxF[ ((start_re + re)*2) % (frame_parms->ofdm_symbol_size*2)]);
|
rxF_ext[rxF_ext_index] = (rxF[ ((start_re + re)*2) % (frame_parms->ofdm_symbol_size*2)]);
|
||||||
rxF_ext[rxF_ext_index + 1] = (rxF[(((start_re + re)*2) + 1) % (frame_parms->ofdm_symbol_size*2)]);
|
rxF_ext[rxF_ext_index + 1] = (rxF[(((start_re + re)*2) + 1) % (frame_parms->ofdm_symbol_size*2)]);
|
||||||
rxF_ext_index +=2;
|
rxF_ext_index +=2;
|
||||||
@@ -1206,8 +1199,7 @@ void nr_ulsch_detection_mrc(NR_DL_FRAME_PARMS *frame_parms,
|
|||||||
if (n_rx > 1)
|
if (n_rx > 1)
|
||||||
{
|
{
|
||||||
#if defined(__x86_64__) || defined(__i386__)
|
#if defined(__x86_64__) || defined(__i386__)
|
||||||
for (int aatx=0; aatx<nrOfLayers; aatx++)
|
for (int aatx=0; aatx<nrOfLayers; aatx++) {
|
||||||
{
|
|
||||||
int nb_re = nb_rb*12;
|
int nb_re = nb_rb*12;
|
||||||
|
|
||||||
rxdataF_comp128[0] = (__m128i *)&rxdataF_comp[aatx*frame_parms->nb_antennas_rx][(symbol*(nb_re + off))];
|
rxdataF_comp128[0] = (__m128i *)&rxdataF_comp[aatx*frame_parms->nb_antennas_rx][(symbol*(nb_re + off))];
|
||||||
@@ -2002,8 +1994,7 @@ int nr_rx_pusch(PHY_VARS_gNB *gNB,
|
|||||||
gNB->pusch_vars[ulsch_id]->ulsch_power[aarx] = 0;
|
gNB->pusch_vars[ulsch_id]->ulsch_power[aarx] = 0;
|
||||||
gNB->pusch_vars[ulsch_id]->ulsch_noise_power[aarx] = 0;
|
gNB->pusch_vars[ulsch_id]->ulsch_noise_power[aarx] = 0;
|
||||||
}
|
}
|
||||||
for (aatx = 0; aatx < rel15_ul->nrOfLayers; aatx++)
|
for (aatx = 0; aatx < rel15_ul->nrOfLayers; aatx++) {
|
||||||
{
|
|
||||||
gNB->pusch_vars[ulsch_id]->ulsch_power[aarx] += signal_energy_nodc(
|
gNB->pusch_vars[ulsch_id]->ulsch_power[aarx] += signal_energy_nodc(
|
||||||
&gNB->pusch_vars[ulsch_id]->ul_ch_estimates[aatx*gNB->frame_parms.nb_antennas_rx+aarx][symbol * frame_parms->ofdm_symbol_size],
|
&gNB->pusch_vars[ulsch_id]->ul_ch_estimates[aatx*gNB->frame_parms.nb_antennas_rx+aarx][symbol * frame_parms->ofdm_symbol_size],
|
||||||
rel15_ul->rb_size * 12);
|
rel15_ul->rb_size * 12);
|
||||||
|
|||||||
@@ -243,7 +243,6 @@ nrUE_params_t *get_nrUE_params(void) {
|
|||||||
// needed for some functions
|
// needed for some functions
|
||||||
uint16_t n_rnti = 0x1234;
|
uint16_t n_rnti = 0x1234;
|
||||||
openair0_config_t openair0_cfg[MAX_CARDS];
|
openair0_config_t openair0_cfg[MAX_CARDS];
|
||||||
//const uint8_t nr_rv_round_map[4] = {0, 2, 1, 3};
|
|
||||||
|
|
||||||
channel_desc_t *UE2gNB[NUMBER_OF_UE_MAX][NUMBER_OF_gNB_MAX];
|
channel_desc_t *UE2gNB[NUMBER_OF_UE_MAX][NUMBER_OF_gNB_MAX];
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user