Loading...
Searching...
No Matches
gr::fec::code::ldpc_bit_flip_decoder Class Referenceabstract
GNU Radio C++ Signal Processing Blocks » Error Coding and Decoding

LDPC bit flip decoding class. More...

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

## Public Member Functions

bool | set_frame_size (unsigned int frame_size) override=0
| Sets the uncoded frame size to `frame_size`.
double | rate () override=0
| Returns the coding rate of this decoder.
Public Member Functions inherited from gr::fec::generic_decoder
virtual void | generic_work (const 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.

## 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 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()

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_obj | The 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_iter | Maximum 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()

double gr::fec::code::ldpc_bit_flip_decoder::rate | ( |  | ) |

override pure virtual

Returns the coding rate of this decoder.

Implements gr::fec::generic_decoder.

## set_frame_size()

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

override 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:

- ldpc_bit_flip_decoder.h