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
d4929cc2
Commit
d4929cc2
authored
4 years ago
by
Francesco Mani
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
bugfix in dmrs offset for pusch
parent
79471f2f
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
8 additions
and
7 deletions
+8
-7
openair1/PHY/NR_REFSIG/nr_dmrs_rx.c
openair1/PHY/NR_REFSIG/nr_dmrs_rx.c
+8
-7
No files found.
openair1/PHY/NR_REFSIG/nr_dmrs_rx.c
View file @
d4929cc2
...
...
@@ -63,32 +63,34 @@ int nr_pusch_dmrs_rx(PHY_VARS_gNB *gNB,
int8_t
w
,
nb_dmrs
;
short
*
mod_table
;
unsigned
char
idx
=
0
;
int
k
;
typedef
int
array_of_w
[
2
];
array_of_w
*
wf
;
array_of_w
*
wt
;
wf
=
(
dmrs_type
==
pusch_dmrs_type1
)
?
wf1
:
wf2
;
wt
=
(
dmrs_type
==
pusch_dmrs_type1
)
?
wt1
:
wt2
;
int
dmrs_offset
=
re_offset
/
((
dmrs_type
==
pusch_dmrs_type1
)
?
2
:
3
);
if
(
dmrs_type
>
2
)
LOG_E
(
PHY
,
"PUSCH DMRS config type %d not valid
\n
"
,
dmrs_type
+
1
);
if
((
p
>=
1000
)
&&
(
p
<
((
dmrs_type
==
pusch_dmrs_type1
)
?
1008
:
1012
)))
{
if
(
gNB
->
frame_parms
.
Ncp
==
NORMAL
)
{
nb_dmrs
=
((
dmrs_type
==
pusch_dmrs_type1
)
?
6
:
4
);
for
(
int
i
=
re_offset
;
i
<
re
_offset
+
(
nb_pusch_rb
*
nb_dmrs
);
i
++
)
{
for
(
int
i
=
dmrs_offset
;
i
<
dmrs
_offset
+
(
nb_pusch_rb
*
nb_dmrs
);
i
++
)
{
k
=
i
-
dmrs_offset
;
w
=
(
wf
[
p
-
1000
][
i
&
1
])
*
(
wt
[
p
-
1000
][
lp
]);
mod_table
=
(
w
==
1
)
?
nr_rx_mod_table
:
nr_rx_nmod_table
;
idx
=
((((
nr_gold_pusch
[(
i
<<
1
)
>>
5
])
>>
((
i
<<
1
)
&
0x1f
))
&
1
)
<<
1
)
^
(((
nr_gold_pusch
[((
i
<<
1
)
+
1
)
>>
5
])
>>
(((
i
<<
1
)
+
1
)
&
0x1f
))
&
1
);
((
int16_t
*
)
output
)[
i
<<
1
]
=
mod_table
[(
NR_MOD_TABLE_QPSK_OFFSET
+
idx
)
<<
1
];
((
int16_t
*
)
output
)[(
i
<<
1
)
+
1
]
=
mod_table
[((
NR_MOD_TABLE_QPSK_OFFSET
+
idx
)
<<
1
)
+
1
];
((
int16_t
*
)
output
)[
k
<<
1
]
=
mod_table
[(
NR_MOD_TABLE_QPSK_OFFSET
+
idx
)
<<
1
];
((
int16_t
*
)
output
)[(
k
<<
1
)
+
1
]
=
mod_table
[((
NR_MOD_TABLE_QPSK_OFFSET
+
idx
)
<<
1
)
+
1
];
#ifdef DEBUG_PUSCH
printf
(
"nr_pusch_dmrs_rx dmrs config type %d port %d nb_pusch_rb %d
\n
"
,
dmrs_type
,
p
,
nb_pusch_rb
);
printf
(
"wf[%d] = %d wt[%d]= %d
\n
"
,
i
&
1
,
wf
[
p
-
1000
][
i
&
1
],
lp
,
wt
[
p
-
1000
][
lp
]);
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
)[
k
<<
1
],
((
int16_t
*
)
output
)[(
k
<<
1
)
+
1
]);
#endif
}
...
...
@@ -103,7 +105,6 @@ int nr_pusch_dmrs_rx(PHY_VARS_gNB *gNB,
}
int
nr_pdsch_dmrs_rx
(
PHY_VARS_NR_UE
*
ue
,
unsigned
int
Ns
,
unsigned
int
*
nr_gold_pdsch
,
...
...
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