Symbol Precoding#

Inheritance diagram of hermespy.modem.precoding.symbol_precoding.SymbolPrecoding

class SymbolPrecoding(modem=None)[source]#

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 (BaseModem, optional) – The modem this SymbolPrecoding configuration is attached to.

decode(symbols)[source]#

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 (StatedSymbols) – Symbols to be decoded.

Return type:

StatedSymbols

Returns: Decoded symbols.

Raises:

NotImplementedError – If an encoding operation is not supported.

encode(symbols)[source]#

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.

num_encoded_blocks(num_input_blocks)[source]#

Number of blocks after encoding.

Parameters:

num_input_blocks (int) – Number of blocks before encoding.

Return type:

int

Returns: Number of blocks after encoding.