Fix BWP start in SRS
This commit is contained in:
@@ -107,14 +107,16 @@ 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 + frame_parms->first_carrier_offset];
|
||||
rx_signal = &rxdataF[ant][symbol_offset + subcarrier_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] + frame_parms->first_carrier_offset] = rx_signal[nr_srs_info->subcarrier_idx[sc_idx]];
|
||||
srs_received_signal[ant][nr_srs_info->subcarrier_idx[sc_idx] + subcarrier_offset] = rx_signal[nr_srs_info->subcarrier_idx[sc_idx]];
|
||||
|
||||
#ifdef SRS_DEBUG
|
||||
if(sc_idx == 0) {
|
||||
@@ -125,8 +127,8 @@ int nr_get_srs_signal(PHY_VARS_gNB *gNB,
|
||||
}
|
||||
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] + frame_parms->first_carrier_offset]&0xFFFF,
|
||||
(srs_received_signal[ant][nr_srs_info->subcarrier_idx[sc_idx] + frame_parms->first_carrier_offset]>>16)&0xFFFF);
|
||||
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);
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
@@ -116,6 +116,8 @@ int generate_srs_nr(nfapi_nr_srs_pdu_t *srs_config_pdu,
|
||||
uint8_t l0 = N_SYMB_SLOT - 1 - l_offset; // starting position in the time domain
|
||||
uint8_t k_0_p; // frequency domain starting position
|
||||
|
||||
uint64_t subcarrier_offset = frame_parms->first_carrier_offset + srs_config_pdu->bwp_start*N_SC_RB;
|
||||
|
||||
if(nr_srs_info) {
|
||||
nr_srs_info->n_symbs = 0;
|
||||
}
|
||||
@@ -324,7 +326,7 @@ int generate_srs_nr(nfapi_nr_srs_pdu_t *srs_config_pdu,
|
||||
k_0_p += K_TC * M_sc_b_SRS * n_b[b];
|
||||
}
|
||||
|
||||
subcarrier = (frame_parms->first_carrier_offset) + k_0_p;
|
||||
subcarrier = subcarrier_offset + k_0_p;
|
||||
if (subcarrier>frame_parms->ofdm_symbol_size) {
|
||||
subcarrier -= frame_parms->ofdm_symbol_size;
|
||||
}
|
||||
@@ -373,17 +375,17 @@ int generate_srs_nr(nfapi_nr_srs_pdu_t *srs_config_pdu,
|
||||
txptr[subcarrier+ofdm_symbol*frame_parms->ofdm_symbol_size] = (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-frame_parms->first_carrier_offset;
|
||||
nr_srs_info->subcarrier_idx[nr_srs_info->n_symbs] = subcarrier + ofdm_symbol*frame_parms->ofdm_symbol_size - subcarrier_offset;
|
||||
nr_srs_info->n_symbs++;
|
||||
}
|
||||
|
||||
#ifdef SRS_DEBUG
|
||||
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);
|
||||
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);
|
||||
}
|
||||
LOG_I(NR_PHY,"(%i) \t%i\t%i\n",
|
||||
subcarrier+ofdm_symbol*frame_parms->ofdm_symbol_size-frame_parms->first_carrier_offset,
|
||||
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);
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user