Add CI test for SRS in nr_ulsim

This commit is contained in:
rmagueta
2024-10-11 11:12:53 +01:00
parent 765bb64b5c
commit be6dcccd93
4 changed files with 27 additions and 10 deletions
+17 -3
View File
@@ -936,6 +936,7 @@ int main(int argc, char *argv[])
}
//---------------
int ret = 1;
int srs_ret = do_SRS;
for (SNR = snr0; SNR <= snr1; SNR += snr_step) {
varArray_t *table_rx=initVarArray(1000,sizeof(double));
@@ -971,6 +972,9 @@ int main(int argc, char *argv[])
int max_pusch_delay = INT_MIN;
int delay_pusch_est_count = 0;
int64_t sum_srs_snr = 0;
int srs_snr_count = 0;
for (trial = 0; trial < n_trials; trial++) {
uint8_t round = 0;
@@ -1436,6 +1440,10 @@ int main(int argc, char *argv[])
max_pusch_delay = max(ulsch_gNB->delay.est_delay, max_pusch_delay);
delay_pusch_est_count++;
if (do_SRS == 1) {
sum_srs_snr += gNB->srs->snr;
srs_snr_count++;
}
} // trial loop
roundStats/=((float)n_trials);
@@ -1471,8 +1479,14 @@ int main(int argc, char *argv[])
printf(") Avg round %.2f, Eff Rate %.4f bits/slot, Eff Throughput %.2f, TBS %u bits/slot\n", roundStats,effRate,effTP,TBS);
printf("DMRS-PUSCH delay estimation: min %i, max %i, average %f\n",
min_pusch_delay >> 1, max_pusch_delay >> 1, (double)sum_pusch_delay / (2 * delay_pusch_est_count));
double av_delay = (double)sum_pusch_delay / (2 * delay_pusch_est_count);
printf("DMRS-PUSCH delay estimation: min %i, max %i, average %2.1f\n", min_pusch_delay >> 1, max_pusch_delay >> 1, av_delay);
if (do_SRS == 1) {
float srs_snr_av = (float)sum_srs_snr / srs_snr_count;
srs_ret = srs_snr_av >= 0.7 * SNR || srs_snr_av > 30 ? 0 : 1;
printf("SNR based on SRS: %2.1f dB\n", srs_snr_av);
}
printf("*****************************************\n");
printf("\n");
@@ -1519,7 +1533,7 @@ int main(int argc, char *argv[])
if(n_trials==1)
break;
if ((float)effTP >= eff_tp_check) {
if (srs_ret == 0 && (float)effTP >= eff_tp_check) {
printf("*************\n");
printf("PUSCH test OK\n");
printf("*************\n");