itpp::STC Class Reference
Communications Module » Miscellaneous Communications Functions

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)
int | get_channel_uses (void) const
| Gets the channel uses (for some codes this is a predefined parameter)
int | get_nb_symbols_per_block (void) const
| Gets the number of symbols per block (for all codes this is an output parameter)
itpp::cmat | get_1st_gen_matrix (void) const
| Gets the first generator matrix of the ST code following Hassibi's approach.
itpp::cmat | get_2nd_gen_matrix (void) const
| Gets the second generator matrix of the ST code following Hassibi's approach.
itpp::cmat | encode (const itpp::cvec &symb)
| Encodes input symbols according to the specified ST code.

## Detailed Description

Space Time block Codes (STC) class.

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

- V-BLAST_MxN
- imp_V-BLAST_MxN
- Alamouti_2xN
- Switched_Alamouti_4xN
- Double_Alamouti_4xN
- Jafarkhani_4xN
- Golden_2x2
- Damen_2x2
- 34ortho_3xN
- 36LD_3xN
- 37LD_3xN
- 39LD_3xN

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);
itpp::STC::STC
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)
Definition: stc.h:84

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_name | code name (see available codes)
  in_const_size | constellation size (should be at least two)
  in_em_antenna | number of emission antenna (for some codes it is set internally and should be obtained with get_nb_emission_antenna())
  in_channel_uses | number 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_name | code name (see available codes)
  in_const_size | constellation size (should be at least two)
  in_em_antenna | number of emission antenna (for some codes it is set internally and should be obtained with get_nb_emission_antenna())
  in_channel_uses | number 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.

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

- itpp/comm/stc.h
- itpp/comm/stc.cpp

Generated on Tue Aug 17 2021 10:59:15 for IT++ by Doxygen 1.9.1