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
spbro
OpenXG-RAN
Commits
4bdc6ac5
Commit
4bdc6ac5
authored
Jan 19, 2022
by
francescomani
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
minor changes
parent
3377f91b
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
15 additions
and
33 deletions
+15
-33
openair1/PHY/NR_TRANSPORT/nr_ulsch_decoding.c
openair1/PHY/NR_TRANSPORT/nr_ulsch_decoding.c
+5
-13
openair1/PHY/NR_TRANSPORT/nr_ulsch_demodulation.c
openair1/PHY/NR_TRANSPORT/nr_ulsch_demodulation.c
+10
-19
openair1/SIMULATION/NR_PHY/ulsim.c
openair1/SIMULATION/NR_PHY/ulsim.c
+0
-1
No files found.
openair1/PHY/NR_TRANSPORT/nr_ulsch_decoding.c
View file @
4bdc6ac5
...
...
@@ -298,16 +298,7 @@ void nr_processULSegment(void* arg) {
stop_meas
(
&
phy_vars_gNB
->
ulsch_deinterleaving_stats
);
/*LOG_D(PHY,"HARQ_PID %d Rate Matching Segment %d (coded bits %d,unpunctured/repeated bits %d, TBS %d, mod_order %d, nb_rb %d, Nl %d, rv %d, round %d)...\n",
harq_pid,r, G,
Kr*3,
ulsch_harq->TBS,
Qm,
nb_rb,
n_layers,
pusch_pdu->pusch_data.rv_index,
ulsch_harq->round);*/
//////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////
...
...
@@ -387,13 +378,13 @@ void nr_processULSegment(void* arg) {
if
(
check_crc
((
uint8_t
*
)
llrProcBuf
,
length_dec
,
ulsch_harq
->
F
,
crc_type
))
{
#ifdef PRINT_CRC_CHECK
LOG_I
(
PHY
,
"Segment %d CRC OK, iterations %d/%d
\n
"
,
r
,
no_iteration_ldpc
,
max_ldpc_iterations
);
LOG_I
(
PHY
,
"Segment %d CRC OK, iterations %d/%d
\n
"
,
r
,
no_iteration_ldpc
,
max_ldpc_iterations
);
#endif
rdata
->
decodeIterations
=
no_iteration_ldpc
;
if
(
rdata
->
decodeIterations
>
p_decoderParms
->
numMaxIter
)
rdata
->
decodeIterations
--
;
}
else
{
#ifdef PRINT_CRC_CHECK
LOG_I
(
PHY
,
"CRC NOK
\n
"
);
LOG_I
(
PHY
,
"CRC NOK
\n
"
);
#endif
rdata
->
decodeIterations
=
max_ldpc_iterations
+
1
;
}
...
...
@@ -480,7 +471,8 @@ uint32_t nr_ulsch_decoding(PHY_VARS_gNB *phy_vars_gNB,
A
=
(
harq_process
->
TBS
)
<<
3
;
LOG_D
(
PHY
,
"ULSCH Decoding, harq_pid %d TBS %d G %d mcs %d Nl %d nb_rb %d, Qm %d, n_layers %d, Coderate %d
\n
"
,
harq_pid
,
A
,
G
,
mcs
,
n_layers
,
nb_rb
,
Qm
,
n_layers
,
R
);
LOG_D
(
PHY
,
"ULSCH Decoding, harq_pid %d TBS %d G %d mcs %d Nl %d nb_rb %d, Qm %d, Coderate %d RV %d round %d
\n
"
,
harq_pid
,
A
,
G
,
mcs
,
n_layers
,
nb_rb
,
Qm
,
R
,
pusch_pdu
->
pusch_data
.
rv_index
,
harq_process
->
round
);
if
(
R
<
1024
)
Coderate
=
(
float
)
R
/
(
float
)
1024
;
...
...
openair1/PHY/NR_TRANSPORT/nr_ulsch_demodulation.c
View file @
4bdc6ac5
...
...
@@ -347,14 +347,12 @@ void nr_ulsch_extract_rbs(int32_t **rxdataF,
if
(
is_dmrs_symbol
==
0
)
{
//
//rxF[ ((start_re + re)*2) % (frame_parms->ofdm_symbol_size*2)]);
if
(
start_re
+
nb_re_pusch
<
frame_parms
->
ofdm_symbol_size
)
{
if
(
start_re
+
nb_re_pusch
<
frame_parms
->
ofdm_symbol_size
)
{
memcpy1
((
void
*
)
rxF_ext
,
(
void
*
)
&
rxF
[
start_re
*
2
],
nb_re_pusch
*
sizeof
(
int32_t
));
}
else
{
else
{
int
neg_length
=
frame_parms
->
ofdm_symbol_size
-
start_re
;
int
pos_length
=
nb_re_pusch
-
neg_length
;
memcpy1
((
void
*
)
rxF_ext
,(
void
*
)
&
rxF
[
start_re
*
2
],
neg_length
*
sizeof
(
int32_t
));
...
...
@@ -373,8 +371,7 @@ void nr_ulsch_extract_rbs(int32_t **rxdataF,
memcpy1
((
void
*
)
ul_ch0_ext
,(
void
*
)
ul_ch0
,
nb_re_pusch
*
sizeof
(
int32_t
));
}
}
else
{
else
{
#ifdef SUPPORT_PMI_MATRIC
for
(
aatx
=
0
;
aatx
<
pusch_pdu
->
nrOfLayers
;
aatx
++
)
#else
...
...
@@ -390,26 +387,22 @@ void nr_ulsch_extract_rbs(int32_t **rxdataF,
ul_ch0_ext_index
=
0
;
ul_ch0_index
=
0
;
for
(
re
=
0
;
re
<
nb_re_pusch
;
re
++
)
{
for
(
re
=
0
;
re
<
nb_re_pusch
;
re
++
)
{
uint16_t
k
=
start_re
+
re
;
is_data_re
=
allowed_xlsch_re_in_dmrs_symbol
(
k
,
start_re
,
frame_parms
->
ofdm_symbol_size
,
pusch_pdu
->
num_dmrs_cdm_grps_no_data
,
pusch_pdu
->
dmrs_config_type
);
if
(
++
k
>=
frame_parms
->
ofdm_symbol_size
)
{
if
(
++
k
>=
frame_parms
->
ofdm_symbol_size
)
{
k
-=
frame_parms
->
ofdm_symbol_size
;
}
#ifdef DEBUG_RB_EXT
printf
(
"re = %d,
kprime %d, n %d, is_dmrs_symbol = %d, symbol = %d
\n
"
,
re
,
k_prime
,
n
,
is_dmrs_symbol
,
symbol
);
printf
(
"re = %d,
is_dmrs_symbol = %d, symbol = %d
\n
"
,
re
,
is_dmrs_symbol
,
symbol
);
#endif
/* save only data and respective channel estimates */
if
(
is_data_re
==
1
)
{
if
(
aatx
==
aarx
)
{
if
(
is_data_re
==
1
)
{
if
(
aatx
==
aarx
)
{
rxF_ext
[
rxF_ext_index
]
=
(
rxF
[
((
start_re
+
re
)
*
2
)
%
(
frame_parms
->
ofdm_symbol_size
*
2
)]);
rxF_ext
[
rxF_ext_index
+
1
]
=
(
rxF
[(((
start_re
+
re
)
*
2
)
+
1
)
%
(
frame_parms
->
ofdm_symbol_size
*
2
)]);
rxF_ext_index
+=
2
;
...
...
@@ -1206,8 +1199,7 @@ void nr_ulsch_detection_mrc(NR_DL_FRAME_PARMS *frame_parms,
if
(
n_rx
>
1
)
{
#if defined(__x86_64__) || defined(__i386__)
for
(
int
aatx
=
0
;
aatx
<
nrOfLayers
;
aatx
++
)
{
for
(
int
aatx
=
0
;
aatx
<
nrOfLayers
;
aatx
++
)
{
int
nb_re
=
nb_rb
*
12
;
rxdataF_comp128
[
0
]
=
(
__m128i
*
)
&
rxdataF_comp
[
aatx
*
frame_parms
->
nb_antennas_rx
][(
symbol
*
(
nb_re
+
off
))];
...
...
@@ -2002,8 +1994,7 @@ int nr_rx_pusch(PHY_VARS_gNB *gNB,
gNB
->
pusch_vars
[
ulsch_id
]
->
ulsch_power
[
aarx
]
=
0
;
gNB
->
pusch_vars
[
ulsch_id
]
->
ulsch_noise_power
[
aarx
]
=
0
;
}
for
(
aatx
=
0
;
aatx
<
rel15_ul
->
nrOfLayers
;
aatx
++
)
{
for
(
aatx
=
0
;
aatx
<
rel15_ul
->
nrOfLayers
;
aatx
++
)
{
gNB
->
pusch_vars
[
ulsch_id
]
->
ulsch_power
[
aarx
]
+=
signal_energy_nodc
(
&
gNB
->
pusch_vars
[
ulsch_id
]
->
ul_ch_estimates
[
aatx
*
gNB
->
frame_parms
.
nb_antennas_rx
+
aarx
][
symbol
*
frame_parms
->
ofdm_symbol_size
],
rel15_ul
->
rb_size
*
12
);
...
...
openair1/SIMULATION/NR_PHY/ulsim.c
View file @
4bdc6ac5
...
...
@@ -243,7 +243,6 @@ nrUE_params_t *get_nrUE_params(void) {
// needed for some functions
uint16_t
n_rnti
=
0x1234
;
openair0_config_t
openair0_cfg
[
MAX_CARDS
];
//const uint8_t nr_rv_round_map[4] = {0, 2, 1, 3};
channel_desc_t
*
UE2gNB
[
NUMBER_OF_UE_MAX
][
NUMBER_OF_gNB_MAX
];
...
...
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