Commit c7ca4051 authored by Thomas Schlichter's avatar Thomas Schlichter

gNB: fix nr_generate_pdsch() for odd number of PDSCH RBs

parent 4d90aad4
...@@ -457,14 +457,34 @@ void nr_generate_pdsch(processingData_L1tx_t *msgTx, ...@@ -457,14 +457,34 @@ void nr_generate_pdsch(processingData_L1tx_t *msgTx,
pmi = 0;//no precoding pmi = 0;//no precoding
if (pmi == 0) {//unitary Precoding if (pmi == 0) {//unitary Precoding
if(ap<rel15->nrOfLayers) if (k + NR_NB_SC_PER_RB <= frame_parms->ofdm_symbol_size) { // RB does not cross DC
memcpy((void*)&txdataF[ap][l*frame_parms->ofdm_symbol_size + txdataF_offset + k], if(ap<rel15->nrOfLayers)
(void*)&txdataF_precoding[ap][2*(l*frame_parms->ofdm_symbol_size + k)], memcpy((void*)&txdataF[ap][l*frame_parms->ofdm_symbol_size + txdataF_offset + k],
NR_NB_SC_PER_RB*sizeof(int32_t)); (void*)&txdataF_precoding[ap][2*(l*frame_parms->ofdm_symbol_size + k)],
else NR_NB_SC_PER_RB*sizeof(int32_t));
memset((void*)&txdataF[ap][l*frame_parms->ofdm_symbol_size + txdataF_offset + k], else
0, memset((void*)&txdataF[ap][l*frame_parms->ofdm_symbol_size + txdataF_offset + k],
NR_NB_SC_PER_RB*sizeof(int32_t)); 0,
NR_NB_SC_PER_RB*sizeof(int32_t));
} else { // RB does cross DC
int neg_length = frame_parms->ofdm_symbol_size - k;
int pos_length = NR_NB_SC_PER_RB - neg_length;
if (ap<rel15->nrOfLayers) {
memcpy((void*)&txdataF[ap][l*frame_parms->ofdm_symbol_size + txdataF_offset + k],
(void*)&txdataF_precoding[ap][2*(l*frame_parms->ofdm_symbol_size + k)],
neg_length*sizeof(int32_t));
memcpy((void*)&txdataF[ap][l*frame_parms->ofdm_symbol_size + txdataF_offset],
(void*)&txdataF_precoding[ap][2*(l*frame_parms->ofdm_symbol_size)],
pos_length*sizeof(int32_t));
} else {
memset((void*)&txdataF[ap][l*frame_parms->ofdm_symbol_size + txdataF_offset + k],
0,
neg_length*sizeof(int32_t));
memset((void*)&txdataF[ap][l*frame_parms->ofdm_symbol_size + txdataF_offset],
0,
pos_length*sizeof(int32_t));
}
}
k += NR_NB_SC_PER_RB; k += NR_NB_SC_PER_RB;
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;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment