GNU Radio C++ API Reference: gr::fec::code::polar_decoder_sc Class Reference

| GNU Radio C++ API Reference 3.10.12.0 The Free & Open Software Radio Ecosystem |

Loading...
Searching...
No Matches
gr::fec::code::polar_decoder_sc Class Reference

Standard successive cancellation (SC) decoder for POLAR codes. More...

`#include <gnuradio/fec/polar_decoder_sc.h>`

## Public Member Functions
| ~polar_decoder_sc () override
void | generic_work (const void *in_buffer, void *out_buffer) override
Public Member Functions inherited from gr::fec::code::polar_decoder_common
| polar_decoder_common (int block_size, int num_info_bits, std::vector< int > frozen_bit_positions, std::vector< uint8_t > frozen_bit_values)
| ~polar_decoder_common () override
double | rate () override
int | get_input_size () override
int | get_output_size () override
bool | set_frame_size (unsigned int frame_size) override
Public Member Functions inherited from gr::fec::generic_decoder
int | unique_id ()
std::string | alias ()
| generic_decoder (void)
| generic_decoder (std::string name)
virtual | ~generic_decoder ()
virtual int | get_history ()
virtual float | get_shift ()
virtual int | get_input_item_size ()
virtual int | get_output_item_size ()
virtual const char * | get_input_conversion ()
virtual const char * | get_output_conversion ()
virtual float | get_iterations ()
Public Member Functions inherited from gr::fec::code::polar_common
| polar_common (int block_size, int num_info_bits, std::vector< int > frozen_bit_positions, std::vector< uint8_t > frozen_bit_values)
| ~polar_common ()

## Static Public Member Functions
static generic_decoder::sptr | make (int block_size, int num_info_bits, std::vector< int > frozen_bit_positions, std::vector< uint8_t > frozen_bit_values)

## Additional Inherited Members
Public Types inherited from gr::fec::generic_decoder
typedef std::shared_ptr< generic_decoder > | sptr
Public Attributes inherited from gr::fec::generic_decoder
int | my_id
std::string | d_name
Static Public Attributes inherited from gr::fec::generic_decoder
static int | base_unique_id
Protected Member Functions inherited from gr::fec::code::polar_decoder_common
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
bool | is_frozen_bit (const int u_num) 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
Protected Member Functions inherited from gr::fec::code::polar_common
int | block_size () const
int | block_power () 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)
Protected Attributes inherited from gr::fec::generic_decoder
gr::logger_ptr | d_logger
Protected Attributes inherited from gr::fec::code::polar_common
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

## Detailed Description

Standard 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

## Constructor & Destructor Documentation

## ◆ ~polar_decoder_sc()

gr::fec::code::polar_decoder_sc::~polar_decoder_sc | ( |  | ) |
| override

## Member Function Documentation

## ◆ generic_work()

void gr::fec::code::polar_decoder_sc::generic_work | ( | const void * | in_buffer,
|  | void * | out_buffer )
| overridevirtual

Implements gr::fec::generic_decoder.

References gr::fec::code::polar_common::block_size(), and gr::fec::code::polar_common::num_info_bits().

## ◆ make()

generic_decoder::sptr gr::fec::code::polar_decoder_sc::make | ( | int | block_size,
|  | int | num_info_bits,
|  | std::vector< int > | frozen_bit_positions,
|  | std::vector< uint8_t > | frozen_bit_values )
| static

Parameters

  block_size | codeword size. MUST be a power of 2.
  num_info_bits | represents the number of information bits in a block. Also called frame_size. <= block_size
  frozen_bit_positions | is an integer vector which defines the position of all frozen bits in a block. Its size MUST be equal to block_size - num_info_bits. Also it must be sorted and every position must only occur once.
  frozen_bit_values | holds an unpacked byte for every frozen bit position. It defines if a frozen bit is fixed to '0' or '1'. Defaults to all ZERO.

References gr::fec::code::polar_common::block_size(), and gr::fec::code::polar_common::num_info_bits().

The documentation for this class was generated from the following file:

- polar_decoder_sc.h