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
常顺宇
OpenXG-RAN
Commits
eae301e5
Commit
eae301e5
authored
4 years ago
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
;
...
...
This diff is collapsed.
Click to expand it.
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
);
...
...
This diff is collapsed.
Click to expand it.
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
){
...
...
This diff is collapsed.
Click to expand it.
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
)
{
...
...
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