ccsoft  0.0.0
Convolutional codes library with soft decision decoding
ccsoft::CC_Encoding_FA< T_Register, T_IOSymbol, N_k > Class Template Reference

Convolutional encoding class. This version uses a fixed array to store registers. The size is given by the N_k template parameter. More...

#include <CC_Encoding_FA.h>

Inheritance diagram for ccsoft::CC_Encoding_FA< T_Register, T_IOSymbol, N_k >:
Collaboration diagram for ccsoft::CC_Encoding_FA< T_Register, T_IOSymbol, N_k >:

List of all members.

Public Member Functions

 CC_Encoding_FA (const std::vector< unsigned int > &_constraints, const std::vector< std::vector< T_Register > > &_genpoly_representations)
virtual ~CC_Encoding_FA ()
virtual T_Register & get_register (unsigned int index)

Protected Types

typedef
CC_EncodingRegisters_FA
< T_Register, N_k > 
RegisterClass

Detailed Description

template<typename T_Register, typename T_IOSymbol, unsigned int N_k>
class ccsoft::CC_Encoding_FA< T_Register, T_IOSymbol, N_k >

Convolutional encoding class. This version uses a fixed array to store registers. The size is given by the N_k template parameter.

Template Parameters:
T_Registertype of the internal registers
T_IOSymboltype used to pass input and output symbols
N_kSize of an input symbol in bits (k parameter)

Member Typedef Documentation

template<typename T_Register , typename T_IOSymbol , unsigned int N_k>
typedef CC_EncodingRegisters_FA<T_Register, N_k> ccsoft::CC_Encoding_FA< T_Register, T_IOSymbol, N_k >::RegisterClass [protected]

Constructor & Destructor Documentation

template<typename T_Register , typename T_IOSymbol , unsigned int N_k>
ccsoft::CC_Encoding_FA< T_Register, T_IOSymbol, N_k >::CC_Encoding_FA ( const std::vector< unsigned int > &  _constraints,
const std::vector< std::vector< T_Register > > &  _genpoly_representations 
) [inline]

Constructor.

Parameters:
_constraintsVector of register lengths (constraint length + 1). The number of elements determines k.
_genpoly_representationsGenerator polynomial numeric representations. There are as many elements as there are input bits (k). Each element is itself a vector with one polynomial value per output bit. The smallest size of these vectors is retained as the number of output bits n. The input bits of a symbol are clocked simultaneously into the right hand side, or least significant position of the internal registers. Therefore the given polynomial representation of generators should follow the same convention.
                                                                                                                                   :
        CC_Encoding_base<T_Register, T_IOSymbol>(_constraints, _genpoly_representations),
        CC_EncodingRegisters_FA<T_Register, N_k>()
    {
    }
template<typename T_Register , typename T_IOSymbol , unsigned int N_k>
virtual ccsoft::CC_Encoding_FA< T_Register, T_IOSymbol, N_k >::~CC_Encoding_FA ( ) [inline, virtual]

Destructor

    {}

Member Function Documentation

template<typename T_Register , typename T_IOSymbol , unsigned int N_k>
virtual T_Register& ccsoft::CC_Encoding_FA< T_Register, T_IOSymbol, N_k >::get_register ( unsigned int  index) [inline, virtual]

Get a R/W reference to a regiser

Parameters:
indexIndex of the register

Implements ccsoft::CC_Encoding_base< T_Register, T_IOSymbol >.

    {
        return RegisterClass::get_register(index);
    }

Here is the call graph for this function:


The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Friends Defines