Symbol Precoding

Inheritance diagram of hermespy.modem.precoding.symbol_precoding.TransmitSymbolEncoder, hermespy.modem.precoding.symbol_precoding.ReceiveSymbolDecoder, hermespy.modem.precoding.symbol_precoding.ReceiveSymbolCoding, hermespy.modem.precoding.symbol_precoding.TransmitSymbolCoding
class TransmitSymbolEncoder[source]

Bases: TransmitEncoder[TransmitSymbolCoding]

abstract encode_symbols(symbols, num_output_streams)[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.

  • num_output_streams (int) – Number of required output streams after encoding.

Return type:

StatedSymbols

Returns: Encoded symbols.

property encode_rate: Fraction

Rate between input symbol slots and output symbol slots.

abstract property num_transmit_input_symbols: int

Required number of input streams during encoding.

abstract property num_transmit_output_symbols: int

Resulting number of output streams after encoding.

class ReceiveSymbolDecoder[source]

Bases: ReceiveDecoder[ReceiveSymbolCoding]

abstract decode_symbols(symbols, num_output_streams)[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.

  • num_output_streams (int) – Number of required output streams after decoding.

Return type:

StatedSymbols

Returns: Decoded symbols.

property decode_rate: Fraction

Rate between input symbol slots and output symbol slots.

abstract property num_receive_input_symbols: int

Required number of input streams during decoding.

abstract property num_receive_output_symbols: int

Resulting number of output streams after decoding.

class ReceiveSymbolCoding[source]

Bases: ReceivePrecoding[ReceiveSymbolDecoder], Serializable

Channel precoding configuration for wireless reception of modulated data symbols.

Receive symbol precoding occurs as an intermediate step between base-band demodulation and bit unmapping.

decode_symbols(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.

num_decoded_blocks(num_input_blocks)[source]

Number of resulting symbol blocks after decoding.

Parameters:

num_input_blocks (int) – Number of blocks before decoding.

Return type:

int

Returns: Number of blocks after decoding.

property decode_rate: Fraction

Rate between input symbol slots and output symbol slots.

class TransmitSymbolCoding[source]

Bases: TransmitPrecoding[TransmitSymbolEncoder], Serializable

Channel precoding configuration for wireless transmission of modulated data symbols.

Transmit symbol precoding occurs as an intermediate step between bit-mapping and base-band symbol modulation.

encode_symbols(symbols, num_output_streams)[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.

  • num_output_streams (int) – Number of required output streams after encoding.

Return type:

StatedSymbols

Returns: Encoded symbols.

num_encoded_blocks(num_input_blocks)[source]

Number of resulting symbol blocks after encoding.

Parameters:

num_input_blocks (int) – Number of blocks before encoding.

Return type:

int

Returns: Number of blocks after encoding.

property encode_rate: Fraction

Rate between input symbol slots and output symbol slots.