Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
O
OpenXG-RAN
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
littleBu
OpenXG-RAN
Commits
032d4774
Commit
032d4774
authored
Jun 16, 2022
by
Robert Schmidt
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/5g-nr-low-snr-performance' into integration_2022_wk24
parents
5761164a
4053c0c3
Changes
17
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
17 changed files
with
187 additions
and
107 deletions
+187
-107
cmake_targets/autotests/test_case_list.xml
cmake_targets/autotests/test_case_list.xml
+10
-7
executables/softmodem-common.h
executables/softmodem-common.h
+2
-0
openair1/PHY/NR_TRANSPORT/nr_dlsch.c
openair1/PHY/NR_TRANSPORT/nr_dlsch.c
+4
-0
openair1/PHY/NR_TRANSPORT/nr_dlsch_coding.c
openair1/PHY/NR_TRANSPORT/nr_dlsch_coding.c
+8
-0
openair1/PHY/NR_TRANSPORT/nr_ulsch_llr_computation.c
openair1/PHY/NR_TRANSPORT/nr_ulsch_llr_computation.c
+7
-7
openair1/PHY/NR_UE_ESTIMATION/filt16a_32.c
openair1/PHY/NR_UE_ESTIMATION/filt16a_32.c
+2
-2
openair1/PHY/NR_UE_ESTIMATION/nr_dl_channel_estimation.c
openair1/PHY/NR_UE_ESTIMATION/nr_dl_channel_estimation.c
+35
-4
openair1/PHY/NR_UE_TRANSPORT/dci_nr.c
openair1/PHY/NR_UE_TRANSPORT/dci_nr.c
+1
-1
openair1/PHY/NR_UE_TRANSPORT/nr_dlsch_llr_computation.c
openair1/PHY/NR_UE_TRANSPORT/nr_dlsch_llr_computation.c
+6
-5
openair1/PHY/defs_gNB.h
openair1/PHY/defs_gNB.h
+2
-0
openair1/PHY/defs_nr_UE.h
openair1/PHY/defs_nr_UE.h
+0
-2
openair1/SIMULATION/NR_PHY/dlsim.c
openair1/SIMULATION/NR_PHY/dlsim.c
+98
-68
openair1/SIMULATION/NR_PHY/pbchsim.c
openair1/SIMULATION/NR_PHY/pbchsim.c
+0
-2
openair1/SIMULATION/NR_PHY/pucchsim.c
openair1/SIMULATION/NR_PHY/pucchsim.c
+0
-1
openair1/SIMULATION/NR_PHY/ulsim.c
openair1/SIMULATION/NR_PHY/ulsim.c
+4
-3
openair2/LAYER2/NR_MAC_UE/nr_ue_scheduler.c
openair2/LAYER2/NR_MAC_UE/nr_ue_scheduler.c
+1
-1
openair2/RRC/NR/rrc_gNB_reconfig.c
openair2/RRC/NR/rrc_gNB_reconfig.c
+7
-4
No files found.
cmake_targets/autotests/test_case_list.xml
View file @
032d4774
...
...
@@ -1105,7 +1105,8 @@
(Test20: Mapping type B, 4 DMRS Symbols),
(Test21: 4x4 MIMO, 1 Layer),
(Test22: 4x4 MIMO, 2 Layers),
(Test23: 25 PRBs, 15 kHz SCS)
</desc>
(Test23: 25 PRBs, 15 kHz SCS)
(Test24: MCS 0, low SNR performance)
</desc>
<pre_compile_prog></pre_compile_prog>
<compile_prog>
$OPENAIR_DIR/cmake_targets/build_oai
</compile_prog>
<compile_prog_args>
--phy_simulators -c
</compile_prog_args>
...
...
@@ -1134,8 +1135,9 @@
-n100 -s2 -U 2 1 3
-n10 -s20 -U 3 0 0 2 -gR -x1 -y4 -z4
-n10 -s20 -U 3 0 0 2 -gR -x2 -y4 -z4
-n100 -m0 -e0 -R25 -b25 -i 2 1 0
</main_exec_args>
<tags>
nr_dlsim.test1 nr_dlsim.test2 nr_dlsim.test3 nr_dlsim.test4 nr_dlsim.test5 nr_dlsim.test6 nr_dlsim.test7 nr_dlsim.test8 nr_dlsim.test9 nr_dlsim.test10 nr_dlsim.test11 nr_dlsim.test12 nr_dlsim.test13 nr_dlsim.test14 nr_dlsim.test15 nr_dlsim.test16 nr_dlsim.test17 nr_dlsim.test18 nr_dlsim.test19 nr_dlsim.test20 nr_dlsim.test21 nr_dlsim.test22 nr_dlsim.test23
</tags>
-n100 -m0 -e0 -R25 -b25 -i 2 1 0
-n100 -e0 -t99 -S-1.0 -i 2 1 0
</main_exec_args>
<tags>
nr_dlsim.test1 nr_dlsim.test2 nr_dlsim.test3 nr_dlsim.test4 nr_dlsim.test5 nr_dlsim.test6 nr_dlsim.test7 nr_dlsim.test8 nr_dlsim.test9 nr_dlsim.test10 nr_dlsim.test11 nr_dlsim.test12 nr_dlsim.test13 nr_dlsim.test14 nr_dlsim.test15 nr_dlsim.test16 nr_dlsim.test17 nr_dlsim.test18 nr_dlsim.test19 nr_dlsim.test20 nr_dlsim.test21 nr_dlsim.test22 nr_dlsim.test23 nr_dlsim.test24
</tags>
<search_expr_true>
PDSCH test OK
</search_expr_true>
<search_expr_false>
segmentation fault|assertion|exiting|fatal
</search_expr_false>
<nruns>
3
</nruns>
...
...
@@ -1314,7 +1316,8 @@
(Test18: 25 PRBs, 15 kHz SCS),
(Test19: 3GPP G-FR1-A4-13 2 RX Antennas Requirements Test),
(Test20: 3GPP G-FR1-A4-13 4 RX Antennas Requirements Test),
(Test21: 3GPP G-FR1-A4-13 8 RX Antennas Requirements Test)
</desc>
(Test21: 3GPP G-FR1-A4-13 8 RX Antennas Requirements Test),
(Test22: MCS 0, low SNR performance)
</desc>
<pre_compile_prog></pre_compile_prog>
<compile_prog>
$OPENAIR_DIR/cmake_targets/build_oai
</compile_prog>
<compile_prog_args>
--phy_simulators -c
</compile_prog_args>
...
...
@@ -1341,9 +1344,9 @@
-n100 -u0 -m0 -R25 -r25 -i 2 1 0
-m16 -r106 -s8.8 -S9.4 -z2 -n200 -U 4 1 1 1 2 -gI -b14 -t70 -I15 -i 2 1 0
-m16 -r106 -s5.4 -S6 -z4 -n200 -U 4 1 1 1 2 -gI -b14 -t70 -I15 -i 2 1 0
-m16 -r106 -s3.4 -S3.8 -z8 -n200 -U 4 1 1 1 2 -gI -b14 -t70 -I15 -i 2 1 0
</main_exec_args>
<tags>
nr_ulsim.test1 nr_ulsim.test2 nr_ulsim.test3 nr_ulsim.test4 nr_ulsim.test5 nr_ulsim.test6 nr_ulsim.test7 nr_ulsim.test8 nr_ulsim.test9 nr_ulsim.test10 nr_ulsim.test11 nr_ulsim.test12 nr_ulsim.test13 nr_ulsim.test14 nr_ulsim.test15 nr_ulsim.test16 nr_ulsim.test17 nr_ulsim.test18 nr_ulsim.test19 nr_ulsim.test20 nr_ulsim.test21
</tags>
-m16 -r106 -s3.4 -S3.8 -z8 -n200 -U 4 1 1 1 2 -gI -b14 -t70 -I15 -i 2 1 0
-n100 -m0 -S -0.8 -i 2 1 0
</main_exec_args>
<tags>
nr_ulsim.test1 nr_ulsim.test2 nr_ulsim.test3 nr_ulsim.test4 nr_ulsim.test5 nr_ulsim.test6 nr_ulsim.test7 nr_ulsim.test8 nr_ulsim.test9 nr_ulsim.test10 nr_ulsim.test11 nr_ulsim.test12 nr_ulsim.test13 nr_ulsim.test14 nr_ulsim.test15 nr_ulsim.test16 nr_ulsim.test17 nr_ulsim.test18 nr_ulsim.test19 nr_ulsim.test20 nr_ulsim.test21
nr_ulsim.test22
</tags>
<search_expr_true>
PUSCH test OK
</search_expr_true>
<search_expr_false>
segmentation fault|assertion|exiting|fatal
</search_expr_false>
<nruns>
3
</nruns>
...
...
executables/softmodem-common.h
View file @
032d4774
...
...
@@ -209,6 +209,7 @@ extern int usrp_tx_thread;
#define SOFTMODEM_NONBIOT_BIT (1<<2)
#define SOFTMODEM_RFSIM_BIT (1<<10)
#define SOFTMODEM_SIML1_BIT (1<<12)
#define SOFTMODEM_DLSIM_BIT (1<<13)
#define SOFTMODEM_DOSCOPE_BIT (1<<15)
#define SOFTMODEM_RECPLAY_BIT (1<<16)
#define SOFTMODEM_TELNETCLT_BIT (1<<17)
...
...
@@ -225,6 +226,7 @@ extern int usrp_tx_thread;
#define IS_SOFTMODEM_NONBIOT ( get_softmodem_optmask() & SOFTMODEM_NONBIOT_BIT)
#define IS_SOFTMODEM_RFSIM ( get_softmodem_optmask() & SOFTMODEM_RFSIM_BIT)
#define IS_SOFTMODEM_SIML1 ( get_softmodem_optmask() & SOFTMODEM_SIML1_BIT)
#define IS_SOFTMODEM_DLSIM ( get_softmodem_optmask() & SOFTMODEM_DLSIM_BIT)
#define IS_SOFTMODEM_DOSCOPE ( get_softmodem_optmask() & SOFTMODEM_DOSCOPE_BIT)
#define IS_SOFTMODEM_IQPLAYER ( get_softmodem_optmask() & SOFTMODEM_RECPLAY_BIT)
#define IS_SOFTMODEM_TELNETCLT_BIT ( get_softmodem_optmask() & SOFTMODEM_TELNETCLT_BIT)
...
...
openair1/PHY/NR_TRANSPORT/nr_dlsch.c
View file @
032d4774
...
...
@@ -38,6 +38,7 @@
#include "PHY/NR_REFSIG/ptrs_nr.h"
#include "common/utils/LOG/vcd_signal_dumper.h"
#include "common/utils/nr/nr_common.h"
#include "executables/softmodem-common.h"
//#define DEBUG_DLSCH
//#define DEBUG_DLSCH_MAPPING
...
...
@@ -153,6 +154,9 @@ void nr_generate_pdsch(processingData_L1tx_t *msgTx,
printf
(
"
\n
"
);
#endif
if
(
IS_SOFTMODEM_DLSIM
)
memcpy
(
harq
->
f
,
output
,
encoded_length
);
for
(
int
q
=
0
;
q
<
rel15
->
NrOfCodewords
;
q
++
)
{
/// scrambling
start_meas
(
dlsch_scrambling_stats
);
...
...
openair1/PHY/NR_TRANSPORT/nr_dlsch_coding.c
View file @
032d4774
...
...
@@ -69,6 +69,10 @@ void free_gNB_dlsch(NR_gNB_DLSCH_t **dlschptr,
free16
(
harq
->
b
,
a_segments
*
1056
);
harq
->
b
=
NULL
;
}
if
(
harq
->
f
)
{
free16
(
harq
->
f
,
N_RB
*
NR_SYMBOLS_PER_SLOT
*
NR_NB_SC_PER_RB
*
8
*
NR_MAX_NB_LAYERS
);
harq
->
f
=
NULL
;
}
for
(
int
r
=
0
;
r
<
a_segments
;
r
++
)
{
free
(
harq
->
c
[
r
]);
harq
->
c
[
r
]
=
NULL
;
...
...
@@ -177,6 +181,10 @@ NR_gNB_DLSCH_t *new_gNB_dlsch(NR_DL_FRAME_PARMS *frame_parms,
bzero
(
harq
->
c
[
r
],
8448
);
}
harq
->
f
=
malloc16
(
N_RB
*
NR_SYMBOLS_PER_SLOT
*
NR_NB_SC_PER_RB
*
8
*
NR_MAX_NB_LAYERS
);
AssertFatal
(
harq
->
f
,
"cannot allocate harq->f
\n
"
);
bzero
(
harq
->
f
,
N_RB
*
NR_SYMBOLS_PER_SLOT
*
NR_NB_SC_PER_RB
*
8
*
NR_MAX_NB_LAYERS
);
return
(
dlsch
);
}
...
...
openair1/PHY/NR_TRANSPORT/nr_ulsch_llr_computation.c
View file @
032d4774
...
...
@@ -44,19 +44,19 @@ void nr_ulsch_qpsk_llr(int32_t *rxdataF_comp,
uint32_t
nb_re
,
uint8_t
symbol
)
{
uint32_t
*
rxF
=
(
uint32_t
*
)
rxdataF_comp
;
uint32_t
*
llr32
=
(
uint32_t
*
)
ulsch_llr
;
c16_t
*
rxF
=
(
c16_t
*
)
rxdataF_comp
;
c16_t
*
llr32
=
(
c16_t
*
)
ulsch_llr
;
if
(
!
llr32
)
{
LOG_E
(
PHY
,
"nr_ulsch_qpsk_llr: llr is null, symbol %d, llr32 = %p
\n
"
,
symbol
,
llr32
);
}
/*
for (i = 0; i < nb_re; i++) {
*llr32 = *rxF;
for
(
int
i
=
0
;
i
<
nb_re
;
i
++
)
{
//*llr32 = *rxF;
llr32
->
r
=
rxF
->
r
>>
3
;
llr32
->
i
=
rxF
->
i
>>
3
;
rxF
++
;
llr32
++
;
}*/
memcpy1
((
void
*
)
llr32
,(
void
*
)
rxF
,
nb_re
<<
2
);
}
}
//----------------------------------------------------------------------------------------------
...
...
openair1/PHY/NR_UE_ESTIMATION/filt16a_32.c
View file @
032d4774
...
...
@@ -93,7 +93,7 @@ short filt16a_m3_dc[16] = {
-
9831
,
-
6554
,
-
3277
,
0
,
3276
,
6553
,
9830
,
16384
,
12288
,
8192
,
4096
,
0
,
0
,
0
,
0
,
0
};
short
filt16a_1
[
16
]
=
{
16384
,
16384
,
16384
,
16384
,
16384
,
16384
,
16384
,
16384
,
16384
,
16384
,
16384
,
16384
};
16384
,
16384
,
16384
,
16384
,
16384
,
16384
,
16384
,
16384
,
16384
,
16384
,
16384
,
16384
,
0
,
0
,
0
,
0
};
short
filt16a_2l0
[
16
]
=
{
16384
,
12288
,
8192
,
4096
,
-
4096
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
};
...
...
@@ -295,4 +295,4 @@ short filt24_end[24] = {
short
filt24_middle
[
24
]
=
{
4096
,
4779
,
5461
,
6144
,
6827
,
7509
,
8192
,
8875
,
9557
,
10240
,
10923
,
11605
,
12288
,
11605
,
10923
,
10240
,
9557
,
8875
,
8192
,
7509
,
6827
,
6144
,
5461
,
4779
};
\ No newline at end of file
12288
,
11605
,
10923
,
10240
,
9557
,
8875
,
8192
,
7509
,
6827
,
6144
,
5461
,
4779
};
openair1/PHY/NR_UE_ESTIMATION/nr_dl_channel_estimation.c
View file @
032d4774
...
...
@@ -34,6 +34,7 @@
//#define DEBUG_PDSCH
//#define DEBUG_PDCCH
#define CH_INTERP 0
#define NO_INTERP 1
int
nr_pbch_dmrs_correlation
(
PHY_VARS_NR_UE
*
ue
,
...
...
@@ -477,7 +478,7 @@ int nr_pdcch_channel_estimation(PHY_VARS_NR_UE *ue,
unsigned
char
aarx
;
unsigned
short
k
;
unsigned
int
pilot_cnt
;
int16_t
ch
[
2
],
*
pil
,
*
rxF
,
*
dl_ch
,
*
fl
,
*
fm
,
*
fr
;
int16_t
ch
[
2
],
*
pil
,
*
rxF
,
*
dl_ch
;
int
ch_offset
,
symbol_offset
;
int
**
rxdataF
=
ue
->
common_vars
.
common_vars_rx_data_per_thread
[
proc
->
thread_id
].
rxdataF
;
...
...
@@ -492,9 +493,11 @@ int nr_pdcch_channel_estimation(PHY_VARS_NR_UE *ue,
proc
->
thread_id
,
gNB_id
,
ch_offset
,
ue
->
frame_parms
.
ofdm_symbol_size
,
ue
->
frame_parms
.
Ncp
,
Ns
,
symbol
);
#endif
fl
=
filt16a_l1
;
fm
=
filt16a_m1
;
fr
=
filt16a_r1
;
#if CH_INTERP
int16_t
*
fl
=
filt16a_l1
;
int16_t
*
fm
=
filt16a_m1
;
int16_t
*
fr
=
filt16a_r1
;
#endif
// checking if re-initialization of scrambling IDs is needed (should be done here but scrambling ID for PDCCH is not taken from RRC)
if
(
scrambling_id
!=
ue
->
scramblingID_pdcch
){
...
...
@@ -523,6 +526,7 @@ int nr_pdcch_channel_estimation(PHY_VARS_NR_UE *ue,
printf
(
"dl_ch addr %p
\n
"
,
dl_ch
);
#endif
#if CH_INTERP
// if ((ue->frame_parms.N_RB_DL&1)==0) {
// Treat first 2 pilots specially (left edge)
ch
[
0
]
=
(
int16_t
)(((
int32_t
)
pil
[
0
]
*
rxF
[
0
]
-
(
int32_t
)
pil
[
1
]
*
rxF
[
1
])
>>
15
);
...
...
@@ -651,6 +655,33 @@ int nr_pdcch_channel_estimation(PHY_VARS_NR_UE *ue,
rxF
+=
8
;
k
+=
4
;
}
#else //ELSE CH_INTERP
int
ch_sum
[
2
]
=
{
0
,
0
};
for
(
pilot_cnt
=
0
;
pilot_cnt
<
3
*
nb_rb_coreset
;
pilot_cnt
++
)
{
if
(
k
>=
ue
->
frame_parms
.
ofdm_symbol_size
)
{
k
-=
ue
->
frame_parms
.
ofdm_symbol_size
;
rxF
=
(
int16_t
*
)
&
rxdataF
[
aarx
][(
symbol_offset
+
k
+
1
)];
}
#ifdef DEBUG_PDCCH
printf
(
"pilot[%d] = (%d, %d)
\t
rxF[%d] = (%d, %d)
\n
"
,
pilot_cnt
,
pil
[
0
],
pil
[
1
],
k
+
1
,
rxF
[
0
],
rxF
[
1
]);
#endif
ch_sum
[
0
]
+=
(
int16_t
)(((
int32_t
)
pil
[
0
]
*
rxF
[
0
]
-
(
int32_t
)
pil
[
1
]
*
rxF
[
1
])
>>
15
);
ch_sum
[
1
]
+=
(
int16_t
)(((
int32_t
)
pil
[
0
]
*
rxF
[
1
]
+
(
int32_t
)
pil
[
1
]
*
rxF
[
0
])
>>
15
);
pil
+=
2
;
rxF
+=
8
;
k
+=
4
;
if
(
pilot_cnt
%
3
==
2
)
{
ch
[
0
]
=
ch_sum
[
0
]
/
3
;
ch
[
1
]
=
ch_sum
[
1
]
/
3
;
multadd_real_vector_complex_scalar
(
filt16a_1
,
ch
,
dl_ch
,
16
);
dl_ch
+=
24
;
ch_sum
[
0
]
=
0
;
ch_sum
[
1
]
=
0
;
}
}
#endif //END CH_INTERP
//}
...
...
openair1/PHY/NR_UE_TRANSPORT/dci_nr.c
View file @
032d4774
...
...
@@ -918,7 +918,7 @@ uint8_t nr_dci_decoding_procedure(PHY_VARS_NR_UE *ue,
proc
->
frame_rx
,
proc
->
nr_slot_rx
,
n_rnti
,
nr_dci_format_string
[
rel15
->
dci_format_options
[
k
]],
CCEind
,
dci_length
,
*
(
unsigned
long
long
*
)
dci_estimation
);
uint16_t
mb
=
nr_dci_false_detection
(
dci_estimation
,
tmp_e
,
L
*
108
,
n_rnti
,
NR_POLAR_DCI_MESSAGE_TYPE
,
dci_length
,
L
);
ue
->
dci_thres
=
(
ue
->
dci_thres
+
mb
)
/
2
;
if
(
mb
>
(
ue
->
dci_thres
+
2
0
))
{
if
(
mb
>
(
ue
->
dci_thres
+
3
0
))
{
LOG_W
(
PHY
,
"DCI false positive. Dropping DCI index %d. Mismatched bits: %d/%d. Current DCI threshold: %d
\n
"
,
j
,
mb
,
L
*
108
,
ue
->
dci_thres
);
continue
;
}
...
...
openair1/PHY/NR_UE_TRANSPORT/nr_dlsch_llr_computation.c
View file @
032d4774
...
...
@@ -638,11 +638,10 @@ int nr_dlsch_qpsk_llr(NR_DL_FRAME_PARMS *frame_parms,
uint8_t
beamforming_mode
)
{
uint32_t
*
rxF
=
(
uint32
_t
*
)
&
rxdataF_comp
[((
int32_t
)
symbol
*
nb_rb
*
12
)];
uint32_t
*
llr32
;
c16_t
*
rxF
=
(
c16
_t
*
)
&
rxdataF_comp
[((
int32_t
)
symbol
*
nb_rb
*
12
)];
c16_t
*
llr32
=
(
c16_t
*
)
dlsch_llr
;
int
i
;
llr32
=
(
uint32_t
*
)
dlsch_llr
;
if
(
!
llr32
)
{
LOG_E
(
PHY
,
"nr_dlsch_qpsk_llr: llr is null, symbol %d, llr32=%p
\n
"
,
symbol
,
llr32
);
return
(
-
1
);
...
...
@@ -656,8 +655,10 @@ int nr_dlsch_qpsk_llr(NR_DL_FRAME_PARMS *frame_parms,
llr32);
*/
for
(
i
=
0
;
i
<
len
;
i
++
)
{
*
llr32
=
*
rxF
;
//printf("dlsch_qpsk_llr %d : (%d,%d)\n",i,((int16_t*)llr32)[0],((int16_t*)llr32)[1]);
//*llr32 = *rxF;
llr32
->
r
=
rxF
->
r
>>
3
;
llr32
->
i
=
rxF
->
i
>>
3
;
//printf("dlsch_qpsk_llr %d : (%d,%d)\n", i, llr32->r, llr32->i);
rxF
++
;
llr32
++
;
}
...
...
openair1/PHY/defs_gNB.h
View file @
032d4774
...
...
@@ -96,6 +96,8 @@ typedef struct {
uint32_t
subframe
;
/// MIMO mode for this DLSCH
MIMO_mode_t
mimo_mode
;
/// Interleaver outputs
uint8_t
*
f
;
/// LDPC lifting size
uint32_t
Z
;
}
NR_DL_gNB_HARQ_t
;
...
...
openair1/PHY/defs_nr_UE.h
View file @
032d4774
...
...
@@ -773,8 +773,6 @@ typedef struct {
uint32_t
X_u
[
64
][
839
];
uint32_t
perfect_ce
;
// flag to activate PRB based averaging of channel estimates
// when off, defaults to frequency domain interpolation
int
chest_freq
;
...
...
openair1/SIMULATION/NR_PHY/dlsim.c
View file @
032d4774
This diff is collapsed.
Click to expand it.
openair1/SIMULATION/NR_PHY/pbchsim.c
View file @
032d4774
...
...
@@ -561,8 +561,6 @@ int main(int argc, char **argv)
if
(
run_initial_sync
==
1
)
UE
->
is_synchronized
=
0
;
else
UE
->
is_synchronized
=
1
;
UE
->
perfect_ce
=
0
;
if
(
eps
!=
0
.
0
)
UE
->
UE_fo_compensation
=
1
;
// if a frequency offset is set then perform fo estimation and compensation
...
...
openair1/SIMULATION/NR_PHY/pucchsim.c
View file @
032d4774
...
...
@@ -476,7 +476,6 @@ int main(int argc, char **argv)
UE
=
calloc
(
1
,
sizeof
(
PHY_VARS_NR_UE
));
memcpy
(
&
UE
->
frame_parms
,
frame_parms
,
sizeof
(
NR_DL_FRAME_PARMS
));
UE
->
frame_parms
.
nb_antennas_rx
=
1
;
UE
->
perfect_ce
=
0
;
if
(
eps
!=
0
.
0
)
UE
->
UE_fo_compensation
=
1
;
// if a frequency offset is set then perform fo estimation and compensation
...
...
openair1/SIMULATION/NR_PHY/ulsim.c
View file @
032d4774
...
...
@@ -475,7 +475,7 @@ int main(int argc, char **argv)
case
'q'
:
mcs_table
=
atoi
(
optarg
);
break
;
case
'r'
:
nb_rb
=
atoi
(
optarg
);
break
;
...
...
@@ -606,7 +606,7 @@ int main(int argc, char **argv)
default:
case
'h'
:
printf
(
"%s -h(elp) -p(extended_prefix) -N cell_id -f output_filename -F input_filename -g channel_model -
n n_frames -s snr0 -S snr1 -x transmission_mode -y TXant -z RXant -i Intefrence0 -j Interference1
-A interpolation_file -C(alibration offset dB) -N CellId -Z Enable SC-FDMA in Uplink
\n
"
,
argv
[
0
]);
printf
(
"%s -h(elp) -p(extended_prefix) -N cell_id -f output_filename -F input_filename -g channel_model -
i Intefrence0 -j Interference1 -n n_frames -s snr0 -S snr1 -t Delayspread -x transmission_mode -y TXant -z RXant
-A interpolation_file -C(alibration offset dB) -N CellId -Z Enable SC-FDMA in Uplink
\n
"
,
argv
[
0
]);
//printf("-d Use TDD\n");
printf
(
"-d Introduce delay in terms of number of samples
\n
"
);
printf
(
"-f Number of frames to simulate
\n
"
);
...
...
@@ -629,7 +629,7 @@ int main(int argc, char **argv)
//printf("-C Generate Calibration information for Abstraction (effective SNR adjustment to remove Pe bias w.r.t. AWGN)\n");
printf
(
"-F Input filename (.txt format) for RX conformance testing
\n
"
);
printf
(
"-G Offset of samples to read from file (0 default)
\n
"
);
printf
(
"-L <log level, 0(errors), 1(warning), 2(info) 3(debug) 4 (trace)>
\n
"
);
printf
(
"-L <log level, 0(errors), 1(warning), 2(info) 3(debug) 4 (trace)>
\n
"
);
printf
(
"-I Maximum LDPC decoder iterations
\n
"
);
printf
(
"-M Multiple SSB positions in burst
\n
"
);
printf
(
"-N Nid_cell
\n
"
);
...
...
@@ -746,6 +746,7 @@ int main(int argc, char **argv)
gNB
->
UL_INFO
.
rx_ind
.
number_of_pdus
=
0
;
gNB
->
UL_INFO
.
crc_ind
.
number_crcs
=
0
;
gNB
->
max_ldpc_iterations
=
max_ldpc_iterations
;
gNB
->
pusch_thres
=
-
20
;
frame_parms
=
&
gNB
->
frame_parms
;
//to be initialized I suppose (maybe not necessary for PBCH)
frame_parms
->
N_RB_DL
=
N_RB_DL
;
...
...
openair2/LAYER2/NR_MAC_UE/nr_ue_scheduler.c
View file @
032d4774
...
...
@@ -839,7 +839,7 @@ int nr_config_pusch_pdu(NR_UE_MAC_INST_t *mac,
mappingtype
,
add_pos
,
dmrslength
,
pusch_config_pdu
->
start_symbol_index
,
mac
->
scc
?
mac
->
scc
->
dmrs_TypeA_Position
:
mac
->
mib
->
dmrs_TypeA_Position
);
if
(
(
mac
->
ULbwp
[
ul_bwp_id
-
1
]
&&
pusch_config_pdu
->
transform_precoding
==
NR_PUSCH_Config__transformPrecoder_disabled
)
)
{
if
(
mac
->
ULbwp
[
ul_bwp_id
-
1
]
&&
pusch_config_pdu
->
transform_precoding
==
NR_PUSCH_Config__transformPrecoder_disabled
)
{
if
(
*
dci_format
!=
NR_UL_DCI_FORMAT_0_1
)
{
pusch_config_pdu
->
num_dmrs_cdm_grps_no_data
=
1
;
}
...
...
openair2/RRC/NR/rrc_gNB_reconfig.c
View file @
032d4774
...
...
@@ -200,13 +200,16 @@ void fill_default_nsa_downlinkBWP(NR_BWP_Downlink_t *bwp,
ss2
->
nrofCandidates
=
calloc
(
1
,
sizeof
(
*
ss2
->
nrofCandidates
));
ss2
->
nrofCandidates
->
aggregationLevel1
=
NR_SearchSpace__nrofCandidates__aggregationLevel1_n0
;
ss2
->
nrofCandidates
->
aggregationLevel2
=
NR_SearchSpace__nrofCandidates__aggregationLevel2_n0
;
if
(
curr_bwp
<
48
)
if
(
curr_bwp
<
48
)
{
ss2
->
nrofCandidates
->
aggregationLevel4
=
NR_SearchSpace__nrofCandidates__aggregationLevel4_n1
;
else
if
(
curr_bwp
<
96
)
ss2
->
nrofCandidates
->
aggregationLevel8
=
NR_SearchSpace__nrofCandidates__aggregationLevel8_n0
;
}
else
if
(
curr_bwp
<
96
)
{
ss2
->
nrofCandidates
->
aggregationLevel4
=
NR_SearchSpace__nrofCandidates__aggregationLevel4_n2
;
else
ss2
->
nrofCandidates
->
aggregationLevel8
=
NR_SearchSpace__nrofCandidates__aggregationLevel8_n1
;
}
else
{
ss2
->
nrofCandidates
->
aggregationLevel4
=
NR_SearchSpace__nrofCandidates__aggregationLevel4_n4
;
ss2
->
nrofCandidates
->
aggregationLevel8
=
NR_SearchSpace__nrofCandidates__aggregationLevel8_n0
;
ss2
->
nrofCandidates
->
aggregationLevel8
=
NR_SearchSpace__nrofCandidates__aggregationLevel8_n2
;
}
ss2
->
nrofCandidates
->
aggregationLevel16
=
NR_SearchSpace__nrofCandidates__aggregationLevel16_n0
;
ss2
->
searchSpaceType
=
calloc
(
1
,
sizeof
(
*
ss2
->
searchSpaceType
));
ss2
->
searchSpaceType
->
present
=
NR_SearchSpace__searchSpaceType_PR_ue_Specific
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment