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_decodersptr
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

◆ 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_sizecodeword size. MUST be a power of 2.
num_info_bitsrepresents the number of information bits in a block. Also called frame_size. <= block_size
frozen_bit_positionsis 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_valuesholds 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: