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
01524428
Commit
01524428
authored
Sep 27, 2024
by
Jaroslava Fiedlerova
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/NR_UE_SLOTFEP_MERGE' into integration_2024_w39
parents
3dbd8b9b
114ea60c
Changes
8
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
93 additions
and
238 deletions
+93
-238
openair1/PHY/MODULATION/modulation_UE.h
openair1/PHY/MODULATION/modulation_UE.h
+6
-17
openair1/PHY/MODULATION/nr_modulation.h
openair1/PHY/MODULATION/nr_modulation.h
+6
-6
openair1/PHY/MODULATION/slot_fep_nr.c
openair1/PHY/MODULATION/slot_fep_nr.c
+44
-199
openair1/PHY/NR_UE_TRANSPORT/nr_initial_sync.c
openair1/PHY/NR_UE_TRANSPORT/nr_initial_sync.c
+1
-6
openair1/PHY/NR_UE_TRANSPORT/nr_initial_sync_sl.c
openair1/PHY/NR_UE_TRANSPORT/nr_initial_sync_sl.c
+8
-1
openair1/SCHED_NR_UE/phy_procedures_nr_ue.c
openair1/SCHED_NR_UE/phy_procedures_nr_ue.c
+13
-6
openair1/SCHED_NR_UE/phy_procedures_nr_ue_sl.c
openair1/SCHED_NR_UE/phy_procedures_nr_ue_sl.c
+7
-2
openair1/SIMULATION/NR_PHY/pbchsim.c
openair1/SIMULATION/NR_PHY/pbchsim.c
+8
-1
No files found.
openair1/PHY/MODULATION/modulation_UE.h
View file @
01524428
...
...
@@ -49,24 +49,13 @@ int slot_fep(PHY_VARS_UE *phy_vars_ue,
int
reset_freq_est
);
int
nr_slot_fep
(
PHY_VARS_NR_UE
*
ue
,
NR_DL_FRAME_PARMS
*
frame_parms
,
const
UE_nr_rxtx_proc_t
*
proc
,
unsigned
char
symbol
,
const
NR_DL_FRAME_PARMS
*
frame_parms
,
unsigned
int
slot
,
unsigned
int
symbol
,
c16_t
rxdataF
[][
frame_parms
->
samples_per_slot_wCP
],
uint32_t
linktype
);
int
sl_nr_slot_fep
(
PHY_VARS_NR_UE
*
ue
,
UE_nr_rxtx_proc_t
*
proc
,
unsigned
char
symbol
,
unsigned
char
Ns
,
uint32_t
sample_offset
,
c16_t
rxdataF
[][
ue
->
SL_UE_PHY_PARAMS
.
sl_frame_params
.
samples_per_slot_wCP
]);
int
nr_slot_fep_init_sync
(
const
NR_DL_FRAME_PARMS
*
frame_parms
,
unsigned
char
symbol
,
int
sample_offset
,
const
c16_t
**
rxdata
,
c16_t
rxdataF
[][
frame_parms
->
samples_per_slot_wCP
],
int
link_type
);
enum
nr_Link
linktype
,
uint32_t
sample_offset
,
c16_t
**
rxdata
);
int
slot_fep_mbsfn
(
PHY_VARS_UE
*
phy_vars_ue
,
unsigned
char
l
,
...
...
openair1/PHY/MODULATION/nr_modulation.h
View file @
01524428
...
...
@@ -120,14 +120,14 @@ void init_symbol_rotation(NR_DL_FRAME_PARMS *fp);
void
init_timeshift_rotation
(
NR_DL_FRAME_PARMS
*
fp
);
void
apply_nr_rotation_RX
(
NR_DL_FRAME_PARMS
*
frame_parms
,
c16_t
*
rxdataF
,
c16_t
*
rot
,
int
slot
,
void
apply_nr_rotation_RX
(
const
NR_DL_FRAME_PARMS
*
frame_parms
,
c16_t
*
rxdataF
,
c
onst
c
16_t
*
rot
,
int
slot
,
int
nb_rb
,
int
soffset
,
int
first_symbol
,
int
nsymb
);
int
first_symbol
,
int
nsymb
);
/*! \brief Perform NR precoding. TS 38.211 V15.4.0 subclause 6.3.1.5
@param[in] datatx_F_precoding, Pointer to n_layers*re data array
...
...
openair1/PHY/MODULATION/slot_fep_nr.c
View file @
01524428
This diff is collapsed.
Click to expand it.
openair1/PHY/NR_UE_TRANSPORT/nr_initial_sync.c
View file @
01524428
...
...
@@ -244,12 +244,7 @@ void nr_scan_ssb(void *arg)
const
uint32_t
rxdataF_sz
=
fp
->
samples_per_slot_wCP
;
__attribute__
((
aligned
(
32
)))
c16_t
rxdataF
[
fp
->
nb_antennas_rx
][
rxdataF_sz
];
for
(
int
i
=
0
;
i
<
NR_N_SYMBOLS_SSB
;
i
++
)
nr_slot_fep_init_sync
(
fp
,
i
,
frame_id
*
fp
->
samples_per_frame
+
ssbInfo
->
ssbOffset
,
(
const
c16_t
**
)
rxdata
,
rxdataF
,
link_type_dl
);
nr_slot_fep
(
NULL
,
fp
,
0
,
i
,
rxdataF
,
link_type_dl
,
frame_id
*
fp
->
samples_per_frame
+
ssbInfo
->
ssbOffset
,
(
c16_t
**
)
rxdata
);
int
freq_offset_sss
=
0
;
int32_t
metric_tdd_ncp
=
0
;
...
...
openair1/PHY/NR_UE_TRANSPORT/nr_initial_sync_sl.c
View file @
01524428
...
...
@@ -447,7 +447,14 @@ nr_initial_sync_t sl_nr_slss_search(PHY_VARS_NR_UE *UE, UE_nr_rxtx_proc_t *proc,
/* In order to achieve correct processing for NR prefix samples is forced to 0 and then restored after function call */
for
(
int
symbol
=
0
;
symbol
<
SL_NR_NUMSYM_SLSS_NORMAL_CP
;
symbol
++
)
{
sl_nr_slot_fep
(
UE
,
NULL
,
symbol
,
0
,
sync_params
->
ssb_offset
,
rxdataF
);
nr_slot_fep
(
UE
,
frame_parms
,
proc
->
nr_slot_rx
,
symbol
,
rxdataF
,
link_type_sl
,
sync_params
->
ssb_offset
,
UE
->
common_vars
.
rxdata
);
}
sl_nr_extract_sss
(
UE
,
NULL
,
&
metric_tdd_ncp
,
&
phase_tdd_ncp
,
rxdataF
);
...
...
openair1/SCHED_NR_UE/phy_procedures_nr_ue.c
View file @
01524428
...
...
@@ -912,7 +912,14 @@ int pbch_pdcch_processing(PHY_VARS_NR_UE *ue, const UE_nr_rxtx_proc_t *proc, nr_
__attribute__
((
aligned
(
32
)))
struct
complex16
dl_ch_estimates_time
[
fp
->
nb_antennas_rx
][
fp
->
ofdm_symbol_size
];
for
(
int
i
=
1
;
i
<
4
;
i
++
)
{
nr_slot_fep
(
ue
,
fp
,
proc
,
(
ssb_start_symbol
+
i
)
%
(
fp
->
symbols_per_slot
),
rxdataF
,
link_type_dl
);
nr_slot_fep
(
ue
,
fp
,
proc
->
nr_slot_rx
,
(
ssb_start_symbol
+
i
)
%
(
fp
->
symbols_per_slot
),
rxdataF
,
link_type_dl
,
0
,
ue
->
common_vars
.
rxdata
);
nr_pbch_channel_estimation
(
&
ue
->
frame_parms
,
NULL
,
...
...
@@ -976,7 +983,7 @@ int pbch_pdcch_processing(PHY_VARS_NR_UE *ue, const UE_nr_rxtx_proc_t *proc, nr_
{
for
(
int
j
=
prs_config
->
SymbolStart
;
j
<
(
prs_config
->
SymbolStart
+
prs_config
->
NumPRSSymbols
);
j
++
)
{
nr_slot_fep
(
ue
,
fp
,
proc
,
(
j
%
fp
->
symbols_per_slot
),
rxdataF
,
link_type_dl
);
nr_slot_fep
(
ue
,
fp
,
proc
->
nr_slot_rx
,
(
j
%
fp
->
symbols_per_slot
),
rxdataF
,
link_type_dl
,
0
,
ue
->
common_vars
.
rxdata
);
}
nr_prs_channel_estimation
(
gNB_id
,
rsc_id
,
i
,
ue
,
proc
,
fp
,
rxdataF
);
}
...
...
@@ -1005,7 +1012,7 @@ int pbch_pdcch_processing(PHY_VARS_NR_UE *ue, const UE_nr_rxtx_proc_t *proc, nr_
uint8_t
nb_symb_pdcch
=
phy_pdcch_config
->
nb_search_space
>
0
?
phy_pdcch_config
->
pdcch_config
[
0
].
coreset
.
duration
:
0
;
for
(
uint16_t
l
=
0
;
l
<
nb_symb_pdcch
;
l
++
)
{
nr_slot_fep
(
ue
,
fp
,
proc
,
l
,
rxdataF
,
link_type_dl
);
nr_slot_fep
(
ue
,
fp
,
proc
->
nr_slot_rx
,
l
,
rxdataF
,
link_type_dl
,
0
,
ue
->
common_vars
.
rxdata
);
}
// Hold the channel estimates in frequency domain.
...
...
@@ -1055,7 +1062,7 @@ void pdsch_processing(PHY_VARS_NR_UE *ue, const UE_nr_rxtx_proc_t *proc, nr_phy_
for
(
int
symb_idx
=
0
;
symb_idx
<
4
;
symb_idx
++
)
{
int
symb
=
ue
->
csiim_vars
[
gNB_id
]
->
csiim_config_pdu
.
l_csiim
[
symb_idx
];
if
(
!
slot_fep_map
[
symb
])
{
nr_slot_fep
(
ue
,
&
ue
->
frame_parms
,
proc
,
symb
,
rxdataF
,
link_type_dl
);
nr_slot_fep
(
ue
,
&
ue
->
frame_parms
,
proc
->
nr_slot_rx
,
symb
,
rxdataF
,
link_type_dl
,
0
,
ue
->
common_vars
.
rxdata
);
slot_fep_map
[
symb
]
=
true
;
}
}
...
...
@@ -1068,7 +1075,7 @@ void pdsch_processing(PHY_VARS_NR_UE *ue, const UE_nr_rxtx_proc_t *proc, nr_phy_
for
(
int
symb
=
0
;
symb
<
NR_SYMBOLS_PER_SLOT
;
symb
++
)
{
if
(
is_csi_rs_in_symbol
(
ue
->
csirs_vars
[
gNB_id
]
->
csirs_config_pdu
,
symb
))
{
if
(
!
slot_fep_map
[
symb
])
{
nr_slot_fep
(
ue
,
&
ue
->
frame_parms
,
proc
,
symb
,
rxdataF
,
link_type_dl
);
nr_slot_fep
(
ue
,
&
ue
->
frame_parms
,
proc
->
nr_slot_rx
,
symb
,
rxdataF
,
link_type_dl
,
0
,
ue
->
common_vars
.
rxdata
);
slot_fep_map
[
symb
]
=
true
;
}
}
...
...
@@ -1087,7 +1094,7 @@ void pdsch_processing(PHY_VARS_NR_UE *ue, const UE_nr_rxtx_proc_t *proc, nr_phy_
for
(
int
m
=
start_symb_sch
;
m
<
(
nb_symb_sch
+
start_symb_sch
)
;
m
++
)
{
if
(
!
slot_fep_map
[
m
])
{
nr_slot_fep
(
ue
,
&
ue
->
frame_parms
,
proc
,
m
,
rxdataF
,
link_type_dl
);
nr_slot_fep
(
ue
,
&
ue
->
frame_parms
,
proc
->
nr_slot_rx
,
m
,
rxdataF
,
link_type_dl
,
0
,
ue
->
common_vars
.
rxdata
);
slot_fep_map
[
m
]
=
true
;
}
}
...
...
openair1/SCHED_NR_UE/phy_procedures_nr_ue_sl.c
View file @
01524428
...
...
@@ -149,7 +149,12 @@ static int nr_ue_psbch_procedures(PHY_VARS_NR_UE *ue,
}
else
{
result
=
decoded_pdu
;
sl_phy_params
->
psbch
.
rx_ok
++
;
LOG_I
(
NR_PHY
,
"%d:%d PSBCH RX:OK. RSRP: %d dB/RE
\n
"
,
proc
->
frame_rx
,
proc
->
nr_slot_rx
,
sl_phy_params
->
psbch
.
rsrp_dB_per_RE
);
LOG_I
(
NR_PHY
,
"[UE%d] %d:%d PSBCH RX:OK. RSRP: %d dB/RE
\n
"
,
ue
->
Mod_id
,
proc
->
frame_rx
,
proc
->
nr_slot_rx
,
sl_phy_params
->
psbch
.
rsrp_dB_per_RE
);
}
nr_fill_sl_indication
(
&
sl_indication
,
&
rx_ind
,
NULL
,
proc
,
ue
,
phy_data
);
...
...
@@ -191,7 +196,7 @@ int psbch_pscch_processing(PHY_VARS_NR_UE *ue, const UE_nr_rxtx_proc_t *proc, nr
const
int
numsym
=
(
fp
->
Ncp
)
?
SL_NR_NUM_SYMBOLS_SSB_EXT_CP
:
SL_NR_NUM_SYMBOLS_SSB_NORMAL_CP
;
for
(
int
sym
=
0
;
sym
<
numsym
;)
{
nr_slot_fep
(
ue
,
fp
,
proc
,
sym
,
rxdataF
,
link_type_sl
);
nr_slot_fep
(
ue
,
fp
,
proc
->
nr_slot_rx
,
sym
,
rxdataF
,
link_type_sl
,
0
,
ue
->
common_vars
.
rxdata
);
start_meas
(
&
sl_phy_params
->
channel_estimation_stats
);
nr_pbch_channel_estimation
(
fp
,
...
...
openair1/SIMULATION/NR_PHY/pbchsim.c
View file @
01524428
...
...
@@ -799,7 +799,14 @@ int main(int argc, char **argv)
proc
.
nr_slot_rx
=
ssb_slot
;
proc
.
gNB_id
=
0
;
for
(
int
i
=
UE
->
symbol_offset
+
1
;
i
<
UE
->
symbol_offset
+
4
;
i
++
)
{
nr_slot_fep
(
UE
,
frame_parms
,
&
proc
,
i
%
frame_parms
->
symbols_per_slot
,
rxdataF
,
link_type_dl
);
nr_slot_fep
(
UE
,
frame_parms
,
proc
.
nr_slot_rx
,
i
%
frame_parms
->
symbols_per_slot
,
rxdataF
,
link_type_dl
,
0
,
UE
->
common_vars
.
rxdata
);
nr_pbch_channel_estimation
(
&
UE
->
frame_parms
,
&
UE
->
SL_UE_PHY_PARAMS
,
...
...
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