Space-Time Block Coding#
- class Alamouti#
Bases:
SymbolPrecoder
,Serializable
Alamouti precoder distributing symbols in space and time.
Support for 2 transmit antennas only. Refer to Alamouti [Ala98] for further information.
- yaml_tag: str = 'ALAMOUTI'#
YAML serialization tag.
- encode(symbols)#
Encode data into multiple antennas with space-time/frequency block codes.
- Parameters:
symbols (StatedSymbols) – Input signal featuring \(K\) blocks.
- Return type:
Returns: Encoded data with size \(2 \times K\) symbols
- Raises:
ValueError – If more than a single symbol stream is provided.
RuntimeError – If the number of transmit antennas is not two.
ValueError – If the number of data symbols is not even.
- decode(symbols)#
Decode data for STBC with 2 antenna streams
Received signal with equal noise power is assumed, the decoded signal has same noise level as input. If more than 2 receive antennas are employed, then MRC is applied on the STBC decoding output of all antennas.
- Parameters:
symbols (StatedSymbols) – Input signal with \(N \times K\) symbol blocks.
- Return type:
Returns: Decoded data with size \(N \times K\)
- property num_input_streams: int#
Required number of input symbol streams for encoding / number of resulting output streams after decoding.
- Returns:
The number of symbol streams.
- Return type:
int
- property num_output_streams: int#
Required number of input symbol streams for decoding / number of resulting output streams after encoding.
- Returns:
The number of symbol streams.
- Return type:
int