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
Michael Black
OpenXG-RAN
Commits
b1d25966
Commit
b1d25966
authored
5 years ago
by
Francesco Mani
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
configuration of pucch0 rx from fapi structure
parent
59fc607c
Changes
2
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
28 additions
and
40 deletions
+28
-40
openair1/PHY/NR_TRANSPORT/pucch_rx.c
openair1/PHY/NR_TRANSPORT/pucch_rx.c
+22
-28
openair1/PHY/NR_UE_TRANSPORT/pucch_nr.h
openair1/PHY/NR_UE_TRANSPORT/pucch_nr.h
+6
-12
No files found.
openair1/PHY/NR_TRANSPORT/pucch_rx.c
View file @
b1d25966
...
...
@@ -18,27 +18,25 @@
#include "T.h"
void
nr_decode_pucch0
(
int32_t
**
rxdataF
,
pucch_GroupHopping_t
pucch_GroupHopping
,
uint32_t
n_id
,
// hoppingID higher layer parameter
void
nr_decode_pucch0
(
int32_t
**
rxdataF
,
uint64_t
*
payload
,
NR_DL_FRAME_PARMS
*
frame_parms
,
int
slot
,
int16_t
amp
,
int
nr_tti_tx
,
uint8_t
m0
,
// should come from resource set
uint8_t
nrofSymbols
,
// should come from resource set
uint8_t
startingSymbolIndex
,
// should come from resource set
uint16_t
startingPRB
,
// should come from resource set
uint8_t
nr_bit
)
{
// is number of UCI bits to be decoded
nfapi_nr_pucch_pdu_t
*
pucch_pdu
)
{
int
nr_sequences
;
const
uint8_t
*
mcs
;
if
(
nr_bit
==
1
){
pucch_GroupHopping_t
pucch_GroupHopping
=
pucch_pdu
->
group_hop_flag
+
(
pucch_pdu
->
sequence_hop_flag
<<
1
);
if
(
pucch_pdu
->
bit_len_harq
==
1
){
mcs
=
table1_mcs
;
nr_sequences
=
4
;
nr_sequences
=
4
>>
(
1
-
pucch_pdu
->
sr_flag
)
;
}
else
{
mcs
=
table2_mcs
;
nr_sequences
=
8
;
nr_sequences
=
8
>>
(
1
-
pucch_pdu
->
sr_flag
)
;
}
/*
* Implement TS 38.211 Subclause 6.3.2.3.1 Sequence generation
...
...
@@ -53,8 +51,6 @@ void nr_decode_pucch0( int32_t **rxdataF,
//uint8_t lnormal;
// lprime is the index of the OFDM symbol in the slot that corresponds to the first OFDM symbol of the PUCCH transmission in the slot given by [5, TS 38.213]
//uint8_t lprime;
// mcs is provided by TC 38.213 subclauses 9.2.3, 9.2.4, 9.2.5 FIXME!
//uint8_t mcs;
/*
* in TS 38.213 Subclause 9.2.1 it is said that:
...
...
@@ -73,19 +69,17 @@ void nr_decode_pucch0( int32_t **rxdataF,
// if frequency hopping is enabled by the higher-layer parameter PUCCH-frequency-hopping
// n_hop = 0 for first hop
// n_hop = 1 for second hop
uint8_t
n_hop
=
0
;
//uint8_t PUCCH_Frequency_Hopping; // from higher layers FIXME!!
uint8_t
n_hop
=
0
;
// Frequnecy hopping not implemented FIXME!!
// x_n contains the sequence r_u_v_alpha_delta(n)
int16_t
x_n_re
[
nr_sequences
][
24
],
x_n_im
[
nr_sequences
][
24
];
int
n
,
i
,
l
;
for
(
i
=
0
;
i
<
nr_sequences
;
i
++
){
// we proceed to calculate alpha according to TS 38.211 Subclause 6.3.2.2.2
for
(
l
=
0
;
l
<
nrofSymbols
;
l
++
){
// if frequency hopping is enabled n_hop = 1 for second hop. Not sure frequency hopping concerns format 0. FIXME!!!
// if ((PUCCH_Frequency_Hopping == 1)&&(l == (nrofSymbols-1))) n_hop = 1;
nr_group_sequence_hopping
(
pucch_GroupHopping
,
n_id
,
n_hop
,
nr_tti_tx
,
&
u
,
&
v
);
// calculating u and v value
alpha
=
nr_cyclic_shift_hopping
(
n_id
,
m0
,
mcs
[
i
],
l
,
startingSymbolIndex
,
nr_tti_tx
);
for
(
l
=
0
;
l
<
pucch_pdu
->
nr_of_symbols
;
l
++
){
nr_group_sequence_hopping
(
pucch_GroupHopping
,
pucch_pdu
->
hopping_id
,
n_hop
,
slot
,
&
u
,
&
v
);
// calculating u and v value
alpha
=
nr_cyclic_shift_hopping
(
pucch_pdu
->
hopping_id
,
pucch_pdu
->
initial_cyclic_shift
,
mcs
[
i
],
l
,
pucch_pdu
->
start_symbol_index
,
slot
);
#ifdef DEBUG_NR_PUCCH_RX
printf
(
"
\t
[nr_generate_pucch0] sequence generation
\t
u=%d
\t
v=%d
\t
alpha=%lf
\t
(for symbol l=%d)
\n
"
,
u
,
v
,
alpha
,
l
);
#endif
...
...
@@ -108,10 +102,10 @@ void nr_decode_pucch0( int32_t **rxdataF,
uint32_t
re_offset
=
0
;
uint8_t
l2
;
for
(
l
=
0
;
l
<
nrofS
ymbols
;
l
++
)
{
for
(
l
=
0
;
l
<
pucch_pdu
->
nr_of_s
ymbols
;
l
++
)
{
l2
=
l
+
startingSymbolI
ndex
;
re_offset
=
(
12
*
startingPRB
)
+
frame_parms
->
first_carrier_offset
;
l2
=
l
+
pucch_pdu
->
start_symbol_i
ndex
;
re_offset
=
(
12
*
pucch_pdu
->
prb_start
)
+
frame_parms
->
first_carrier_offset
;
if
(
re_offset
>=
frame_parms
->
ofdm_symbol_size
)
re_offset
-=
frame_parms
->
ofdm_symbol_size
;
...
...
@@ -135,7 +129,7 @@ void nr_decode_pucch0( int32_t **rxdataF,
memset
(
corr_re
,
0
,
nr_sequences
*
sizeof
(
double
));
memset
(
corr_im
,
0
,
nr_sequences
*
sizeof
(
double
));
for
(
i
=
0
;
i
<
nr_sequences
;
i
++
){
for
(
l
=
0
;
l
<
nrofS
ymbols
;
l
++
){
for
(
l
=
0
;
l
<
pucch_pdu
->
nr_of_s
ymbols
;
l
++
){
for
(
n
=
0
;
n
<
12
;
n
++
){
corr_re
[
i
]
+=
(
double
)(
r_re
[
12
*
l
+
n
])
/
32767
*
(
double
)(
x_n_re
[
i
][
12
*
l
+
n
])
/
32767
+
(
double
)(
r_im
[
12
*
l
+
n
])
/
32767
*
(
double
)(
x_n_im
[
i
][
12
*
l
+
n
])
/
32767
;
corr_im
[
i
]
+=
(
double
)(
r_re
[
12
*
l
+
n
])
/
32767
*
(
double
)(
x_n_im
[
i
][
12
*
l
+
n
])
/
32767
-
(
double
)(
r_im
[
12
*
l
+
n
])
/
32767
*
(
double
)(
x_n_re
[
i
][
12
*
l
+
n
])
/
32767
;
...
...
This diff is collapsed.
Click to expand it.
openair1/PHY/NR_UE_TRANSPORT/pucch_nr.h
View file @
b1d25966
...
...
@@ -57,18 +57,12 @@ void nr_decode_pucch1( int32_t **rxdataF,
uint8_t
timeDomainOCC
,
uint8_t
nr_bit
);
void
nr_decode_pucch0
(
int32_t
**
rxdataF
,
pucch_GroupHopping_t
PUCCH_GroupHopping
,
uint32_t
n_id
,
//PHY_VARS_gNB *gNB, generally rxdataf is in gNB->common_vars
void
nr_decode_pucch0
(
int32_t
**
rxdataF
,
uint64_t
*
payload
,
NR_DL_FRAME_PARMS
*
frame_parms
,
int
slot
,
int16_t
amp
,
int
nr_tti_tx
,
uint8_t
m0
,
// should come from resource set
uint8_t
nrofSymbols
,
// should come from resource set
uint8_t
startingSymbolIndex
,
// should come from resource set
uint16_t
startingPRB
,
// should come from resource set
uint8_t
nr_bit
);
nfapi_nr_pucch_pdu_t
*
pucch_pdu
);
void
nr_group_sequence_hopping
(
pucch_GroupHopping_t
PUCCH_GroupHopping
,
uint32_t
n_id
,
...
...
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