![]() |
ccsoft
0.0.0
Convolutional codes library with soft decision decoding
|
Convolutional encoding class. Supports any k,n with k<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. More...
#include <CC_Encoding.h>


Public Member Functions | |
| CC_Encoding (const std::vector< unsigned int > &_constraints, const std::vector< std::vector< T_Register > > &_genpoly_representations) | |
| virtual | ~CC_Encoding () |
| void | clear () |
| virtual T_Register & | get_register (unsigned int index) |
| const std::vector< T_Register > & | get_registers () const |
| void | set_registers (const std::vector< T_Register > &_registers) |
Protected Attributes | |
| std::vector< T_Register > | registers |
| Memory registers as many as there are inputs. | |
Convolutional encoding class. Supports any k,n with k<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.
| T_Register | type of the internal registers |
| T_IOSymbol | type used to pass input and output symbols |
| ccsoft::CC_Encoding< T_Register, T_IOSymbol >::CC_Encoding | ( | const std::vector< unsigned int > & | _constraints, |
| const std::vector< std::vector< T_Register > > & | _genpoly_representations | ||
| ) | [inline] |
Constructor.
| _constraints | Vector of register lengths (constraint length + 1). The number of elements determines k. |
| _genpoly_representations | Generator 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),
registers(_constraints.size(),0)
{
}
| virtual ccsoft::CC_Encoding< T_Register, T_IOSymbol >::~CC_Encoding | ( | ) | [inline, virtual] |
Destructor
{}
| void ccsoft::CC_Encoding< T_Register, T_IOSymbol >::clear | ( | ) | [inline] |
| virtual T_Register& ccsoft::CC_Encoding< T_Register, T_IOSymbol >::get_register | ( | unsigned int | index | ) | [inline, virtual] |
Get a R/W reference to a regiser
| index | Index of the register |
Implements ccsoft::CC_Encoding_base< T_Register, T_IOSymbol >.
{
return registers[index];
}
| const std::vector<T_Register>& ccsoft::CC_Encoding< T_Register, T_IOSymbol >::get_registers | ( | ) | const [inline] |
Get registers reference
{
return registers;
}
| void ccsoft::CC_Encoding< T_Register, T_IOSymbol >::set_registers | ( | const std::vector< T_Register > & | _registers | ) | [inline] |
Set registers
{
registers = _registers;
}
std::vector<T_Register> ccsoft::CC_Encoding< T_Register, T_IOSymbol >::registers [protected] |
Memory registers as many as there are inputs.