Symbol Precoding#
- class SymbolPrecoder#
Bases:
Precoder
,ABC
Abstract base class for signal processing algorithms operating on complex data symbols streams.
A symbol precoder represents one coding step of a full symbol precoding configuration. It features the encoding and decoding routines, meant to encode and decode multidimensional symbol streams during transmission and reception, respectively.
- abstract encode(symbols)#
Encode a data stream before transmission.
This operation may modify the number of streams as well as the number of data symbols per stream.
- Parameters:
symbols (StatedSymbols) – Symbols to be encoded.
- Return type:
Returns: Encoded symbols.
- Raises:
NotImplementedError – If an encoding operation is not supported.
- abstract decode(symbols)#
Decode a data stream before reception.
This operation may modify the number of streams as well as the number of data symbols per stream.
- Parameters:
symbols (Symbols) – Symbols to be decoded.
- Return type:
Returns: Decoded symbols.
- Raises:
NotImplementedError – If an encoding operation is not supported.
- class SymbolPrecoding(modem=None)#
Bases:
Precoding
[SymbolPrecoder
],Serializable
Channel SymbolPrecoding configuration for wireless transmission of modulated data symbols.
Symbol precoding may occur as an intermediate step between bit-mapping and base-band symbol modulations. In order to account for the possibility of multiple antenna data-streams, waveform generators may access the SymbolPrecoding configuration to encode one-dimensional symbol streams into multi-dimensional symbol streams during transmission and subsequently decode during reception.
Symbol Precoding object initialization.
- Parameters:
modem (Modem, Optional) – The modem this SymbolPrecoding configuration is attached to.
- yaml_tag: Optional[str] = 'SymbolCoding'#
YAML serialization tag.
- encode(symbols)#
Encode a data stream before transmission.
This operation may modify the number of streams as well as the number of data symbols per stream.
- Parameters:
symbols (Symbols) – Symbols to be encoded.
- Return type:
Returns: Encoded symbols.
- Raises:
NotImplementedError – If an encoding operation is not supported.
- decode(symbols)#
Decode a data stream before reception.
This operation may modify the number of streams as well as the number of data symbols per stream.
- Parameters:
symbols (Symbols) – Symbols to be decoded.
- Return type:
Returns: Decoded symbols.
- Raises:
NotImplementedError – If an encoding operation is not supported.