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
ZhouShuya
OpenXG-RAN
Commits
c5c3c325
Commit
c5c3c325
authored
Oct 26, 2018
by
Raymond Knopp
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
added all optimizations except rate matching for N=512 polar-encoder.
parent
6f38c94d
Changes
3
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
356 additions
and
267 deletions
+356
-267
openair1/PHY/CODING/nrPolar_tools/nr_polar_defs.h
openair1/PHY/CODING/nrPolar_tools/nr_polar_defs.h
+49
-47
openair1/PHY/CODING/nrPolar_tools/nr_polar_encoder.c
openair1/PHY/CODING/nrPolar_tools/nr_polar_encoder.c
+299
-212
openair1/PHY/CODING/nrPolar_tools/nr_polar_procedures.c
openair1/PHY/CODING/nrPolar_tools/nr_polar_procedures.c
+8
-8
No files found.
openair1/PHY/CODING/nrPolar_tools/nr_polar_defs.h
View file @
c5c3c325
...
...
@@ -78,54 +78,56 @@ typedef struct decoder_tree_t_s {
}
decoder_tree_t
;
struct
nrPolar_params
{
//messageType: 0=PBCH, 1=DCI, -1=UCI
int
idx
;
//idx = (messageType * messageLength * aggregation_prime);
struct
nrPolar_params
*
nextPtr
;
uint8_t
n_max
;
uint8_t
i_il
;
uint8_t
i_seg
;
uint8_t
n_pc
;
uint8_t
n_pc_wm
;
uint8_t
i_bil
;
uint16_t
payloadBits
;
uint16_t
encoderLength
;
uint8_t
crcParityBits
;
uint8_t
crcCorrectionBits
;
uint16_t
K
;
uint16_t
N
;
uint8_t
n
;
uint32_t
crcBit
;
uint16_t
*
interleaving_pattern
;
uint16_t
*
rate_matching_pattern
;
const
uint16_t
*
Q_0_Nminus1
;
int16_t
*
Q_I_N
;
int16_t
*
Q_F_N
;
int16_t
*
Q_PC_N
;
uint8_t
*
information_bit_pattern
;
uint16_t
*
channel_interleaver_pattern
;
uint32_t
crc_polynomial
;
uint8_t
**
crc_generator_matrix
;
//G_P
uint8_t
**
G_N
;
uint32_t
*
crc256Table
;
//messageType: 0=PBCH, 1=DCI, -1=UCI
int
idx
;
//idx = (messageType * messageLength * aggregation_prime);
struct
nrPolar_params
*
nextPtr
;
uint8_t
n_max
;
uint8_t
i_il
;
uint8_t
i_seg
;
uint8_t
n_pc
;
uint8_t
n_pc_wm
;
uint8_t
i_bil
;
uint16_t
payloadBits
;
uint16_t
encoderLength
;
uint8_t
crcParityBits
;
uint8_t
crcCorrectionBits
;
uint16_t
K
;
uint16_t
N
;
uint8_t
n
;
uint32_t
crcBit
;
uint16_t
*
interleaving_pattern
;
uint16_t
*
rate_matching_pattern
;
const
uint16_t
*
Q_0_Nminus1
;
int16_t
*
Q_I_N
;
int16_t
*
Q_F_N
;
int16_t
*
Q_PC_N
;
uint8_t
*
information_bit_pattern
;
uint16_t
*
channel_interleaver_pattern
;
uint32_t
crc_polynomial
;
uint8_t
**
crc_generator_matrix
;
//G_P
uint8_t
**
G_N
;
uint64_t
**
G_N_tab
;
uint64_t
cprime_tab
[
8
][
256
];
uint32_t
*
crc256Table
;
uint8_t
**
extended_crc_generator_matrix
;
//lowercase: bits, Uppercase: Bits stored in bytes
//polar_encoder vectors
uint8_t
*
nr_polar_crc
;
uint8_t
*
nr_polar_aPrime
;
uint8_t
*
nr_polar_APrime
;
uint8_t
*
nr_polar_D
;
uint8_t
*
nr_polar_E
;
//Polar Coding vectors
uint8_t
*
nr_polar_A
;
uint8_t
*
nr_polar_CPrime
;
uint8_t
*
nr_polar_B
;
uint8_t
*
nr_polar_U
;
decoder_tree_t
tree
;
//lowercase: bits, Uppercase: Bits stored in bytes
//polar_encoder vectors
uint8_t
*
nr_polar_crc
;
uint8_t
*
nr_polar_aPrime
;
uint8_t
*
nr_polar_APrime
;
uint8_t
*
nr_polar_D
;
uint8_t
*
nr_polar_E
;
//Polar Coding vectors
uint8_t
*
nr_polar_A
;
uint8_t
*
nr_polar_CPrime
;
uint8_t
*
nr_polar_B
;
uint8_t
*
nr_polar_U
;
decoder_tree_t
tree
;
}
__attribute__
((
__packed__
));
typedef
struct
nrPolar_params
t_nrPolar_params
;
typedef
t_nrPolar_params
*
t_nrPolar_paramsPtr
;
...
...
openair1/PHY/CODING/nrPolar_tools/nr_polar_encoder.c
View file @
c5c3c325
This diff is collapsed.
Click to expand it.
openair1/PHY/CODING/nrPolar_tools/nr_polar_procedures.c
View file @
c5c3c325
...
...
@@ -33,15 +33,15 @@
#include "PHY/CODING/nrPolar_tools/nr_polar_defs.h"
void
nr_polar_bit_insertion
(
uint8_t
*
input
,
uint8_t
*
output
,
uint16_t
N
,
uint16_t
K
,
int16_t
*
Q_I_N
,
int16_t
*
Q_PC_N
,
uint8_t
n_PC
)
uint8_t
*
output
,
uint16_t
N
,
uint16_t
K
,
int16_t
*
Q_I_N
,
int16_t
*
Q_PC_N
,
uint8_t
n_PC
)
{
uint16_t
k
=
0
;
uint8_t
flag
;
uint16_t
k
=
0
;
uint8_t
flag
;
if
(
n_PC
>
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