|
typedef std::shared_ptr< generic_decoder > | sptr |
|
int | my_id |
|
std::string | d_name |
|
static int | base_unique_id |
|
float | llr_odd (const float la, const float lb) const |
|
float | llr_even (const float la, const float lb, const unsigned char f) const |
|
unsigned char | llr_bit_decision (const float llr) const |
|
const bool | is_frozen_bit (const int u_num) const |
|
const unsigned char | next_frozen_bit () |
|
void | initialize_decoder (unsigned char *u, float *llrs, const float *input) |
|
void | butterfly (float *llrs, unsigned char *u, const int stage, const int u_num, const int row) |
|
void | butterfly_volk (float *llrs, unsigned char *u, const int stage, const int u_num, const int row) |
|
void | butterfly_generic (float *llrs, unsigned char *u, const int stage, const int u_num, const int row) |
|
void | even_u_values (unsigned char *u_even, const unsigned char *u, const int u_num) |
|
void | odd_xor_even_values (unsigned char *u_xor, const unsigned char *u, const int u_num) |
|
void | extract_info_bits (unsigned char *output, const unsigned char *input) const |
|
void | print_pretty_llr_vector (const float *llr_vec) const |
|
const int | block_size () const |
|
const int | block_power () const |
|
const int | num_info_bits () const |
|
long | bit_reverse (long value, int active_bits) const |
|
void | print_packed_bit_array (const unsigned char *printed_array, const int num_bytes) const |
|
void | print_unpacked_bit_array (const unsigned char *bits, const unsigned int num_bytes) const |
|
void | setup_info_bit_positions_reversed () |
|
void | setup_volk_vectors () |
|
void | volk_encode (unsigned char *out_buf, const unsigned char *in_buf) |
|
void | volk_encode_block (unsigned char *out_buf, unsigned char *in_buf) |
|
gr::logger_ptr | d_logger |
|
std::vector< int > | d_frozen_bit_positions |
|
std::vector< uint8_t > | d_frozen_bit_values |
|
std::vector< int > | d_info_bit_positions |
|
std::vector< int > | d_info_bit_positions_reversed |
|
volk::vector< unsigned char > | d_volk_temp |
|
volk::vector< unsigned char > | d_volk_frozen_bit_mask |
|
volk::vector< unsigned char > | d_volk_frozen_bits |
|
Standard systematic successive cancellation (SC) decoder for POLAR codes.
It expects float input with bits mapped 1 --> 1, 0 --> -1 Or: f = 2.0 * bit - 1.0
Systematic encoding indicates that the info bit values are present in the codeword. 'info_bit_positions' may be obtained by ordering all non frozen_bit_positions in increasing order. One may extract them at their positions after a bit reversal operation. encoder -> decoder chain would need additional bit-reversal after encoding + before decoding. This is unnecessary.