GNU Radio Manual and C++ API Reference  3.8.1.0
The Free & Open Software Radio Ecosystem
gr::fec::code::ldpc_bit_flip_decoder Class Referenceabstract

LDPC bit flip decoding class. More...

#include <gnuradio/fec/ldpc_bit_flip_decoder.h>

Public Member Functions

virtual bool set_frame_size (unsigned int frame_size)=0
 Sets the uncoded frame size to frame_size. More...
 
virtual double rate ()=0
 Returns the coding rate of this decoder. More...
 
- Public Member Functions inherited from gr::fec::generic_decoder
virtual void generic_work (void *inbuffer, void *outbuffer)=0
 
int unique_id ()
 
std::string alias ()
 
 generic_decoder (void)
 
 generic_decoder (std::string name)
 
virtual ~generic_decoder ()
 
virtual int get_input_size ()=0
 
virtual int get_output_size ()=0
 
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 ()
 

Static Public Member Functions

static generic_decoder::sptr make (const fec_mtrx_sptr mtrx_obj, unsigned int max_iter=100)
 Build a bit flip decoding FEC API object. More...
 

Additional Inherited Members

- Public Types inherited from gr::fec::generic_decoder
typedef boost::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 Attributes inherited from gr::fec::generic_decoder
gr::logger_ptr d_logger
 

Detailed Description

LDPC bit flip decoding class.

A hard decision bit flip decoder class for decoding low density parity check (LDPC) codes. The decoder requires knowledge of the matrix used to create (encode) the codewords. The simple algorithm is:

  1. Compute parity checks on all of the bits.
  2. Flip the bit(s) associated with the most failed parity checks.
  3. Check to see if new word is valid. ( $\overline{x}$ is a codeword if and only if $\mathbf{H}\bar{x}^{T}=\overline{0}$.) If it is not valid, go back to step 1.
  4. Repeat until valid codeword is found or the maximum number of iterations is reached.

Member Function Documentation

◆ make()

static generic_decoder::sptr gr::fec::code::ldpc_bit_flip_decoder::make ( const fec_mtrx_sptr  mtrx_obj,
unsigned int  max_iter = 100 
)
static

Build a bit flip decoding FEC API object.

Parameters
mtrx_objThe LDPC parity check matrix to use for decoding. This should be the same matrix used for encoding. Provide either a ldpc_H_matrix or a ldpc_G_matrix object.
max_iterMaximum number of iterations to complete during the decoding algorithm. The default is 100 because this seemed to be sufficient during testing. May be increased for possibly better performance, but may slow things down.

◆ rate()

virtual double gr::fec::code::ldpc_bit_flip_decoder::rate ( )
pure virtual

Returns the coding rate of this decoder.

Implements gr::fec::generic_decoder.

◆ set_frame_size()

virtual bool gr::fec::code::ldpc_bit_flip_decoder::set_frame_size ( unsigned int  frame_size)
pure virtual

Sets the uncoded frame size to frame_size.

Sets the uncoded frame size to frame_size. If frame_size is greater than the value given to the constructor, the frame size will be capped by that initial value and this function will return false. Otherwise, it returns true.

Implements gr::fec::generic_decoder.


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