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
wangjie
OpenXG-RAN
Commits
eae301e5
Commit
eae301e5
authored
Apr 16, 2020
by
Ahmed Hussein
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fix regarding PTRS frequeny domain allocation
parent
6adc40bb
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
20 additions
and
22 deletions
+20
-22
openair1/PHY/NR_REFSIG/ptrs_nr.c
openair1/PHY/NR_REFSIG/ptrs_nr.c
+7
-3
openair1/PHY/NR_REFSIG/ptrs_nr.h
openair1/PHY/NR_REFSIG/ptrs_nr.h
+3
-2
openair1/PHY/NR_TRANSPORT/nr_ulsch_demodulation.c
openair1/PHY/NR_TRANSPORT/nr_ulsch_demodulation.c
+6
-9
openair1/PHY/NR_UE_TRANSPORT/nr_ulsch_ue.c
openair1/PHY/NR_UE_TRANSPORT/nr_ulsch_ue.c
+4
-8
No files found.
openair1/PHY/NR_REFSIG/ptrs_nr.c
View file @
eae301e5
...
@@ -151,7 +151,7 @@ void set_ptrs_symb_idx(uint16_t *ptrs_symbols,
...
@@ -151,7 +151,7 @@ void set_ptrs_symb_idx(uint16_t *ptrs_symbols,
*
*
*********************************************************************/
*********************************************************************/
uint8_t
is_ptrs_subcarrier
(
uint16_t
k
,
uint8_t
K_ptrs
,
uint16_t
n_rnti
,
uint16_t
N_RB
,
int16_t
k_RE_ref
,
uint16_t
start_sc
)
{
uint8_t
is_ptrs_subcarrier
(
uint16_t
k
,
uint8_t
K_ptrs
,
uint16_t
n_rnti
,
uint16_t
N_RB
,
int16_t
k_RE_ref
,
uint16_t
start_sc
,
uint16_t
ofdm_symbol_size
)
{
uint16_t
k_RB_ref
;
uint16_t
k_RB_ref
;
...
@@ -160,6 +160,9 @@ uint8_t is_ptrs_subcarrier(uint16_t k, uint8_t K_ptrs, uint16_t n_rnti, uint16_t
...
@@ -160,6 +160,9 @@ uint8_t is_ptrs_subcarrier(uint16_t k, uint8_t K_ptrs, uint16_t n_rnti, uint16_t
else
else
k_RB_ref
=
n_rnti
%
(
N_RB
%
K_ptrs
);
k_RB_ref
=
n_rnti
%
(
N_RB
%
K_ptrs
);
if
(
k
<
start_sc
)
k
+=
ofdm_symbol_size
;
if
((
k
-
k_RE_ref
-
k_RB_ref
*
NR_NB_SC_PER_RB
-
start_sc
)
%
(
K_ptrs
*
NR_NB_SC_PER_RB
)
==
0
)
if
((
k
-
k_RE_ref
-
k_RB_ref
*
NR_NB_SC_PER_RB
-
start_sc
)
%
(
K_ptrs
*
NR_NB_SC_PER_RB
)
==
0
)
return
1
;
return
1
;
...
@@ -196,10 +199,11 @@ uint8_t is_ptrs_symbol(uint8_t l,
...
@@ -196,10 +199,11 @@ uint8_t is_ptrs_symbol(uint8_t l,
uint16_t
ptrs_symbols
,
uint16_t
ptrs_symbols
,
uint16_t
start_sc
,
uint16_t
start_sc
,
uint8_t
pusch_dmrs_type
,
uint8_t
pusch_dmrs_type
,
uint8_t
resourceElementOffset
)
uint8_t
resourceElementOffset
,
uint16_t
ofdm_symbol_size
)
{
{
int16_t
k_RE_ref
=
get_kRE_ref
(
dmrs_antenna_port
,
pusch_dmrs_type
,
resourceElementOffset
);
int16_t
k_RE_ref
=
get_kRE_ref
(
dmrs_antenna_port
,
pusch_dmrs_type
,
resourceElementOffset
);
uint8_t
is_ptrs_freq
=
is_ptrs_subcarrier
(
k
,
K_ptrs
,
n_rnti
,
N_RB
,
k_RE_ref
,
start_sc
);
uint8_t
is_ptrs_freq
=
is_ptrs_subcarrier
(
k
,
K_ptrs
,
n_rnti
,
N_RB
,
k_RE_ref
,
start_sc
,
ofdm_symbol_size
);
if
(
is_ptrs_freq
==
0
)
if
(
is_ptrs_freq
==
0
)
return
0
;
return
0
;
...
...
openair1/PHY/NR_REFSIG/ptrs_nr.h
View file @
eae301e5
...
@@ -55,7 +55,7 @@ void set_ptrs_symb_idx(uint16_t *ptrs_symbols,
...
@@ -55,7 +55,7 @@ void set_ptrs_symb_idx(uint16_t *ptrs_symbols,
uint8_t
L_ptrs
,
uint8_t
L_ptrs
,
uint16_t
ul_dmrs_symb_pos
);
uint16_t
ul_dmrs_symb_pos
);
uint8_t
is_ptrs_subcarrier
(
uint16_t
k
,
uint8_t
K_ptrs
,
uint16_t
n_rnti
,
uint16_t
N_RB
,
int16_t
k_RE_ref
,
uint16_t
start_sc
);
uint8_t
is_ptrs_subcarrier
(
uint16_t
k
,
uint8_t
K_ptrs
,
uint16_t
n_rnti
,
uint16_t
N_RB
,
int16_t
k_RE_ref
,
uint16_t
start_sc
,
uint16_t
ofdm_symbol_size
);
uint8_t
is_ptrs_symbol
(
uint8_t
l
,
uint8_t
is_ptrs_symbol
(
uint8_t
l
,
uint16_t
k
,
uint16_t
k
,
...
@@ -66,7 +66,8 @@ uint8_t is_ptrs_symbol(uint8_t l,
...
@@ -66,7 +66,8 @@ uint8_t is_ptrs_symbol(uint8_t l,
uint16_t
ptrs_symbols
,
uint16_t
ptrs_symbols
,
uint16_t
start_sc
,
uint16_t
start_sc
,
uint8_t
pusch_dmrs_type
,
uint8_t
pusch_dmrs_type
,
uint8_t
resourceElementOffset
);
uint8_t
resourceElementOffset
,
uint16_t
ofdm_symbol_size
);
...
...
openair1/PHY/NR_TRANSPORT/nr_ulsch_demodulation.c
View file @
eae301e5
...
@@ -230,7 +230,7 @@ void nr_ulsch_extract_rbs_single(int32_t **rxdataF,
...
@@ -230,7 +230,7 @@ void nr_ulsch_extract_rbs_single(int32_t **rxdataF,
nfapi_nr_pusch_pdu_t
*
pusch_pdu
,
nfapi_nr_pusch_pdu_t
*
pusch_pdu
,
NR_DL_FRAME_PARMS
*
frame_parms
)
NR_DL_FRAME_PARMS
*
frame_parms
)
{
{
unsigned
short
start_re
,
re
,
nb_re_pusch
,
k
;
unsigned
short
start_re
,
re
,
nb_re_pusch
;
unsigned
char
aarx
;
unsigned
char
aarx
;
uint8_t
K_ptrs
;
uint8_t
K_ptrs
;
uint32_t
rxF_ext_index
=
0
;
uint32_t
rxF_ext_index
=
0
;
...
@@ -286,13 +286,8 @@ void nr_ulsch_extract_rbs_single(int32_t **rxdataF,
...
@@ -286,13 +286,8 @@ void nr_ulsch_extract_rbs_single(int32_t **rxdataF,
if
(
((
pusch_pdu
->
pdu_bit_map
)
>>
2
)
&
0x01
)
{
if
(
((
pusch_pdu
->
pdu_bit_map
)
>>
2
)
&
0x01
)
{
if
(((
start_re
+
re
)
%
frame_parms
->
ofdm_symbol_size
)
<
start_re
)
k
=
start_re
+
re
;
else
k
=
(
start_re
+
re
)
%
frame_parms
->
ofdm_symbol_size
;
is_ptrs_symbol_flag
=
is_ptrs_symbol
(
symbol
,
is_ptrs_symbol_flag
=
is_ptrs_symbol
(
symbol
,
k
,
(
start_re
+
re
)
%
frame_parms
->
ofdm_symbol_size
,
n_rnti
,
n_rnti
,
pusch_pdu
->
rb_size
,
pusch_pdu
->
rb_size
,
aarx
,
aarx
,
...
@@ -300,7 +295,8 @@ void nr_ulsch_extract_rbs_single(int32_t **rxdataF,
...
@@ -300,7 +295,8 @@ void nr_ulsch_extract_rbs_single(int32_t **rxdataF,
pusch_vars
->
ptrs_symbols
,
pusch_vars
->
ptrs_symbols
,
start_re
,
start_re
,
pusch_pdu
->
dmrs_config_type
,
pusch_pdu
->
dmrs_config_type
,
pusch_pdu
->
pusch_ptrs
.
ptrs_ports_list
[
0
].
ptrs_re_offset
);
pusch_pdu
->
pusch_ptrs
.
ptrs_ports_list
[
0
].
ptrs_re_offset
,
frame_parms
->
ofdm_symbol_size
);
if
(
is_ptrs_symbol_flag
==
1
)
if
(
is_ptrs_symbol_flag
==
1
)
num_ptrs_symbols
++
;
num_ptrs_symbols
++
;
...
@@ -1082,7 +1078,8 @@ void nr_rx_pusch(PHY_VARS_gNB *gNB,
...
@@ -1082,7 +1078,8 @@ void nr_rx_pusch(PHY_VARS_gNB *gNB,
gNB
->
pusch_vars
[
UE_id
]
->
ptrs_symbols
,
gNB
->
pusch_vars
[
UE_id
]
->
ptrs_symbols
,
0
,
0
,
rel15_ul
->
dmrs_config_type
,
rel15_ul
->
dmrs_config_type
,
rel15_ul
->
pusch_ptrs
.
ptrs_ports_list
[
0
].
ptrs_re_offset
);
rel15_ul
->
pusch_ptrs
.
ptrs_ports_list
[
0
].
ptrs_re_offset
,
frame_parms
->
ofdm_symbol_size
);
}
}
if
(
ptrs_symbol_flag
==
1
){
if
(
ptrs_symbol_flag
==
1
){
...
...
openair1/PHY/NR_UE_TRANSPORT/nr_ulsch_ue.c
View file @
eae301e5
...
@@ -106,7 +106,7 @@ void nr_ue_ulsch_procedures(PHY_VARS_NR_UE *UE,
...
@@ -106,7 +106,7 @@ void nr_ue_ulsch_procedures(PHY_VARS_NR_UE *UE,
int32_t
**
txdataF
;
int32_t
**
txdataF
;
uint16_t
start_sc
,
start_rb
;
uint16_t
start_sc
,
start_rb
;
int8_t
Wf
[
2
],
Wt
[
2
],
l_prime
[
2
],
delta
;
int8_t
Wf
[
2
],
Wt
[
2
],
l_prime
[
2
],
delta
;
uint16_t
rnti
,
n_dmrs
,
code_rate
,
number_dmrs_symbols
,
nb_rb
,
k
,
k_temp
;
uint16_t
rnti
,
n_dmrs
,
code_rate
,
number_dmrs_symbols
,
nb_rb
,
k
;
uint8_t
dmrs_type
,
nb_dmrs_re_per_rb
,
number_of_symbols
,
mcs
,
Nl
;
uint8_t
dmrs_type
,
nb_dmrs_re_per_rb
,
number_of_symbols
,
mcs
,
Nl
;
int
ap
,
start_symbol
,
Nid_cell
,
i
;
int
ap
,
start_symbol
,
Nid_cell
,
i
;
int
sample_offsetF
,
N_RE_prime
,
N_PRB_oh
;
int
sample_offsetF
,
N_RE_prime
,
N_PRB_oh
;
...
@@ -396,13 +396,8 @@ void nr_ue_ulsch_procedures(PHY_VARS_NR_UE *UE,
...
@@ -396,13 +396,8 @@ void nr_ue_ulsch_procedures(PHY_VARS_NR_UE *UE,
if
((
harq_process_ul_ue
->
pusch_pdu
.
pdu_bit_map
>>
2
)
&
0x01
){
if
((
harq_process_ul_ue
->
pusch_pdu
.
pdu_bit_map
>>
2
)
&
0x01
){
if
(
k
<
start_sc
)
k_temp
=
k
+
frame_parms
->
ofdm_symbol_size
;
else
k_temp
=
k
;
is_ptrs
=
is_ptrs_symbol
(
l
,
is_ptrs
=
is_ptrs_symbol
(
l
,
k
_temp
,
k
,
rnti
,
rnti
,
nb_rb
,
nb_rb
,
ap
,
ap
,
...
@@ -410,7 +405,8 @@ void nr_ue_ulsch_procedures(PHY_VARS_NR_UE *UE,
...
@@ -410,7 +405,8 @@ void nr_ue_ulsch_procedures(PHY_VARS_NR_UE *UE,
ulsch_ue
->
ptrs_symbols
,
ulsch_ue
->
ptrs_symbols
,
start_sc
,
start_sc
,
dmrs_type
,
dmrs_type
,
ptrs_Uplink_Config
->
resourceElementOffset
);
ptrs_Uplink_Config
->
resourceElementOffset
,
frame_parms
->
ofdm_symbol_size
);
}
}
if
(
is_dmrs
==
1
)
{
if
(
is_dmrs
==
1
)
{
...
...
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