AFF3CT
A Fast Forward Error Correction Tool!
 All Classes Files Functions Variables Pages
Public Member Functions | Protected Attributes | List of all members
Puncturer_i< B, Q > Class Template Referenceabstract

Punctures a codeword to match a frame size. More...

#include <Puncturer.hpp>

Inheritance diagram for Puncturer_i< B, Q >:
Module SC_Puncturer< B, Q > Puncturer_NO< B, Q > Puncturer_polar_wangliu< B, Q >

Public Member Functions

 Puncturer_i (const int K, const int N, const int N_code, const int n_frames=1, const std::string name="Puncturer_i")
 Constructor. More...
 
virtual ~Puncturer_i ()
 Destructor.
 
virtual void puncture (const mipp::vector< B > &X_N1, mipp::vector< B > &X_N2) const =0
 Punctures a codeword. More...
 
virtual void depuncture (const mipp::vector< Q > &Y_N1, mipp::vector< Q > &Y_N2) const =0
 Depunctures a codeword. More...
 
- Public Member Functions inherited from Module
 Module (const int n_frames=1, const std::string name="Module")
 Constructor. More...
 
virtual ~Module ()
 Destructor.
 
virtual void set_n_frames (const int n_frames)
 Set the number of frames. More...
 
virtual int get_n_frames () const
 Get the number of frames. More...
 
void rename (const std::string name)
 Rename the Module. More...
 

Protected Attributes

const int K
 
const int N
 
const int N_code
 
- Protected Attributes inherited from Module
int n_frames
 
std::string name
 

Detailed Description

template<typename B, typename Q>
class Puncturer_i< B, Q >

Punctures a codeword to match a frame size.

Template Parameters
Btype of the bits in the frames.
Qtype of the reals (floating-point or fixed-point representation) in the Puncturer.

Please use Puncturer for inheritance (instead of Puncturer_i)

Constructor & Destructor Documentation

template<typename B , typename Q >
Puncturer_i< B, Q >::Puncturer_i ( const int  K,
const int  N,
const int  N_code,
const int  n_frames = 1,
const std::string  name = "Puncturer_i< B, Q >" 
)
inline

Constructor.

Parameters
Knumber of information bits in the frame.
Nsize of one frame.
N_codereal size of the codeword (Puncturer_i::N_code >= Puncturer_i::N).
n_framesnumber of frames to process in the Puncturer.
namePuncturer's name.

Member Function Documentation

template<typename B , typename Q >
virtual void Puncturer_i< B, Q >::depuncture ( const mipp::vector< Q > &  Y_N1,
mipp::vector< Q > &  Y_N2 
) const
pure virtual

Depunctures a codeword.

Parameters
Y_N1a noised and punctured codeword (corresponding to the frame size).
Y_N2a noised and complete/valid codeword.

Implemented in Puncturer_polar_wangliu< B, Q >, and Puncturer_NO< B, Q >.

template<typename B , typename Q >
virtual void Puncturer_i< B, Q >::puncture ( const mipp::vector< B > &  X_N1,
mipp::vector< B > &  X_N2 
) const
pure virtual

Punctures a codeword.

Parameters
X_N1a complete/valid codeword..
X_N2a punctured codeword (corresponding to the frame size).

Implemented in Puncturer_polar_wangliu< B, Q >, and Puncturer_NO< B, Q >.

Member Data Documentation

template<typename B , typename Q >
const int Puncturer_i< B, Q >::K
protected

Number of information bits in one frame

template<typename B , typename Q >
const int Puncturer_i< B, Q >::N
protected

Size of one frame (= number of bits in one frame)

template<typename B , typename Q >
const int Puncturer_i< B, Q >::N_code
protected

Real size of the codeword (Puncturer_i::N_code >= Puncturer_i::N)


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