diff --git a/openair1/PHY/NR_UE_TRANSPORT/srs_modulation_nr.c b/openair1/PHY/NR_UE_TRANSPORT/srs_modulation_nr.c index 8cd26e2db813c4a8faaef00861e20dbaa3d5ad32..d3de585bf17fcba5f256d61d2b56a8bc25fbb666 100644 --- a/openair1/PHY/NR_UE_TRANSPORT/srs_modulation_nr.c +++ b/openair1/PHY/NR_UE_TRANSPORT/srs_modulation_nr.c @@ -197,6 +197,8 @@ int generate_srs_nr(fapi_nr_ul_config_srs_pdu *srs_config_pdu, /* for each antenna ports for transmission */ for (int p_index = 0; p_index < N_ap; p_index++) { + uint8_t ofdm_symbol = 0; + /* see TS 38.211 6.4.1.4.2 Sequence generation */ n_SRS_cs_i = (n_SRS_cs + (n_SRS_cs_max * (SRS_antenna_port[p_index] - 1000)/N_ap))%n_SRS_cs_max; @@ -365,22 +367,29 @@ int generate_srs_nr(fapi_nr_ul_config_srs_pdu *srs_config_pdu, rv_ul_ref_sig[u][v_nu][M_sc_b_SRS_index][2*k+1]); #endif - txptr[subcarrier] = (real_amp & 0xFFFF) + ((imag_amp<<16)&0xFFFF0000); + txptr[subcarrier+ofdm_symbol*frame_parms->ofdm_symbol_size] = (real_amp & 0xFFFF) + ((imag_amp<<16)&0xFFFF0000); #ifdef SRS_DEBUG - if( (subcarrier-frame_parms->first_carrier_offset)%12 == 0 ) { - LOG_I(NR_PHY,"---------- %i ----------\n", (subcarrier-frame_parms->first_carrier_offset)/12); + if( (subcarrier+ofdm_symbol*frame_parms->ofdm_symbol_size-frame_parms->first_carrier_offset)%12 == 0 ) { + LOG_I(NR_PHY,"------------ %i ------------\n", + (subcarrier+ofdm_symbol*frame_parms->ofdm_symbol_size-frame_parms->first_carrier_offset)/12); } - LOG_I(NR_PHY,"(%i)\t%i\t%i\n", subcarrier-frame_parms->first_carrier_offset, real_amp&0xFFFF, imag_amp&0xFFFF); + LOG_I(NR_PHY,"(%i) \t%i\t%i\n", + subcarrier+ofdm_symbol*frame_parms->ofdm_symbol_size-frame_parms->first_carrier_offset, + real_amp&0xFFFF, + imag_amp&0xFFFF); #endif subcarrier += (K_TC); /* subcarrier increment */ - if (subcarrier >= frame_parms->ofdm_symbol_size) + if (subcarrier >= frame_parms->ofdm_symbol_size) { subcarrier=subcarrier-frame_parms->ofdm_symbol_size; + ofdm_symbol++; + } + } /* process next symbol */ - txptr = txptr + frame_parms->ofdm_symbol_size; + //txptr = txptr + frame_parms->ofdm_symbol_size; } return (0);