Commit 5301e0a1 authored by rmagueta's avatar rmagueta

Fix SRS mapping above PRB 53 to work with COTS

parent a41b131f
......@@ -107,28 +107,31 @@ int nr_get_srs_signal(PHY_VARS_gNB *gNB,
uint8_t l0 = frame_parms->symbols_per_slot - 1 - srs_pdu->time_start_position; // starting symbol in this slot
uint64_t symbol_offset = (n_symbols+l0)*frame_parms->ofdm_symbol_size;
uint64_t subcarrier_offset = frame_parms->first_carrier_offset + srs_pdu->bwp_start*12;
int32_t *rx_signal;
for (int ant = 0; ant < frame_parms->nb_antennas_rx; ant++) {
memset(srs_received_signal[ant], 0, frame_parms->samples_per_frame*sizeof(int32_t));
rx_signal = &rxdataF[ant][symbol_offset + subcarrier_offset];
rx_signal = &rxdataF[ant][symbol_offset];
for(int sc_idx = 0; sc_idx < nr_srs_info->n_symbs; sc_idx++) {
srs_received_signal[ant][nr_srs_info->subcarrier_idx[sc_idx] + subcarrier_offset] = rx_signal[nr_srs_info->subcarrier_idx[sc_idx]];
srs_received_signal[ant][nr_srs_info->subcarrier_idx[sc_idx]] = rx_signal[nr_srs_info->subcarrier_idx[sc_idx]];
#ifdef SRS_DEBUG
uint64_t subcarrier_offset = frame_parms->first_carrier_offset + srs_pdu->bwp_start*12;
int subcarrier_log = nr_srs_info->subcarrier_idx[sc_idx]-subcarrier_offset;
if(subcarrier_log < 0) {
subcarrier_log = subcarrier_log + frame_parms->ofdm_symbol_size;
}
if(sc_idx == 0) {
LOG_I(NR_PHY,"________ Rx antenna %i ________\n", ant);
}
if(nr_srs_info->subcarrier_idx[sc_idx]%12 == 0) {
LOG_I(NR_PHY,"::::::::::::: %i :::::::::::::\n", nr_srs_info->subcarrier_idx[sc_idx]/12);
if(subcarrier_log%12 == 0) {
LOG_I(NR_PHY,"::::::::::::: %i :::::::::::::\n", subcarrier_log/12);
}
LOG_I(NR_PHY,"(%i) \t%i\t%i\n",
nr_srs_info->subcarrier_idx[sc_idx],
srs_received_signal[ant][nr_srs_info->subcarrier_idx[sc_idx] + subcarrier_offset]&0xFFFF,
(srs_received_signal[ant][nr_srs_info->subcarrier_idx[sc_idx] + subcarrier_offset]>>16)&0xFFFF);
subcarrier_log,
(int16_t)(srs_received_signal[ant][nr_srs_info->subcarrier_idx[sc_idx]]&0xFFFF),
(int16_t)((srs_received_signal[ant][nr_srs_info->subcarrier_idx[sc_idx]]>>16)&0xFFFF));
#endif
}
}
......
......@@ -203,8 +203,6 @@ int generate_srs_nr(nfapi_nr_srs_pdu_t *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;
......@@ -373,29 +371,28 @@ int generate_srs_nr(nfapi_nr_srs_pdu_t *srs_config_pdu,
rv_ul_ref_sig[u][v_nu][M_sc_b_SRS_index][2*k+1]);
#endif
txptr[subcarrier+ofdm_symbol*frame_parms->ofdm_symbol_size] = (real_amp & 0xFFFF) + ((imag_amp<<16)&0xFFFF0000);
txptr[subcarrier] = (real_amp & 0xFFFF) + ((imag_amp<<16)&0xFFFF0000);
if(nr_srs_info) {
nr_srs_info->subcarrier_idx[nr_srs_info->n_symbs] = subcarrier + ofdm_symbol*frame_parms->ofdm_symbol_size - subcarrier_offset;
nr_srs_info->subcarrier_idx[nr_srs_info->n_symbs] = subcarrier;
nr_srs_info->n_symbs++;
}
#ifdef SRS_DEBUG
if( (subcarrier+ofdm_symbol*frame_parms->ofdm_symbol_size-subcarrier_offset)%12 == 0 ) {
LOG_I(NR_PHY,"------------ %lu ------------\n",
(subcarrier+ofdm_symbol*frame_parms->ofdm_symbol_size-subcarrier_offset)/12);
int subcarrier_log = subcarrier-subcarrier_offset;
if(subcarrier_log < 0) {
subcarrier_log = subcarrier_log + frame_parms->ofdm_symbol_size;
}
if( subcarrier_log%12 == 0 ) {
LOG_I(NR_PHY,"------------ %d ------------\n", subcarrier_log/12);
}
LOG_I(NR_PHY,"(%lu) \t%i\t%i\n",
subcarrier+ofdm_symbol*frame_parms->ofdm_symbol_size-subcarrier_offset,
real_amp&0xFFFF,
imag_amp&0xFFFF);
LOG_I(NR_PHY,"(%d) \t%i\t%i\n", subcarrier_log, (int16_t)(real_amp&0xFFFF), (int16_t)(imag_amp&0xFFFF));
#endif
subcarrier += (K_TC); /* subcarrier increment */
if (subcarrier >= frame_parms->ofdm_symbol_size) {
subcarrier=subcarrier-frame_parms->ofdm_symbol_size;
ofdm_symbol++;
}
}
......
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