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)
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)
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::Array
General array class.
Definition array.h:105
itpp::STC
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_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.

## 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.

References itpp::Array< T >::length().

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

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

Generated on Mon Jun 10 2024 11:49:40 for IT++ by Doxygen 1.9.8