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
promise
OpenXG-RAN
Commits
ad0dff82
Commit
ad0dff82
authored
4 years ago
by
Florian Kaltenberger
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
moving the OFDM phase rotation from RU to DU
parent
dc3659f7
Changes
7
Show whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
54 additions
and
72 deletions
+54
-72
executables/nr-gnb.c
executables/nr-gnb.c
+8
-0
executables/nr-ru.c
executables/nr-ru.c
+2
-2
openair1/PHY/MODULATION/nr_modulation.h
openair1/PHY/MODULATION/nr_modulation.h
+6
-0
openair1/PHY/MODULATION/slot_fep_nr.c
openair1/PHY/MODULATION/slot_fep_nr.c
+23
-9
openair1/SCHED_NR/nr_ru_procedures.c
openair1/SCHED_NR/nr_ru_procedures.c
+0
-32
openair1/SCHED_NR/phy_procedures_nr_gNB.c
openair1/SCHED_NR/phy_procedures_nr_gNB.c
+14
-1
openair1/SIMULATION/NR_PHY/dlsim.c
openair1/SIMULATION/NR_PHY/dlsim.c
+1
-28
No files found.
executables/nr-gnb.c
View file @
ad0dff82
...
...
@@ -208,6 +208,14 @@ static inline int rxtx(PHY_VARS_gNB *gNB, int frame_rx, int slot_rx, int frame_t
L1_nr_prach_procedures
(
gNB
,
frame_rx
,
slot_rx
,
&
gNB
->
prach_vars
.
list
[
prach_id
].
pdu
);
gNB
->
prach_vars
.
list
[
prach_id
].
frame
=-
1
;
}
//apply the rx signal rotation here
apply_nr_rotation_ul
(
&
gNB
->
frame_parms
,
gNB
->
common_vars
.
rxdataF
[
0
],
slot_rx
,
0
,
gNB
->
frame_parms
->
Ncp
==
EXTENDED
?
12
:
14
,
gNB
->
frame_parms
->
ofdm_symbol_size
);
phy_procedures_gNB_uespec_RX
(
gNB
,
frame_rx
,
slot_rx
);
}
...
...
This diff is collapsed.
Click to expand it.
executables/nr-ru.c
View file @
ad0dff82
...
...
@@ -861,9 +861,9 @@ void *ru_thread_prach( void *param ) {
if
(
wait_on_condition
(
&
proc
->
mutex_prach
,
&
proc
->
cond_prach
,
&
proc
->
instance_cnt_prach
,
"ru_prach_thread"
)
<
0
)
break
;
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_RU_PRACH_RX
,
1
);
/*
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME( VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_RU_PRACH_RX, 1 );
/*
if (ru->gNB_list[0]){
if (ru->gNB_list[0]){
prach_procedures(
ru->gNB_list[0],0
);
...
...
This diff is collapsed.
Click to expand it.
openair1/PHY/MODULATION/nr_modulation.h
View file @
ad0dff82
...
...
@@ -112,4 +112,10 @@ void apply_nr_rotation(NR_DL_FRAME_PARMS *fp,
void
init_symbol_rotation
(
NR_DL_FRAME_PARMS
*
fp
,
uint64_t
CarrierFreq
);
void
apply_nr_rotation_ul
(
NR_DL_FRAME_PARMS
*
frame_parms
,
int32_t
*
rxdataF
,
int
slot
,
int
first_symbol
,
int
nsymb
,
int
length
);
#endif
This diff is collapsed.
Click to expand it.
openair1/PHY/MODULATION/slot_fep_nr.c
View file @
ad0dff82
...
...
@@ -490,14 +490,28 @@ int nr_slot_fep_ul(NR_DL_FRAME_PARMS *frame_parms,
// clear DC carrier from OFDM symbols
rxdataF
[
symbol
*
frame_parms
->
ofdm_symbol_size
]
=
0
;
int
symb_offset
=
(
Ns
%
frame_parms
->
slots_per_subframe
)
*
frame_parms
->
symbols_per_slot
;
return
(
0
);
}
void
apply_nr_rotation_ul
(
NR_DL_FRAME_PARMS
*
frame_parms
,
int32_t
*
rxdataF
,
int
slot
,
int
first_symbol
,
int
nsymb
,
int
length
)
{
int
symb_offset
=
(
slot
%
frame_parms
->
slots_per_subframe
)
*
frame_parms
->
symbols_per_slot
;
for
(
int
symbol
=
0
;
symbol
<
nsymb
;
symbol
++
)
{
uint32_t
rot2
=
((
uint32_t
*
)
frame_parms
->
symbol_rotation
)[
symbol
+
symb_offset
];
((
int16_t
*
)
&
rot2
)[
1
]
=-
((
int16_t
*
)
&
rot2
)[
1
];
LOG_D
(
PHY
,
"slot %d, symb_offset %d rotating by %d.%d
\n
"
,
Ns
,
symb_offset
,((
int16_t
*
)
&
rot2
)[
0
],((
int16_t
*
)
&
rot2
)[
1
]);
LOG_D
(
PHY
,
"slot %d, symb_offset %d rotating by %d.%d
\n
"
,
slot
,
symb_offset
,((
int16_t
*
)
&
rot2
)[
0
],((
int16_t
*
)
&
rot2
)[
1
]);
rotate_cpx_vector
((
int16_t
*
)
&
rxdataF
[
frame_parms
->
ofdm_symbol_size
*
symbol
],
(
int16_t
*
)
&
rot2
,
(
int16_t
*
)
&
rxdataF
[
frame_parms
->
ofdm_symbol_size
*
symbol
],
frame_parms
->
ofdm_symbol_size
,
length
,
15
);
return
(
0
);
}
}
This diff is collapsed.
Click to expand it.
openair1/SCHED_NR/nr_ru_procedures.c
View file @
ad0dff82
...
...
@@ -89,13 +89,6 @@ void nr_feptx0(RU_t *ru,int tti_tx,int first_symbol, int num_symbols, int aa) {
if
(
fp
->
numerology_index
!=
0
)
{
if
(
!
(
slot
%
(
fp
->
slots_per_subframe
/
2
))
&&
(
first_symbol
==
0
))
{
// case where first symbol in slot has longer prefix
apply_nr_rotation
(
fp
,
(
int16_t
*
)
&
ru
->
common
.
txdataF_BF
[
aa
][
slot_offsetF
],
slot
,
0
,
1
,
fp
->
ofdm_symbol_size
);
PHY_ofdm_mod
(
&
ru
->
common
.
txdataF_BF
[
aa
][
slot_offsetF
],
(
int
*
)
&
ru
->
common
.
txdata
[
aa
][
slot_offset
],
fp
->
ofdm_symbol_size
,
...
...
@@ -103,13 +96,6 @@ void nr_feptx0(RU_t *ru,int tti_tx,int first_symbol, int num_symbols, int aa) {
fp
->
nb_prefix_samples0
,
CYCLIC_PREFIX
);
apply_nr_rotation
(
fp
,
(
int16_t
*
)
&
ru
->
common
.
txdataF_BF
[
aa
][
slot_offsetF
+
fp
->
ofdm_symbol_size
],
slot
,
1
,
num_symbols
-
1
,
fp
->
ofdm_symbol_size
);
PHY_ofdm_mod
(
&
ru
->
common
.
txdataF_BF
[
aa
][
slot_offsetF
+
fp
->
ofdm_symbol_size
],
(
int
*
)
&
ru
->
common
.
txdata
[
aa
][
slot_offset
+
fp
->
nb_prefix_samples0
+
fp
->
ofdm_symbol_size
],
fp
->
ofdm_symbol_size
,
...
...
@@ -118,12 +104,6 @@ void nr_feptx0(RU_t *ru,int tti_tx,int first_symbol, int num_symbols, int aa) {
CYCLIC_PREFIX
);
}
else
{
// all symbols in slot have shorter prefix
apply_nr_rotation
(
fp
,
(
int16_t
*
)
&
ru
->
common
.
txdataF_BF
[
aa
][
slot_offsetF
],
slot
,
first_symbol
,
num_symbols
,
fp
->
ofdm_symbol_size
);
PHY_ofdm_mod
(
&
ru
->
common
.
txdataF_BF
[
aa
][
slot_offsetF
],
(
int
*
)
&
ru
->
common
.
txdata
[
aa
][
slot_offset
],
fp
->
ofdm_symbol_size
,
...
...
@@ -141,12 +121,6 @@ void nr_feptx0(RU_t *ru,int tti_tx,int first_symbol, int num_symbols, int aa) {
1
,
fp
->
nb_prefix_samples
,
CYCLIC_PREFIX
);
apply_nr_rotation
(
fp
,
(
int16_t
*
)
&
ru
->
common
.
txdata
[
aa
][
slot_offset
],
slot
,
idx_sym
,
1
,
fp
->
ofdm_symbol_size
+
fp
->
nb_prefix_samples
);
slot_offset
+=
fp
->
nb_prefix_samples
+
fp
->
ofdm_symbol_size
;
}
else
{
...
...
@@ -156,12 +130,6 @@ void nr_feptx0(RU_t *ru,int tti_tx,int first_symbol, int num_symbols, int aa) {
1
,
fp
->
nb_prefix_samples0
,
CYCLIC_PREFIX
);
apply_nr_rotation
(
fp
,
(
int16_t
*
)
&
ru
->
common
.
txdata
[
aa
][
slot_offset
],
slot
,
0
,
1
,
fp
->
ofdm_symbol_size
+
fp
->
nb_prefix_samples0
);
slot_offset
+=
fp
->
nb_prefix_samples0
+
fp
->
ofdm_symbol_size
;
}
}
...
...
This diff is collapsed.
Click to expand it.
openair1/SCHED_NR/phy_procedures_nr_gNB.c
View file @
ad0dff82
...
...
@@ -211,6 +211,10 @@ void phy_procedures_gNB_TX(PHY_VARS_gNB *gNB,
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_GENERATE_DLSCH
,
0
);
}
//apply the OFDM symbol rotation here
apply_nr_rotation
(
fp
,(
int16_t
*
)
&
gNB
->
common_vars
.
txdataF
[
0
][
txdataF_offset
],
slot
,
0
,
fp
->
Ncp
==
EXTENDED
?
12
:
14
,
fp
->
ofdm_symbol_size
);
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_gNB_TX
+
offset
,
0
);
}
...
...
@@ -458,7 +462,7 @@ void phy_procedures_gNB_common_RX(PHY_VARS_gNB *gNB, int frame_rx, int slot_rx)
uint8_t
symbol
;
unsigned
char
aa
;
for
(
symbol
=
0
;
symbol
<
NR_SYMBOLS_PER_SLOT
;
symbol
++
)
{
for
(
symbol
=
0
;
symbol
<
(
gNB
->
frame_parms
.
Ncp
==
EXTENDED
?
12
:
14
)
;
symbol
++
)
{
// nr_slot_fep_ul(gNB, symbol, proc->slot_rx, 0, 0);
for
(
aa
=
0
;
aa
<
gNB
->
frame_parms
.
nb_antennas_rx
;
aa
++
)
{
...
...
@@ -472,6 +476,15 @@ void phy_procedures_gNB_common_RX(PHY_VARS_gNB *gNB, int frame_rx, int slot_rx)
}
}
for
(
aa
=
0
;
aa
<
gNB
->
frame_parms
.
nb_antennas_rx
;
aa
++
)
{
apply_nr_rotation_ul
(
&
gNB
->
frame_parms
,
gNB
->
common_vars
.
rxdataF
[
aa
],
slot_rx
,
0
,
gNB
->
frame_parms
.
Ncp
==
EXTENDED
?
12
:
14
,
gNB
->
frame_parms
.
ofdm_symbol_size
);
}
}
void
phy_procedures_gNB_uespec_RX
(
PHY_VARS_gNB
*
gNB
,
int
frame_rx
,
int
slot_rx
)
{
...
...
This diff is collapsed.
Click to expand it.
openair1/SIMULATION/NR_PHY/dlsim.c
View file @
ad0dff82
...
...
@@ -800,38 +800,11 @@ int main(int argc, char **argv)
12
,
frame_parms
->
nb_prefix_samples
,
CYCLIC_PREFIX
);
}
else
{
/*
}
else
{
nr_normal_prefix_mod
(
&
gNB
->
common_vars
.
txdataF
[
aa
][
txdataF_offset
],
&
txdata
[
aa
][
tx_offset
],
14
,
frame_parms
);
*/
PHY_ofdm_mod
(
&
gNB
->
common_vars
.
txdataF
[
aa
][
txdataF_offset
],
(
int
*
)
&
txdata
[
aa
][
tx_offset
],
frame_parms
->
ofdm_symbol_size
,
1
,
frame_parms
->
nb_prefix_samples0
,
CYCLIC_PREFIX
);
apply_nr_rotation
(
frame_parms
,
(
int16_t
*
)
&
txdata
[
aa
][
tx_offset
],
slot
,
0
,
1
,
frame_parms
->
ofdm_symbol_size
+
frame_parms
->
nb_prefix_samples0
);
PHY_ofdm_mod
(
&
gNB
->
common_vars
.
txdataF
[
aa
][
txdataF_offset
+
frame_parms
->
ofdm_symbol_size
],
(
int
*
)
&
txdata
[
aa
][
tx_offset
+
frame_parms
->
nb_prefix_samples0
+
frame_parms
->
ofdm_symbol_size
],
frame_parms
->
ofdm_symbol_size
,
13
,
frame_parms
->
nb_prefix_samples
,
CYCLIC_PREFIX
);
apply_nr_rotation
(
frame_parms
,
(
int16_t
*
)
&
txdata
[
aa
][
tx_offset
+
frame_parms
->
nb_prefix_samples0
+
frame_parms
->
ofdm_symbol_size
],
slot
,
1
,
13
,
frame_parms
->
ofdm_symbol_size
+
frame_parms
->
nb_prefix_samples
);
}
}
...
...
This diff is collapsed.
Click to expand it.
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