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
canghaiwuhen
OpenXG-RAN
Commits
d89602c8
Commit
d89602c8
authored
Aug 23, 2018
by
hongzhi wang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
UE adding polar decoder
parent
742700fa
Changes
7
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
55 additions
and
75 deletions
+55
-75
openair1/PHY/CODING/nrPolar_tools/nr_polar_decoder.c
openair1/PHY/CODING/nrPolar_tools/nr_polar_decoder.c
+2
-2
openair1/PHY/CODING/nrPolar_tools/nr_polar_defs.h
openair1/PHY/CODING/nrPolar_tools/nr_polar_defs.h
+1
-1
openair1/PHY/INIT/nr_init_ue.c
openair1/PHY/INIT/nr_init_ue.c
+7
-2
openair1/PHY/NR_UE_TRANSPORT/dci_nr.c
openair1/PHY/NR_UE_TRANSPORT/dci_nr.c
+36
-60
openair1/PHY/NR_UE_TRANSPORT/nr_pbch.c
openair1/PHY/NR_UE_TRANSPORT/nr_pbch.c
+6
-8
openair1/PHY/defs_nr_UE.h
openair1/PHY/defs_nr_UE.h
+1
-0
targets/RT/USER/nr-ue.c
targets/RT/USER/nr-ue.c
+2
-2
No files found.
openair1/PHY/CODING/nrPolar_tools/nr_polar_decoder.c
View file @
d89602c8
...
@@ -40,7 +40,7 @@
...
@@ -40,7 +40,7 @@
int8_t
polar_decoder
(
int8_t
polar_decoder
(
double
*
input
,
double
*
input
,
uint
32
_t
*
out
,
uint
8
_t
*
out
,
t_nrPolar_paramsPtr
polarParams
,
t_nrPolar_paramsPtr
polarParams
,
uint8_t
listSize
,
uint8_t
listSize
,
uint8_t
pathMetricAppr
)
uint8_t
pathMetricAppr
)
...
@@ -274,7 +274,7 @@ int8_t polar_decoder(
...
@@ -274,7 +274,7 @@ int8_t polar_decoder(
/*
/*
* Return bits.
* Return bits.
*/
*/
nr_byte2bit_uint8_32_t
(
polarParams
->
nr_polar_A
,
polarParams
->
payloadBits
,
out
);
//
nr_byte2bit_uint8_32_t(polarParams->nr_polar_A, polarParams->payloadBits, out);
return
(
0
);
return
(
0
);
}
}
...
...
openair1/PHY/CODING/nrPolar_tools/nr_polar_defs.h
View file @
d89602c8
...
@@ -112,7 +112,7 @@ void polar_encoder_dci(uint32_t *in,
...
@@ -112,7 +112,7 @@ void polar_encoder_dci(uint32_t *in,
uint16_t
n_RNTI
);
uint16_t
n_RNTI
);
int8_t
polar_decoder
(
double
*
input
,
int8_t
polar_decoder
(
double
*
input
,
uint
32
_t
*
output
,
uint
8
_t
*
output
,
t_nrPolar_paramsPtr
polarParams
,
t_nrPolar_paramsPtr
polarParams
,
uint8_t
listSize
,
uint8_t
listSize
,
uint8_t
pathMetricAppr
);
uint8_t
pathMetricAppr
);
...
...
openair1/PHY/INIT/nr_init_ue.c
View file @
d89602c8
...
@@ -933,8 +933,9 @@ void nr_lte_ue_transport(PHY_VARS_UE *ue,int abstraction_flag) {
...
@@ -933,8 +933,9 @@ void nr_lte_ue_transport(PHY_VARS_UE *ue,int abstraction_flag) {
}*/
}*/
void
phy_init_nr_top
(
NR_DL_FRAME_PARMS
*
frame_parms
)
void
phy_init_nr_top
(
PHY_VARS_NR_UE
*
ue
)
{
{
NR_DL_FRAME_PARMS
*
frame_parms
=
&
ue
->
frame_parms
;
crcTableInit
();
crcTableInit
();
...
@@ -960,7 +961,11 @@ void phy_init_nr_top(NR_DL_FRAME_PARMS *frame_parms)
...
@@ -960,7 +961,11 @@ void phy_init_nr_top(NR_DL_FRAME_PARMS *frame_parms)
generate_ul_reference_signal_sequences
(
SHRT_MAX
);
generate_ul_reference_signal_sequences
(
SHRT_MAX
);
// Polar encoder init for PBCH
// Polar encoder init for PBCH
nr_polar_init
(
&
frame_parms
->
pbch_polar_params
,
1
);
//nr_polar_init(&frame_parms->pbch_polar_params, 1);
nr_polar_init
(
&
ue
->
nrPolar_params
,
NR_POLAR_PBCH_MESSAGE_TYPE
,
NR_POLAR_PBCH_PAYLOAD_BITS
,
NR_POLAR_PBCH_AGGREGATION_LEVEL
);
//lte_sync_time_init(frame_parms);
//lte_sync_time_init(frame_parms);
...
...
openair1/PHY/NR_UE_TRANSPORT/dci_nr.c
View file @
d89602c8
This diff is collapsed.
Click to expand it.
openair1/PHY/NR_UE_TRANSPORT/nr_pbch.c
View file @
d89602c8
...
@@ -535,16 +535,18 @@ int nr_rx_pbch( PHY_VARS_NR_UE *ue,
...
@@ -535,16 +535,18 @@ int nr_rx_pbch( PHY_VARS_NR_UE *ue,
unsigned
short
idx_demod
=
0
;
unsigned
short
idx_demod
=
0
;
int8_t
decoderState
=
0
;
int8_t
decoderState
=
0
;
uint8_t
decoderListSize
=
8
,
pathMetricAppr
=
0
;
uint8_t
decoderListSize
=
8
,
pathMetricAppr
=
0
;
double
aPrioriArray
[
frame_parms
->
pbch_polar_params
.
payloadBits
];
// assume no a priori knowledge available about the payload.
memset
(
&
pbch_a
[
0
],
0
,
sizeof
(
uint8_t
)
*
NR_POLAR_PBCH_PAYLOAD_BITS
);
memset
(
&
pbch_a
[
0
],
0
,
sizeof
(
uint8_t
)
*
NR_POLAR_PBCH_PAYLOAD_BITS
);
//printf("nr_pbch_ue nid_cell %d\n",frame_parms->Nid_cell);
//printf("nr_pbch_ue nid_cell %d\n",frame_parms->Nid_cell);
/*double aPrioriArray[frame_parms->pbch_polar_params.payloadBits]; // assume no a priori knowledge available about the payload.
for
(
int
i
=
0
;
i
<
frame_parms
->
pbch_polar_params
.
payloadBits
;
i
++
)
aPrioriArray
[
i
]
=
NAN
;
for (int i=0; i<frame_parms->pbch_polar_params.payloadBits; i++) aPrioriArray[i] = NAN;*/
int
subframe_rx
=
proc
->
subframe_rx
;
int
subframe_rx
=
proc
->
subframe_rx
;
printf
(
"ue->current_thread_id[subframe_rx] %d subframe_rx %d
\n
"
,
ue
->
current_thread_id
[
subframe_rx
],
subframe_rx
);
pbch_e_rx
=
&
nr_ue_pbch_vars
->
llr
[
0
];
pbch_e_rx
=
&
nr_ue_pbch_vars
->
llr
[
0
];
// clear LLR buffer
// clear LLR buffer
...
@@ -651,7 +653,8 @@ int nr_rx_pbch( PHY_VARS_NR_UE *ue,
...
@@ -651,7 +653,8 @@ int nr_rx_pbch( PHY_VARS_NR_UE *ue,
//#endif
//#endif
//polar decoding de-rate matching
//polar decoding de-rate matching
decoderState
=
polar_decoder
(
demod_pbch_e
,
pbch_a
,
&
frame_parms
->
pbch_polar_params
,
decoderListSize
,
pathMetricAppr
);
t_nrPolar_paramsPtr
currentPtr
=
nr_polar_params
(
&
ue
->
nrPolar_params
,
NR_POLAR_PBCH_MESSAGE_TYPE
,
NR_POLAR_PBCH_PAYLOAD_BITS
,
NR_POLAR_PBCH_AGGREGATION_LEVEL
);
decoderState
=
polar_decoder
(
demod_pbch_e
,
pbch_a_b
,
currentPtr
,
decoderListSize
,
pathMetricAppr
);
printf
(
"polar decoder state %d
\n
"
,
decoderState
);
printf
(
"polar decoder state %d
\n
"
,
decoderState
);
if
(
decoderState
==
-
1
)
if
(
decoderState
==
-
1
)
return
(
decoderState
);
return
(
decoderState
);
...
@@ -715,8 +718,3 @@ int nr_rx_pbch( PHY_VARS_NR_UE *ue,
...
@@ -715,8 +718,3 @@ int nr_rx_pbch( PHY_VARS_NR_UE *ue,
return
0
;
return
0
;
}
}
openair1/PHY/defs_nr_UE.h
View file @
d89602c8
...
@@ -1085,6 +1085,7 @@ typedef struct {
...
@@ -1085,6 +1085,7 @@ typedef struct {
uint32_t
dmrs_pbch_bitmap_nr
[
DMRS_PBCH_I_SSB
][
DMRS_PBCH_N_HF
][
DMRS_BITMAP_SIZE
];
uint32_t
dmrs_pbch_bitmap_nr
[
DMRS_PBCH_I_SSB
][
DMRS_PBCH_N_HF
][
DMRS_BITMAP_SIZE
];
#endif
#endif
t_nrPolar_paramsPtr
nrPolar_params
;
/// PBCH DMRS sequence
/// PBCH DMRS sequence
uint32_t
nr_gold_pbch
[
2
][
64
][
NR_PBCH_DMRS_LENGTH_DWORD
];
uint32_t
nr_gold_pbch
[
2
][
64
][
NR_PBCH_DMRS_LENGTH_DWORD
];
...
...
targets/RT/USER/nr-ue.c
View file @
d89602c8
...
@@ -696,8 +696,8 @@ static void *UE_thread_rxn_txnp4(void *arg) {
...
@@ -696,8 +696,8 @@ static void *UE_thread_rxn_txnp4(void *arg) {
UE
->
ul_indication
.
slot
=
0
;
// to be fill
UE
->
ul_indication
.
slot
=
0
;
// to be fill
UE
->
ul_indication
.
frame
=
0
;
// to be fill
UE
->
ul_indication
.
frame
=
0
;
// to be fill
// [TODO] mapping right after NR initial sync
// [TODO] mapping right after NR initial sync
//UE->ul_indication.frame =
;
UE
->
ul_indication
.
frame
=
proc
->
frame_rx
;
//UE->ul_indication.slot =
;
UE
->
ul_indication
.
slot
=
proc
->
nr_tti_rx
;
UE
->
if_inst
->
ul_indication
(
&
UE
->
ul_indication
);
UE
->
if_inst
->
ul_indication
(
&
UE
->
ul_indication
);
}
}
...
...
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