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:

StatedSymbols

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:

StatedSymbols

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:

StatedSymbols

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:

StatedSymbols

Returns: Decoded symbols.

Raises:

NotImplementedError – If an encoding operation is not supported.