diff --git a/cmake_targets/autotests/test_case_list.xml b/cmake_targets/autotests/test_case_list.xml
index 934726a6c3..9f970b5cb8 100755
--- a/cmake_targets/autotests/test_case_list.xml
+++ b/cmake_targets/autotests/test_case_list.xml
@@ -200,8 +200,8 @@
-n100 -e16 -s11 -S13
-n100 -q1 -e26 -s30
-n100 -e0 -t95 -S-1.0 -i 2 1 0
- -n10 -s20 -U 3 0 0 2 -gR -x1 -y4 -z4
- -n10 -s20 -U 3 0 0 2 -gR -x2 -y4 -z4
+ -n10 -s20 -U 3 0 0 2 -gA -x1 -y4 -z4
+ -n10 -s20 -U 3 0 0 2 -gA -x2 -y4 -z4
-n10 -s20 -U 3 0 0 2 -x4 -y4 -z4
test1 test2 test3 test4 test5 test6 test7
PDSCH test OK
diff --git a/openair1/SIMULATION/NR_PHY/dlsim.c b/openair1/SIMULATION/NR_PHY/dlsim.c
index c436fc5a27..5130df26a6 100644
--- a/openair1/SIMULATION/NR_PHY/dlsim.c
+++ b/openair1/SIMULATION/NR_PHY/dlsim.c
@@ -314,6 +314,7 @@ int main(int argc, char **argv)
//uint8_t frame_mod4,num_pdcch_symbols = 0;
SCM_t channel_model = AWGN; // AWGN Rayleigh1 Rayleigh1_anticorr;
+ double DS_TDL = .03;
int delay = 0;
//double pbch_sinr;
@@ -378,42 +379,25 @@ int main(int argc, char **argv)
break;*/
case 'g':
- switch((char)*optarg) {
- case 'A':
- channel_model=SCM_A;
- break;
-
- case 'B':
- channel_model=SCM_B;
- break;
-
- case 'C':
- channel_model=SCM_C;
- break;
-
- case 'D':
- channel_model=SCM_D;
- break;
-
- case 'E':
- channel_model=EPA;
- break;
-
- case 'F':
- channel_model=EVA;
- break;
-
- case 'G':
- channel_model=ETU;
- break;
-
- case 'R':
- channel_model=Rayleigh1;
- break;
-
- default:
- printf("Unsupported channel model!\n");
- exit(-1);
+ switch ((char)*optarg) {
+ case 'A':
+ channel_model = TDL_A;
+ DS_TDL = 0.030; // 30 ns
+ printf("Channel model: TDLA30\n");
+ break;
+ case 'B':
+ channel_model = TDL_B;
+ DS_TDL = 0.100; // 100ns
+ printf("Channel model: TDLB100\n");
+ break;
+ case 'C':
+ channel_model = TDL_C;
+ DS_TDL = 0.300; // 300 ns
+ printf("Channel model: TDLC300\n");
+ break;
+ default:
+ printf("Unsupported channel model!\n");
+ exit(-1);
}
break;
@@ -578,7 +562,7 @@ int main(int argc, char **argv)
printf("-s Starting SNR, runs from SNR0 to SNR0 + 5 dB. If n_frames is 1 then just SNR is simulated\n");
printf("-S Ending SNR, runs from SNR0 to SNR1\n");
//printf("-t Delay spread for multipath channel\n");
- printf("-g [A,B,C,D,E,F,G,R] Use 3GPP SCM (A,B,C,D) or 36-101 (E-EPA,F-EVA,G-ETU) models or R for MIMO model (ignores delay spread and Ricean factor)\n");
+ printf("-g Channel model: [A] TDLA30, [B] TDLB100, [C] TDLC300, e.g. -g A\n");
printf("-o Introduce delay in terms of number of samples\n");
printf("-y Number of TX antennas used in gNB\n");
printf("-z Number of RX antennas used in UE\n");
@@ -779,7 +763,7 @@ int main(int argc, char **argv)
fs/1e6,//sampling frequency in MHz
0,
txbw,
- 30e-9,
+ DS_TDL,
0.0,
CORR_LEVEL_LOW,
0,
@@ -1115,11 +1099,7 @@ int main(int argc, char **argv)
}
// Apply MIMO Channel
- if (channel_model == AWGN) {
- multipath_channel(gNB2UE, s_re, s_im, r_re, r_im, slot_length, 0, (n_trials == 1) ? 1 : 0);
- } else {
- multipath_tv_channel(gNB2UE, s_re, s_im, r_re, r_im, slot_length, 0);
- }
+ multipath_channel(gNB2UE, s_re, s_im, r_re, r_im, slot_length, 0, (n_trials == 1) ? 1 : 0);
add_noise(UE->common_vars.rxdata, (const double **) r_re, (const double **) r_im, sigma2, slot_length, slot_offset, ts, delay, pdu_bit_map, 0x1, frame_parms->nb_antennas_rx);
nr_ue_dcireq(&dcireq); //to be replaced with function pointer later