IT++ Logo
Public Member Functions | List of all members

Space Time block Codes (STC) class. More...

#include <itpp/comm/stc.h>

Public Member Functions

 STC (const std::string &in_code_name, int in_const_size, int in_em_antenna=0, int in_channel_uses=0)
 Space Time Code constructor (sets up the generator matrices using Hassibi's method) More...
 
void setup (const std::string &in_code_name, int in_const_size, int in_em_antenna=0, int in_channel_uses=0)
 Sets up the generator matrices using Hassibi's method (can be used to obtain new generator matrices, e.g. for a different code) More...
 
int get_nb_emission_antenna (void) const
 Gets the number of emission antenna (for some codes this is a predefined parameter) More...
 
int get_channel_uses (void) const
 Gets the channel uses (for some codes this is a predefined parameter) More...
 
int get_nb_symbols_per_block (void) const
 Gets the number of symbols per block (for all codes this is an output parameter) More...
 
itpp::cmat get_1st_gen_matrix (void) const
 Gets the first generator matrix of the ST code following Hassibi's approach. More...
 
itpp::cmat get_2nd_gen_matrix (void) const
 Gets the second generator matrix of the ST code following Hassibi's approach. More...
 
itpp::cmat encode (const itpp::cvec &symb)
 Encodes input symbols according to the specified ST code. More...
 

Detailed Description

Space Time block Codes (STC) class.

Implements space time block codes using Hassibi's model. The following codes are available:

The code name and the constellation size are always needed to generate the requested code. The number of emission antenna and the channel uses are required by some codes to be provided by the user as input parameters, for other codes they have predefined values and don't need to be specified by the user. The number of symbols per block is always set internally. Therefore, it is recommended that after setting up the generator matrices (either through the constructor or through the setup() method) to call getters in order to obtain the number of emission antenna, the channel uses and the number of symbols per block.

Usage example:

STC stc(code_name, const_size);
nb_em_antenna = stc.get_nb_emission_antenna();
channel_uses = stc.get_channel_uses();
symb_block = stc.get_nb_symbols_per_block();
//symbol generation
enc_symb = stc.encode(symb);
Space Time block Codes (STC) class.
Definition: stc.h:81

Reference: B. Hassibi and B. M. Hochwald, ''High-rate codes that are linear in space and time,`` IEEE Transactions on Information Theory, vol. 48, pp. 1804-1824, July 2002

Definition at line 80 of file stc.h.

Constructor & Destructor Documentation

◆ STC()

itpp::STC::STC ( const std::string &  in_code_name,
int  in_const_size,
int  in_em_antenna = 0,
int  in_channel_uses = 0 
)
inline

Space Time Code constructor (sets up the generator matrices using Hassibi's method)

Parameters
in_code_namecode name (see available codes)
in_const_sizeconstellation size (should be at least two)
in_em_antennanumber of emission antenna (for some codes it is set internally and should be obtained with get_nb_emission_antenna())
in_channel_usesnumber of channel uses (for some codes it is set internally and should be obtained with get_channel_uses())

Definition at line 84 of file stc.h.

Member Function Documentation

◆ setup()

void itpp::STC::setup ( const std::string &  in_code_name,
int  in_const_size,
int  in_em_antenna = 0,
int  in_channel_uses = 0 
)
inline

Sets up the generator matrices using Hassibi's method (can be used to obtain new generator matrices, e.g. for a different code)

Parameters
in_code_namecode name (see available codes)
in_const_sizeconstellation size (should be at least two)
in_em_antennanumber of emission antenna (for some codes it is set internally and should be obtained with get_nb_emission_antenna())
in_channel_usesnumber of channel uses (for some codes it is set internally and should be obtained with get_channel_uses())

Definition at line 93 of file stc.h.

References it_assert.

◆ get_nb_emission_antenna()

int itpp::STC::get_nb_emission_antenna ( void  ) const
inline

Gets the number of emission antenna (for some codes this is a predefined parameter)

Definition at line 107 of file stc.h.

◆ get_channel_uses()

int itpp::STC::get_channel_uses ( void  ) const
inline

Gets the channel uses (for some codes this is a predefined parameter)

Definition at line 112 of file stc.h.

◆ get_nb_symbols_per_block()

int itpp::STC::get_nb_symbols_per_block ( void  ) const
inline

Gets the number of symbols per block (for all codes this is an output parameter)

Definition at line 117 of file stc.h.

◆ get_1st_gen_matrix()

itpp::cmat itpp::STC::get_1st_gen_matrix ( void  ) const
inline

Gets the first generator matrix of the ST code following Hassibi's approach.

Definition at line 122 of file stc.h.

◆ get_2nd_gen_matrix()

itpp::cmat itpp::STC::get_2nd_gen_matrix ( void  ) const
inline

Gets the second generator matrix of the ST code following Hassibi's approach.

Definition at line 127 of file stc.h.

◆ encode()

itpp::cmat itpp::STC::encode ( const itpp::cvec &  symb)

Encodes input symbols according to the specified ST code.

Definition at line 740 of file stc.cpp.


The documentation for this class was generated from the following files:
SourceForge Logo

Generated on Tue Jan 24 2023 00:00:00 for IT++ by Doxygen 1.9.5