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
9a7daded
Commit
9a7daded
authored
Feb 11, 2020
by
Sakthivel Velumani
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Updated ofdm fep in gNB
parent
5c0a817f
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
54 additions
and
23 deletions
+54
-23
openair1/SCHED_NR/nr_ru_procedures.c
openair1/SCHED_NR/nr_ru_procedures.c
+54
-23
No files found.
openair1/SCHED_NR/nr_ru_procedures.c
View file @
9a7daded
...
...
@@ -69,43 +69,74 @@ void nr_feptx0(RU_t *ru,int tti_tx,int first_symbol, int num_symbols, int aa) {
slot_offset
=
fp
->
get_samples_slot_timestamp
(
slot
,
fp
,
0
);
slot_offsetF
=
first_symbol
*
fp
->
ofdm_symbol_size
;
int
abs_first_symbol
=
slot
*
fp
->
symbols_per_slot
;
if
(
first_symbol
>
0
)
slot_offset
+=
(
fp
->
ofdm_symbol_size
*
first_symbol
)
+
(
fp
->
nb_prefix_samples0
)
+
(
fp
->
nb_prefix_samples
*
(
first_symbol
-
1
));
for
(
uint16_t
idx_sym
=
abs_first_symbol
;
idx_sym
<
abs_first_symbol
+
first_symbol
;
idx_sym
++
)
slot_offset
+=
(
idx_sym
%
(
0x7
<<
fp
->
numerology_index
))
?
fp
->
nb_prefix_samples0
:
fp
->
nb_prefix_samples
;
LOG_D
(
PHY
,
"SFN/SF:RU:TX:%d/%d Generating slot %d (first_symbol %d num_symbols %d)
\n
"
,
ru
->
proc
.
frame_tx
,
ru
->
proc
.
tti_tx
,
slot
,
first_symbol
,
num_symbols
)
;
slot_offset
+=
fp
->
ofdm_symbol_size
*
first_symbol
;
if
(
fp
->
Ncp
==
1
)
{
LOG_D
(
PHY
,
"SFN/SF:RU:TX:%d/%d Generating slot %d (first_symbol %d num_symbols %d)
\n
"
,
ru
->
proc
.
frame_tx
,
ru
->
proc
.
tti_tx
,
slot
,
first_symbol
,
num_symbols
);
if
(
fp
->
Ncp
==
1
)
PHY_ofdm_mod
(
&
ru
->
common
.
txdataF_BF
[
aa
][
slot_offsetF
],
(
int
*
)
&
ru
->
common
.
txdata
[
aa
][
slot_offset
],
fp
->
ofdm_symbol_size
,
num_symbols
,
fp
->
nb_prefix_samples
,
CYCLIC_PREFIX
);
}
else
{
if
(
first_symbol
==
0
)
{
PHY_ofdm_mod
(
&
ru
->
common
.
txdataF_BF
[
aa
][
slot_offsetF
],
(
int
*
)
&
ru
->
common
.
txdata
[
aa
][
slot_offset
],
fp
->
ofdm_symbol_size
,
1
,
fp
->
nb_prefix_samples0
,
CYCLIC_PREFIX
);
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
,
num_symbols
-
1
,
fp
->
nb_prefix_samples
,
CYCLIC_PREFIX
);
if
(
fp
->
numerology_index
!=
0
)
{
if
(
slot
%
(
fp
->
slots_per_subframe
/
2
))
{
PHY_ofdm_mod
(
&
ru
->
common
.
txdataF_BF
[
aa
][
slot_offsetF
],
(
int
*
)
&
ru
->
common
.
txdata
[
aa
][
slot_offset
],
fp
->
ofdm_symbol_size
,
num_symbols
,
fp
->
nb_prefix_samples
,
CYCLIC_PREFIX
);
}
else
{
PHY_ofdm_mod
(
&
ru
->
common
.
txdataF_BF
[
aa
][
slot_offsetF
],
(
int
*
)
&
ru
->
common
.
txdata
[
aa
][
slot_offset
],
fp
->
ofdm_symbol_size
,
1
,
fp
->
nb_prefix_samples0
,
CYCLIC_PREFIX
);
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
,
num_symbols
-
1
,
fp
->
nb_prefix_samples
,
CYCLIC_PREFIX
);
}
}
else
{
PHY_ofdm_mod
(
&
ru
->
common
.
txdataF_BF
[
aa
][
slot_offsetF
],
(
int
*
)
&
ru
->
common
.
txdata
[
aa
][
slot_offset
],
fp
->
ofdm_symbol_size
,
num_symbols
,
fp
->
nb_prefix_samples
,
CYCLIC_PREFIX
);
for
(
uint16_t
idx_sym
=
abs_first_symbol
;
idx_sym
<
abs_first_symbol
+
num_symbols
;
idx_sym
++
)
{
if
(
idx_sym
%
0x7
)
{
PHY_ofdm_mod
(
&
ru
->
common
.
txdataF_BF
[
aa
][
slot_offsetF
],
(
int
*
)
&
ru
->
common
.
txdata
[
aa
][
slot_offset
],
fp
->
ofdm_symbol_size
,
1
,
fp
->
nb_prefix_samples
,
CYCLIC_PREFIX
);
slot_offset
+=
fp
->
nb_prefix_samples
+
fp
->
ofdm_symbol_size
;
}
else
{
PHY_ofdm_mod
(
&
ru
->
common
.
txdataF_BF
[
aa
][
slot_offsetF
],
(
int
*
)
&
ru
->
common
.
txdata
[
aa
][
slot_offset
],
fp
->
ofdm_symbol_size
,
1
,
fp
->
nb_prefix_samples0
,
CYCLIC_PREFIX
);
slot_offset
+=
fp
->
nb_prefix_samples0
+
fp
->
ofdm_symbol_size
;
}
}
}
}
//VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_RU_FEPTX_OFDM+(first_symbol!=0?1:0), 0);
}
...
...
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