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
817afd99
Commit
817afd99
authored
Mar 24, 2020
by
Francesco Mani
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fixing reference point for k in pusch dmrs
parent
f508f310
Changes
4
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
12 additions
and
5 deletions
+12
-5
openair1/PHY/NR_ESTIMATION/nr_ul_channel_estimation.c
openair1/PHY/NR_ESTIMATION/nr_ul_channel_estimation.c
+4
-1
openair1/PHY/NR_REFSIG/nr_dmrs_rx.c
openair1/PHY/NR_REFSIG/nr_dmrs_rx.c
+4
-3
openair1/PHY/NR_REFSIG/nr_refsig.h
openair1/PHY/NR_REFSIG/nr_refsig.h
+1
-0
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_RA.c
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_RA.c
+3
-1
No files found.
openair1/PHY/NR_ESTIMATION/nr_ul_channel_estimation.c
View file @
817afd99
...
@@ -116,7 +116,10 @@ int nr_pusch_channel_estimation(PHY_VARS_gNB *gNB,
...
@@ -116,7 +116,10 @@ int nr_pusch_channel_estimation(PHY_VARS_gNB *gNB,
//------------------generate DMRS------------------//
//------------------generate DMRS------------------//
nr_pusch_dmrs_rx
(
gNB
,
Ns
,
gNB
->
nr_gold_pusch_dmrs
[
pusch_pdu
->
scid
][
Ns
][
symbol
],
&
pilot
[
0
],
1000
,
0
,
nb_rb_pusch
,
pusch_pdu
->
dmrs_config_type
);
if
(
pusch_pdu
->
transform_precoding
)
// if transform precoding is disabled
nr_pusch_dmrs_rx
(
gNB
,
Ns
,
gNB
->
nr_gold_pusch_dmrs
[
pusch_pdu
->
scid
][
Ns
][
symbol
],
&
pilot
[
0
],
1000
,
0
,
nb_rb_pusch
,
pusch_pdu
->
rb_start
*
NR_NB_SC_PER_RB
,
pusch_pdu
->
dmrs_config_type
);
else
nr_pusch_dmrs_rx
(
gNB
,
Ns
,
gNB
->
nr_gold_pusch_dmrs
[
pusch_pdu
->
scid
][
Ns
][
symbol
],
&
pilot
[
0
],
1000
,
0
,
nb_rb_pusch
,
0
,
pusch_pdu
->
dmrs_config_type
);
//------------------------------------------------//
//------------------------------------------------//
...
...
openair1/PHY/NR_REFSIG/nr_dmrs_rx.c
View file @
817afd99
...
@@ -45,7 +45,7 @@ int wt1[8][2] = {{1,1},{1,1},{1,1},{1,1},{1,-1},{1,-1},{1,-1},{1,-1}};
...
@@ -45,7 +45,7 @@ int wt1[8][2] = {{1,1},{1,1},{1,1},{1,1},{1,-1},{1,-1},{1,-1},{1,-1}};
int
wf2
[
12
][
2
]
=
{{
1
,
1
},{
1
,
-
1
},{
1
,
1
},{
1
,
-
1
},{
1
,
1
},{
1
,
-
1
},{
1
,
1
},{
1
,
1
},{
1
,
1
},{
1
,
-
1
},{
1
,
1
},{
1
,
1
}};
int
wf2
[
12
][
2
]
=
{{
1
,
1
},{
1
,
-
1
},{
1
,
1
},{
1
,
-
1
},{
1
,
1
},{
1
,
-
1
},{
1
,
1
},{
1
,
1
},{
1
,
1
},{
1
,
-
1
},{
1
,
1
},{
1
,
1
}};
int
wt2
[
12
][
2
]
=
{{
1
,
1
},{
1
,
1
},{
1
,
1
},{
1
,
1
},{
1
,
1
},{
1
,
1
},{
1
,
-
1
},{
1
,
-
1
},{
1
,
-
1
},{
1
,
-
1
},{
1
,
-
1
},{
1
,
-
1
}};
int
wt2
[
12
][
2
]
=
{{
1
,
1
},{
1
,
1
},{
1
,
1
},{
1
,
1
},{
1
,
1
},{
1
,
1
},{
1
,
-
1
},{
1
,
-
1
},{
1
,
-
1
},{
1
,
-
1
},{
1
,
-
1
},{
1
,
-
1
}};
// complex conjugate of mod table
short
nr_rx_mod_table
[
14
]
=
{
0
,
0
,
23170
,
-
23170
,
-
23170
,
23170
,
23170
,
-
23170
,
23170
,
23170
,
-
23170
,
-
23170
,
-
23170
,
23170
};
short
nr_rx_mod_table
[
14
]
=
{
0
,
0
,
23170
,
-
23170
,
-
23170
,
23170
,
23170
,
-
23170
,
23170
,
23170
,
-
23170
,
-
23170
,
-
23170
,
23170
};
short
nr_rx_nmod_table
[
14
]
=
{
0
,
0
,
-
23170
,
23170
,
23170
,
-
23170
,
-
23170
,
23170
,
-
23170
,
-
23170
,
23170
,
23170
,
23170
,
-
23170
};
short
nr_rx_nmod_table
[
14
]
=
{
0
,
0
,
-
23170
,
23170
,
23170
,
-
23170
,
-
23170
,
23170
,
-
23170
,
-
23170
,
23170
,
23170
,
23170
,
-
23170
};
...
@@ -57,6 +57,7 @@ int nr_pusch_dmrs_rx(PHY_VARS_gNB *gNB,
...
@@ -57,6 +57,7 @@ int nr_pusch_dmrs_rx(PHY_VARS_gNB *gNB,
unsigned
short
p
,
unsigned
short
p
,
unsigned
char
lp
,
unsigned
char
lp
,
unsigned
short
nb_pusch_rb
,
unsigned
short
nb_pusch_rb
,
uint32_t
re_offset
,
uint8_t
dmrs_type
)
uint8_t
dmrs_type
)
{
{
int8_t
w
,
nb_dmrs
;
int8_t
w
,
nb_dmrs
;
...
@@ -66,7 +67,6 @@ int nr_pusch_dmrs_rx(PHY_VARS_gNB *gNB,
...
@@ -66,7 +67,6 @@ int nr_pusch_dmrs_rx(PHY_VARS_gNB *gNB,
typedef
int
array_of_w
[
2
];
typedef
int
array_of_w
[
2
];
array_of_w
*
wf
;
array_of_w
*
wf
;
array_of_w
*
wt
;
array_of_w
*
wt
;
wf
=
(
dmrs_type
==
pusch_dmrs_type1
)
?
wf1
:
wf2
;
wf
=
(
dmrs_type
==
pusch_dmrs_type1
)
?
wf1
:
wf2
;
wt
=
(
dmrs_type
==
pusch_dmrs_type1
)
?
wt1
:
wt2
;
wt
=
(
dmrs_type
==
pusch_dmrs_type1
)
?
wt1
:
wt2
;
...
@@ -76,7 +76,7 @@ int nr_pusch_dmrs_rx(PHY_VARS_gNB *gNB,
...
@@ -76,7 +76,7 @@ int nr_pusch_dmrs_rx(PHY_VARS_gNB *gNB,
if
((
p
>=
1000
)
&&
(
p
<
((
dmrs_type
==
pusch_dmrs_type1
)
?
1008
:
1012
)))
{
if
((
p
>=
1000
)
&&
(
p
<
((
dmrs_type
==
pusch_dmrs_type1
)
?
1008
:
1012
)))
{
if
(
gNB
->
frame_parms
.
Ncp
==
NORMAL
)
{
if
(
gNB
->
frame_parms
.
Ncp
==
NORMAL
)
{
nb_dmrs
=
((
dmrs_type
==
pusch_dmrs_type1
)
?
6
:
4
);
nb_dmrs
=
((
dmrs_type
==
pusch_dmrs_type1
)
?
6
:
4
);
for
(
int
i
=
0
;
i
<
nb_pusch_rb
*
nb_dmrs
;
i
++
)
{
for
(
int
i
=
re_offset
;
i
<
re_offset
+
(
nb_pusch_rb
*
nb_dmrs
)
;
i
++
)
{
w
=
(
wf
[
p
-
1000
][
i
&
1
])
*
(
wt
[
p
-
1000
][
lp
]);
w
=
(
wf
[
p
-
1000
][
i
&
1
])
*
(
wt
[
p
-
1000
][
lp
]);
mod_table
=
(
w
==
1
)
?
nr_rx_mod_table
:
nr_rx_nmod_table
;
mod_table
=
(
w
==
1
)
?
nr_rx_mod_table
:
nr_rx_nmod_table
;
...
@@ -90,6 +90,7 @@ int nr_pusch_dmrs_rx(PHY_VARS_gNB *gNB,
...
@@ -90,6 +90,7 @@ int nr_pusch_dmrs_rx(PHY_VARS_gNB *gNB,
printf
(
"i %d idx %d pusch gold %u b0-b1 %d-%d mod_dmrs %d %d
\n
"
,
i
,
idx
,
nr_gold_pusch
[(
i
<<
1
)
>>
5
],
(((
nr_gold_pusch
[(
i
<<
1
)
>>
5
])
>>
((
i
<<
1
)
&
0x1f
))
&
1
),
printf
(
"i %d idx %d pusch gold %u b0-b1 %d-%d mod_dmrs %d %d
\n
"
,
i
,
idx
,
nr_gold_pusch
[(
i
<<
1
)
>>
5
],
(((
nr_gold_pusch
[(
i
<<
1
)
>>
5
])
>>
((
i
<<
1
)
&
0x1f
))
&
1
),
(((
nr_gold_pusch
[((
i
<<
1
)
+
1
)
>>
5
])
>>
(((
i
<<
1
)
+
1
)
&
0x1f
))
&
1
),
((
int16_t
*
)
output
)[
i
<<
1
],
((
int16_t
*
)
output
)[(
i
<<
1
)
+
1
]);
(((
nr_gold_pusch
[((
i
<<
1
)
+
1
)
>>
5
])
>>
(((
i
<<
1
)
+
1
)
&
0x1f
))
&
1
),
((
int16_t
*
)
output
)[
i
<<
1
],
((
int16_t
*
)
output
)[(
i
<<
1
)
+
1
]);
#endif
#endif
}
}
}
else
{
}
else
{
LOG_E
(
PHY
,
"extended cp not supported for PUSCH DMRS yet
\n
"
);
LOG_E
(
PHY
,
"extended cp not supported for PUSCH DMRS yet
\n
"
);
...
...
openair1/PHY/NR_REFSIG/nr_refsig.h
View file @
817afd99
...
@@ -48,5 +48,6 @@ int nr_pusch_dmrs_rx(PHY_VARS_gNB *gNB,
...
@@ -48,5 +48,6 @@ int nr_pusch_dmrs_rx(PHY_VARS_gNB *gNB,
unsigned
short
p
,
unsigned
short
p
,
unsigned
char
lp
,
unsigned
char
lp
,
unsigned
short
nb_pusch_rb
,
unsigned
short
nb_pusch_rb
,
uint32_t
re_offset
,
uint8_t
dmrs_type
);
uint8_t
dmrs_type
);
#endif
#endif
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_RA.c
View file @
817afd99
...
@@ -473,6 +473,8 @@ void nr_add_msg3(module_id_t module_idP, int CC_id, frame_t frameP, sub_frame_t
...
@@ -473,6 +473,8 @@ void nr_add_msg3(module_id_t module_idP, int CC_id, frame_t frameP, sub_frame_t
pusch_pdu
->
dmrs_config_type
=
0
;
pusch_pdu
->
dmrs_config_type
=
0
;
pusch_pdu
->
ul_dmrs_scrambling_id
=
*
scc
->
physCellId
;
//If provided and the PUSCH is not a msg3 PUSCH, otherwise, L2 should set this to physical cell id.
pusch_pdu
->
ul_dmrs_scrambling_id
=
*
scc
->
physCellId
;
//If provided and the PUSCH is not a msg3 PUSCH, otherwise, L2 should set this to physical cell id.
pusch_pdu
->
scid
=
0
;
//DMRS sequence initialization [TS38.211, sec 6.4.1.1.1]. Should match what is sent in DCI 0_1, otherwise set to 0.
pusch_pdu
->
scid
=
0
;
//DMRS sequence initialization [TS38.211, sec 6.4.1.1.1]. Should match what is sent in DCI 0_1, otherwise set to 0.
pusch_pdu
->
dmrs_ports
=
1
;
// 6.2.2 in 38.214 only port 0 to be used
pusch_pdu
->
num_dmrs_cdm_grps_no_data
=
2
;
// no data in dmrs symbols as in 6.2.2 in 38.214
pusch_pdu
->
resource_alloc
=
1
;
//type 1
pusch_pdu
->
resource_alloc
=
1
;
//type 1
pusch_pdu
->
rb_start
=
ra
->
msg3_first_rb
+
ibwp_start
-
abwp_start
;
// as for 6.3.1.7 in 38.211
pusch_pdu
->
rb_start
=
ra
->
msg3_first_rb
+
ibwp_start
-
abwp_start
;
// as for 6.3.1.7 in 38.211
if
(
ra
->
msg3_nb_rb
>
pusch_pdu
->
bwp_size
)
if
(
ra
->
msg3_nb_rb
>
pusch_pdu
->
bwp_size
)
...
@@ -621,7 +623,7 @@ void nr_generate_Msg2(module_id_t module_idP,
...
@@ -621,7 +623,7 @@ void nr_generate_Msg2(module_id_t module_idP,
pdsch_pdu_rel15
->
dmrsConfigType
=
0
;
pdsch_pdu_rel15
->
dmrsConfigType
=
0
;
pdsch_pdu_rel15
->
dlDmrsScramblingId
=
*
scc
->
physCellId
;
pdsch_pdu_rel15
->
dlDmrsScramblingId
=
*
scc
->
physCellId
;
pdsch_pdu_rel15
->
SCID
=
0
;
pdsch_pdu_rel15
->
SCID
=
0
;
pdsch_pdu_rel15
->
numDmrsCdmGrpsNoData
=
1
;
pdsch_pdu_rel15
->
numDmrsCdmGrpsNoData
=
2
;
pdsch_pdu_rel15
->
dmrsPorts
=
1
;
pdsch_pdu_rel15
->
dmrsPorts
=
1
;
pdsch_pdu_rel15
->
resourceAlloc
=
1
;
pdsch_pdu_rel15
->
resourceAlloc
=
1
;
pdsch_pdu_rel15
->
rbStart
=
0
;
pdsch_pdu_rel15
->
rbStart
=
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