Fix signal_energy_nodc for lengths that are not multiples of 4
This commit is contained in:
@@ -69,7 +69,7 @@ void lte_eNB_I0_measurements(PHY_VARS_eNB *eNB,
|
||||
|
||||
uint32_t aarx /* ,rx_power_correction */;
|
||||
uint32_t rb;
|
||||
int32_t *ul_ch;
|
||||
c16_t *ul_ch;
|
||||
int32_t n0_power_tot;
|
||||
int64_t n0_power_tot2;
|
||||
int len;
|
||||
@@ -112,9 +112,9 @@ void lte_eNB_I0_measurements(PHY_VARS_eNB *eNB,
|
||||
for (aarx=0; aarx<frame_parms->nb_antennas_rx; aarx++) {
|
||||
measurements->n0_subband_power[aarx][rb] = 0;
|
||||
for (int s=0;s<(14-(frame_parms->Ncp<<1));s++) {
|
||||
offset = offset0 + (s*frame_parms->ofdm_symbol_size);
|
||||
ul_ch = &common_vars->rxdataF[aarx][offset];
|
||||
len = 12;
|
||||
offset = offset0 + (s*frame_parms->ofdm_symbol_size);
|
||||
ul_ch = (c16_t *)&common_vars->rxdataF[aarx][offset];
|
||||
len = 12;
|
||||
// just do first half of middle PRB for odd number of PRBs
|
||||
if (((frame_parms->N_RB_UL&1) == 1) &&
|
||||
(rb==(frame_parms->N_RB_UL>>1))) {
|
||||
@@ -154,7 +154,7 @@ void lte_eNB_srs_measurements(PHY_VARS_eNB *eNB,
|
||||
int32_t aarx,rx_power_correction;
|
||||
int32_t rx_power;
|
||||
uint32_t rb;
|
||||
int32_t *ul_ch;
|
||||
c16_t *ul_ch;
|
||||
|
||||
//printf("Running eNB_srs_measurements for eNB_id %d\n",eNB_id);
|
||||
|
||||
@@ -176,9 +176,9 @@ void lte_eNB_srs_measurements(PHY_VARS_eNB *eNB,
|
||||
|
||||
|
||||
measurements->rx_spatial_power[srs_id][0][aarx] =
|
||||
((signal_energy_nodc(&srs_vars->srs_ch_estimates[aarx][frame_parms->first_carrier_offset],
|
||||
((signal_energy_nodc((c16_t*)&srs_vars->srs_ch_estimates[aarx][frame_parms->first_carrier_offset],
|
||||
(frame_parms->N_RB_DL*6)) +
|
||||
signal_energy_nodc(&srs_vars->srs_ch_estimates[aarx][1],
|
||||
signal_energy_nodc((c16_t*)&srs_vars->srs_ch_estimates[aarx][1],
|
||||
(frame_parms->N_RB_DL*6)))*rx_power_correction) -
|
||||
measurements->n0_power[aarx];
|
||||
|
||||
@@ -219,9 +219,9 @@ void lte_eNB_srs_measurements(PHY_VARS_eNB *eNB,
|
||||
|
||||
// printf("common_vars->srs_ch_estimates[0] => %x\n",common_vars->srs_ch_estimates[0]);
|
||||
if (rb < 12)
|
||||
ul_ch = &srs_vars->srs_ch_estimates[aarx][frame_parms->first_carrier_offset + (rb*12)];
|
||||
ul_ch = (c16_t *)&srs_vars->srs_ch_estimates[aarx][frame_parms->first_carrier_offset + (rb * 12)];
|
||||
else if (rb>12)
|
||||
ul_ch = &srs_vars->srs_ch_estimates[aarx][6 + (rb-13)*12];
|
||||
ul_ch = (c16_t *)&srs_vars->srs_ch_estimates[aarx][6 + (rb - 13) * 12];
|
||||
else {
|
||||
measurements->subband_cqi_dB[srs_id][aarx][rb] = 0;
|
||||
continue;
|
||||
|
||||
@@ -1062,7 +1062,7 @@ void lte_ue_measurements(PHY_VARS_UE *ue,
|
||||
for (aarx=0; aarx<frame_parms->nb_antennas_rx; aarx++) {
|
||||
for (aatx=0; aatx<frame_parms->nb_antenna_ports_eNB; aatx++) {
|
||||
ue->measurements.rx_spatial_power[eNB_id][aatx][aarx] =
|
||||
(signal_energy_nodc(&ue->common_vars.common_vars_rx_data_per_thread[ue->current_thread_id[subframe]].dl_ch_estimates[eNB_id][(aatx<<1) + aarx][0],
|
||||
(signal_energy_nodc((c16_t*)&ue->common_vars.common_vars_rx_data_per_thread[ue->current_thread_id[subframe]].dl_ch_estimates[eNB_id][(aatx<<1) + aarx][0],
|
||||
(N_RB_DL*12)));
|
||||
//- ue->measurements.n0_power[aarx];
|
||||
|
||||
@@ -1169,7 +1169,7 @@ void lte_ue_measurements(PHY_VARS_UE *ue,
|
||||
msg("subband %d (%d) : %d,%d\n",subband,i,((short *)dl_ch0)[2*i],((short *)dl_ch0)[1+(2*i)]);
|
||||
*/
|
||||
ue->measurements.subband_cqi[eNB_id][aarx][subband] =
|
||||
(signal_energy_nodc(dl_ch0,subband_size) + signal_energy_nodc(dl_ch1,subband_size));
|
||||
(signal_energy_nodc((c16_t*)dl_ch0,subband_size) + signal_energy_nodc((c16_t*)dl_ch1,subband_size));
|
||||
|
||||
if ( ue->measurements.subband_cqi[eNB_id][aarx][subband] < 0)
|
||||
ue->measurements.subband_cqi[eNB_id][aarx][subband]=0;
|
||||
@@ -1185,8 +1185,8 @@ void lte_ue_measurements(PHY_VARS_UE *ue,
|
||||
} else { // this is for the last subband which is smaller in size
|
||||
// for (i=0;i<12;i++)
|
||||
// printf("subband %d (%d) : %d,%d\n",subband,i,((short *)dl_ch0)[2*i],((short *)dl_ch0)[1+(2*i)]);
|
||||
ue->measurements.subband_cqi[eNB_id][aarx][subband] = (signal_energy_nodc(dl_ch0,last_subband_size) +
|
||||
signal_energy_nodc(dl_ch1,last_subband_size)); // - ue->measurements.n0_power[aarx];
|
||||
ue->measurements.subband_cqi[eNB_id][aarx][subband] = (signal_energy_nodc((c16_t*)dl_ch0,last_subband_size) +
|
||||
signal_energy_nodc((c16_t*)dl_ch1,last_subband_size)); // - ue->measurements.n0_power[aarx];
|
||||
ue->measurements.subband_cqi_tot[eNB_id][subband] += ue->measurements.subband_cqi[eNB_id][aarx][subband];
|
||||
ue->measurements.subband_cqi_dB[eNB_id][aarx][subband] = dB_fixed2(ue->measurements.subband_cqi[eNB_id][aarx][subband],
|
||||
ue->measurements.n0_power[aarx]);
|
||||
@@ -1297,7 +1297,7 @@ void lte_ue_measurements(PHY_VARS_UE *ue,
|
||||
// for (i=0;i<48;i++)
|
||||
// printf("subband %d (%d) : %d,%d\n",subband,i,((short *)dl_ch0)[2*i],((short *)dl_ch0)[1+(2*i)]);
|
||||
ue->measurements.subband_cqi[eNB_id][aarx][subband] =
|
||||
(signal_energy_nodc(dl_ch0,48) ) - ue->measurements.n0_power[aarx];
|
||||
(signal_energy_nodc((c16_t*)dl_ch0,48) ) - ue->measurements.n0_power[aarx];
|
||||
|
||||
ue->measurements.subband_cqi_tot[eNB_id][subband] += ue->measurements.subband_cqi[eNB_id][aarx][subband];
|
||||
ue->measurements.subband_cqi_dB[eNB_id][aarx][subband] = dB_fixed2(ue->measurements.subband_cqi[eNB_id][aarx][subband],
|
||||
@@ -1305,7 +1305,7 @@ void lte_ue_measurements(PHY_VARS_UE *ue,
|
||||
} else {
|
||||
// for (i=0;i<12;i++)
|
||||
// printf("subband %d (%d) : %d,%d\n",subband,i,((short *)dl_ch0)[2*i],((short *)dl_ch0)[1+(2*i)]);
|
||||
ue->measurements.subband_cqi[eNB_id][aarx][subband] = (signal_energy_nodc(dl_ch0,12) ) - ue->measurements.n0_power[aarx];
|
||||
ue->measurements.subband_cqi[eNB_id][aarx][subband] = (signal_energy_nodc((c16_t*)dl_ch0,12) ) - ue->measurements.n0_power[aarx];
|
||||
ue->measurements.subband_cqi_tot[eNB_id][subband] += ue->measurements.subband_cqi[eNB_id][aarx][subband];
|
||||
ue->measurements.subband_cqi_dB[eNB_id][aarx][subband] = dB_fixed2(ue->measurements.subband_cqi[eNB_id][aarx][subband],
|
||||
ue->measurements.n0_power[aarx]);
|
||||
|
||||
Reference in New Issue
Block a user