Stream Precoding#

Stream precodings implement MIMO algorithms on a base-band signal sample level during both signal transmission and reception.

class ReceiveStreamCoding(modem=None)[source]#

Bases: Precoding[ReceiveStreamDecoder], Serializable

Stream MIMO coding configuration during signal transmission.

Symbol Precoding object initialization.

Parameters:

modem (Modem, Optional) – The modem this Precoding configuration is attached to.

decode(signal)[source]#

Decode a signal MIMO stream during reception.

This operation may modify the number of streams.

Parameters:

streams (Signal) – The signal stream to be decoded.

Return type:

Signal

Returns: The decode signal stream.

yaml_tag: Optional[str] = 'ReceiveCoding'#

YAML serialization tag.

class ReceiveStreamDecoder[source]#

Bases: Precoder, ABC

Stream MIMO coding during signal reception.

abstract decode_streams(streams)[source]#

Encode a signal MIMO stream during signal recepeption.

This operation may modify the number of streams.

Parameters:

streams (Signal) – The signal stream to be decoded.

Return type:

Signal

Returns: The decoded signal stream.

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

abstract property num_receive_input_streams: int#

Number of input streams required by this coding.

Returns: Number of input streams.

abstract property num_receive_output_streams: int#

Number of output streams generated by this coding.

Returns: Number of output streams.

class TransmitStreamCoding(modem=None)[source]#

Bases: Precoding[TransmitStreamEncoder], Serializable

Stream MIMO coding configuration during signal transmission.

Symbol Precoding object initialization.

Parameters:

modem (Modem, Optional) – The modem this Precoding configuration is attached to.

encode(signal)[source]#

Encode a signal MIMO stream during transmission.

This operation may modify the number of streams.

Parameters:

streams (Signal) – The signal stream to be encoded.

Return type:

Signal

Returns: The encoded signal stream.

yaml_tag: Optional[str] = 'TransmitCoding'#

YAML serialization tag.

class TransmitStreamEncoder[source]#

Bases: Precoder, ABC

Stream MIMO coding during signal transmission.

abstract encode_streams(streams)[source]#

Encode a signal MIMO stream during transmission.

This operation may modify the number of streams.

Parameters:

streams (Signal) – The signal stream to be encoded.

Return type:

Signal

Returns: The encoded signal stream.

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

abstract property num_transmit_input_streams: int#

Number of input streams required by this coding.

Returns: Number of input streams.

abstract property num_transmit_output_streams: int#

Number of output streams generated by this coding.

Returns: Number of output streams.