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
lizhongxiao
OpenXG-RAN
Commits
63a2e611
Commit
63a2e611
authored
May 02, 2019
by
Ahmed Hussein
Committed by
Thomas Schlichter
Jun 04, 2019
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Minor fixes in "ulsim.c" and removing some warnings
parent
5d0c0be1
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
20 additions
and
15 deletions
+20
-15
openair1/PHY/MODULATION/slot_fep_nr.c
openair1/PHY/MODULATION/slot_fep_nr.c
+2
-2
openair1/PHY/NR_UE_TRANSPORT/nr_ulsch_coding.c
openair1/PHY/NR_UE_TRANSPORT/nr_ulsch_coding.c
+2
-4
openair1/SIMULATION/NR_PHY/ulsim.c
openair1/SIMULATION/NR_PHY/ulsim.c
+16
-9
No files found.
openair1/PHY/MODULATION/slot_fep_nr.c
View file @
63a2e611
...
@@ -262,8 +262,8 @@ int nr_slot_fep_ul(PHY_VARS_gNB *gNB,
...
@@ -262,8 +262,8 @@ int nr_slot_fep_ul(PHY_VARS_gNB *gNB,
else
else
rxdata_offset
=
slot_offset
+
nb_prefix_samples0
+
(
symbol
*
(
frame_parms
->
ofdm_symbol_size
+
nb_prefix_samples
))
-
SOFFSET
;
rxdata_offset
=
slot_offset
+
nb_prefix_samples0
+
(
symbol
*
(
frame_parms
->
ofdm_symbol_size
+
nb_prefix_samples
))
-
SOFFSET
;
dft
((
int16_t
*
)
&
gNB
->
common_vars
.
rxdata
[
0
][
rxdata_offset
],
dft
((
int16_t
*
)
&
gNB
->
common_vars
.
rxdata
[
aa
][
rxdata_offset
],
(
int16_t
*
)
&
gNB
->
common_vars
.
rxdataF
[
0
][
symbol
*
frame_parms
->
ofdm_symbol_size
],
1
);
(
int16_t
*
)
&
gNB
->
common_vars
.
rxdataF
[
aa
][
symbol
*
frame_parms
->
ofdm_symbol_size
],
1
);
}
}
return
(
0
);
return
(
0
);
...
...
openair1/PHY/NR_UE_TRANSPORT/nr_ulsch_coding.c
View file @
63a2e611
...
@@ -205,7 +205,6 @@ int nr_ulsch_encoding(NR_UE_ULSCH_t *ulsch,
...
@@ -205,7 +205,6 @@ int nr_ulsch_encoding(NR_UE_ULSCH_t *ulsch,
uint32_t
*
pz
;
uint32_t
*
pz
;
uint8_t
mod_order
;
uint8_t
mod_order
;
uint16_t
Kr
,
r
,
r_offset
;
uint16_t
Kr
,
r
,
r_offset
;
//uint8_t *d_tmp[MAX_NUM_DLSCH_SEGMENTS];
uint8_t
BG
;
uint8_t
BG
;
uint32_t
E
;
uint32_t
E
;
uint8_t
Ilbrm
;
uint8_t
Ilbrm
;
...
@@ -255,7 +254,7 @@ int nr_ulsch_encoding(NR_UE_ULSCH_t *ulsch,
...
@@ -255,7 +254,7 @@ int nr_ulsch_encoding(NR_UE_ULSCH_t *ulsch,
G
=
nr_get_G
(
nb_rb
,
nb_symb_sch
,
nb_re_dmrs
,
length_dmrs
,
mod_order
,
harq_process
->
Nl
);
G
=
nr_get_G
(
nb_rb
,
nb_symb_sch
,
nb_re_dmrs
,
length_dmrs
,
mod_order
,
harq_process
->
Nl
);
LOG_D
(
PHY
,
"ulsch coding A %d G %d mod_order %d
\n
"
,
A
,
G
,
mod_order
);
LOG_D
(
PHY
,
"ulsch coding A %d G %d mod_order %d
\n
"
,
A
,
G
,
mod_order
);
printf
(
"ulsch coding A %d G %d mod_order %d
\n
"
,
A
,
G
,
mod_order
);
Tbslbrm
=
nr_compute_tbs
(
28
,
nb_rb
,
frame_parms
->
symbols_per_slot
,
0
,
0
,
harq_process
->
Nl
);
Tbslbrm
=
nr_compute_tbs
(
28
,
nb_rb
,
frame_parms
->
symbols_per_slot
,
0
,
0
,
harq_process
->
Nl
);
...
@@ -316,6 +315,7 @@ int nr_ulsch_encoding(NR_UE_ULSCH_t *ulsch,
...
@@ -316,6 +315,7 @@ int nr_ulsch_encoding(NR_UE_ULSCH_t *ulsch,
Kr_bytes
=
Kr
>>
3
;
Kr_bytes
=
Kr
>>
3
;
#endif
#endif
printf
(
"ulsch coding A %d G %d mod_order %d C %d
\n
"
,
A
,
G
,
mod_order
,
harq_process
->
C
);
///////////
///////////
/////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////
...
@@ -327,7 +327,6 @@ int nr_ulsch_encoding(NR_UE_ULSCH_t *ulsch,
...
@@ -327,7 +327,6 @@ int nr_ulsch_encoding(NR_UE_ULSCH_t *ulsch,
//start_meas(te_stats);
//start_meas(te_stats);
for
(
r
=
0
;
r
<
harq_process
->
C
;
r
++
)
{
for
(
r
=
0
;
r
<
harq_process
->
C
;
r
++
)
{
//d_tmp[r] = &harq_process->d[r][0];
//channel_input[r] = &harq_process->d[r][0];
//channel_input[r] = &harq_process->d[r][0];
#ifdef DEBUG_DLSCH_CODING
#ifdef DEBUG_DLSCH_CODING
printf
(
"Encoder: B %d F %d
\n
"
,
harq_process
->
B
,
harq_process
->
F
);
printf
(
"Encoder: B %d F %d
\n
"
,
harq_process
->
B
,
harq_process
->
F
);
...
@@ -354,7 +353,6 @@ int nr_ulsch_encoding(NR_UE_ULSCH_t *ulsch,
...
@@ -354,7 +353,6 @@ int nr_ulsch_encoding(NR_UE_ULSCH_t *ulsch,
}
}
printf("\n");*/
printf("\n");*/
//ldpc_encoder_optim_8seg(harq_process->c,d_tmp,Kr,BG,harq_process->C,NULL,NULL,NULL,NULL);
ldpc_encoder_optim_8seg
(
harq_process
->
c
,
harq_process
->
d
,
Kr
,
BG
,
harq_process
->
C
,
NULL
,
NULL
,
NULL
,
NULL
);
ldpc_encoder_optim_8seg
(
harq_process
->
c
,
harq_process
->
d
,
Kr
,
BG
,
harq_process
->
C
,
NULL
,
NULL
,
NULL
,
NULL
);
//stop_meas(te_stats);
//stop_meas(te_stats);
...
...
openair1/SIMULATION/NR_PHY/ulsim.c
View file @
63a2e611
...
@@ -216,7 +216,6 @@ int main(int argc, char **argv) {
...
@@ -216,7 +216,6 @@ int main(int argc, char **argv) {
int
frame
=
0
;
int
frame
=
0
;
int
frame_length_complex_samples
;
int
frame_length_complex_samples
;
NR_DL_FRAME_PARMS
*
frame_parms
;
NR_DL_FRAME_PARMS
*
frame_parms
;
int
ret
;
int
loglvl
=
OAILOG_WARNING
;
int
loglvl
=
OAILOG_WARNING
;
uint64_t
SSB_positions
=
0x01
;
uint64_t
SSB_positions
=
0x01
;
uint16_t
nb_symb_sch
=
12
;
uint16_t
nb_symb_sch
=
12
;
...
@@ -227,7 +226,7 @@ int main(int argc, char **argv) {
...
@@ -227,7 +226,7 @@ int main(int argc, char **argv) {
int
ap
;
int
ap
;
int
tx_offset
;
int
tx_offset
;
double
txlev
;
double
txlev
;
int
start_rb
=
9
0
;
int
start_rb
=
3
0
;
cpuf
=
get_cpu_freq_GHz
();
cpuf
=
get_cpu_freq_GHz
();
...
@@ -501,7 +500,6 @@ int main(int argc, char **argv) {
...
@@ -501,7 +500,6 @@ int main(int argc, char **argv) {
ulsim_params
.
n_rnti
=
n_rnti
;
ulsim_params
.
n_rnti
=
n_rnti
;
unsigned
char
harq_pid
=
0
;
unsigned
char
harq_pid
=
0
;
uint8_t
is_crnti
=
0
;
unsigned
int
TBS
=
8424
;
unsigned
int
TBS
=
8424
;
unsigned
int
available_bits
;
unsigned
int
available_bits
;
uint8_t
nb_re_dmrs
=
UE
->
dmrs_UplinkConfig
.
pusch_maxLength
*
(
UE
->
dmrs_UplinkConfig
.
pusch_dmrs_type
==
pusch_dmrs_type1
)
?
6
:
4
;
uint8_t
nb_re_dmrs
=
UE
->
dmrs_UplinkConfig
.
pusch_maxLength
*
(
UE
->
dmrs_UplinkConfig
.
pusch_dmrs_type
==
pusch_dmrs_type1
)
?
6
:
4
;
...
@@ -518,9 +516,6 @@ int main(int argc, char **argv) {
...
@@ -518,9 +516,6 @@ int main(int argc, char **argv) {
NR_UE_ULSCH_t
**
ulsch_ue
=
UE
->
ulsch
[
0
][
0
];
NR_UE_ULSCH_t
**
ulsch_ue
=
UE
->
ulsch
[
0
][
0
];
printf
(
"available bits %d TBS %d mod_order %d
\n
"
,
available_bits
,
TBS
,
mod_order
);
// --------- setting rel15_ul parameters ----------
// --------- setting rel15_ul parameters ----------
rel15_ul
->
rnti
=
n_rnti
;
rel15_ul
->
rnti
=
n_rnti
;
rel15_ul
->
ulsch_pdu_rel15
.
start_rb
=
start_rb
;
rel15_ul
->
ulsch_pdu_rel15
.
start_rb
=
start_rb
;
...
@@ -577,6 +572,8 @@ int main(int argc, char **argv) {
...
@@ -577,6 +572,8 @@ int main(int argc, char **argv) {
txlev
=
txlev
/
(
double
)
AMP
;
// output of signal_energy is fixed point representation
txlev
=
txlev
/
(
double
)
AMP
;
// output of signal_energy is fixed point representation
printf
(
"
\n
"
);
for
(
SNR
=
snr0
;
SNR
<
snr1
;
SNR
+=
snr_step
)
{
for
(
SNR
=
snr0
;
SNR
<
snr1
;
SNR
+=
snr_step
)
{
n_errors
=
0
;
n_errors
=
0
;
...
@@ -610,20 +607,26 @@ int main(int argc, char **argv) {
...
@@ -610,20 +607,26 @@ int main(int argc, char **argv) {
//---------------------- count errors ----------------------
//---------------------- count errors ----------------------
//----------------------------------------------------------
//----------------------------------------------------------
for
(
i
=
0
;
i
<
TBS
;
i
++
)
{
for
(
i
=
0
;
i
<
available_bits
;
i
++
)
{
if
(((
ulsch_ue
[
0
]
->
g
[
i
]
==
0
)
&&
(
gNB
->
pusch_vars
[
UE_id
]
->
llr
[
i
]
<=
0
))
||
if
(((
ulsch_ue
[
0
]
->
g
[
i
]
==
0
)
&&
(
gNB
->
pusch_vars
[
UE_id
]
->
llr
[
i
]
<=
0
))
||
((
ulsch_ue
[
0
]
->
g
[
i
]
==
1
)
&&
(
gNB
->
pusch_vars
[
UE_id
]
->
llr
[
i
]
>=
0
)))
((
ulsch_ue
[
0
]
->
g
[
i
]
==
1
)
&&
(
gNB
->
pusch_vars
[
UE_id
]
->
llr
[
i
]
>=
0
)))
{
{
if
(
errors_scrambling
==
0
)
if
(
errors_scrambling
==
0
)
printf
(
"First bit in error = %d
\n
"
,
i
);
printf
(
"First bit in error
in unscrambling
= %d
\n
"
,
i
);
errors_scrambling
++
;
errors_scrambling
++
;
}
}
}
for
(
i
=
0
;
i
<
TBS
;
i
++
)
{
estimated_output_bit
[
i
]
=
(
ulsch_gNB
->
harq_processes
[
harq_pid
]
->
b
[
i
/
8
]
&
(
1
<<
(
i
&
7
)))
>>
(
i
&
7
);
estimated_output_bit
[
i
]
=
(
ulsch_gNB
->
harq_processes
[
harq_pid
]
->
b
[
i
/
8
]
&
(
1
<<
(
i
&
7
)))
>>
(
i
&
7
);
test_input_bit
[
i
]
=
(
test_input
[
i
/
8
]
&
(
1
<<
(
i
&
7
)))
>>
(
i
&
7
);
// Further correct for multiple segments
test_input_bit
[
i
]
=
(
test_input
[
i
/
8
]
&
(
1
<<
(
i
&
7
)))
>>
(
i
&
7
);
// Further correct for multiple segments
if
(
estimated_output_bit
[
i
]
!=
test_input_bit
[
i
])
{
if
(
estimated_output_bit
[
i
]
!=
test_input_bit
[
i
])
{
if
(
errors_bit
==
0
)
printf
(
"First bit in error in decoding = %d
\n
"
,
i
);
errors_bit
++
;
errors_bit
++
;
}
}
...
@@ -641,17 +644,21 @@ int main(int argc, char **argv) {
...
@@ -641,17 +644,21 @@ int main(int argc, char **argv) {
if
(
n_trials
==
1
)
if
(
n_trials
==
1
)
printf
(
"errors_bit %d (trial %d)
\n
"
,
errors_bit
,
trial
);
printf
(
"errors_bit %d (trial %d)
\n
"
,
errors_bit
,
trial
);
}
}
printf
(
"
\n
"
);
}
// [hna] for (trial = 0; trial < n_trials; trial++)
}
// [hna] for (trial = 0; trial < n_trials; trial++)
printf
(
"*****************************************
\n
"
);
printf
(
"*****************************************
\n
"
);
printf
(
"SNR %f, (false positive %f)
\n
"
,
SNR
,
printf
(
"SNR %f, (false positive %f)
\n
"
,
SNR
,
(
float
)
n_false_positive
/
(
float
)
n_trials
);
(
float
)
n_false_positive
/
(
float
)
n_trials
);
printf
(
"*****************************************
\n
"
);
printf
(
"*****************************************
\n
"
);
printf
(
"
\n
"
);
if
(
errors_bit
==
0
)
{
if
(
errors_bit
==
0
)
{
printf
(
"PUSCH test OK
\n
"
);
printf
(
"PUSCH test OK
\n
"
);
printf
(
"
\n
"
);
break
;
break
;
}
}
printf
(
"
\n
"
);
}
// [hna] for (SNR = snr0; SNR < snr1; SNR += snr_step)
}
// [hna] for (SNR = snr0; SNR < snr1; SNR += snr_step)
...
@@ -665,7 +672,7 @@ int main(int argc, char **argv) {
...
@@ -665,7 +672,7 @@ int main(int argc, char **argv) {
free_gNB_ulsch
(
gNB
->
ulsch
[
0
][
i
]);
free_gNB_ulsch
(
gNB
->
ulsch
[
0
][
i
]);
printf
(
"gNB ulsch[%d][%d]
\n
"
,
UE_id
,
i
);
printf
(
"gNB ulsch[%d][%d]
\n
"
,
UE_id
+
1
,
i
);
free_gNB_ulsch
(
gNB
->
ulsch
[
UE_id
+
1
][
i
]);
// "+1" because first element in ulsch is for RA
free_gNB_ulsch
(
gNB
->
ulsch
[
UE_id
+
1
][
i
]);
// "+1" because first element in ulsch is for RA
...
...
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