Spatial Multiplexing#

class SpatialMultiplexing#

Bases: SymbolPrecoder, Serializable

Spatial Multiplexing data symbol precoding step.

Takes a on-dimensional input stream and distributes the symbols to multiple output streams.

Spatial Multiplexing object initialization.

yaml_tag: str = 'SM'#

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 (StatedSymbols) – 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.

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

property rate: Fraction#

Rate between input symbol slots and output symbol slots.

For example, a rate of one indicates that no symbols are getting added or removed during precoding.

Returns:

The precoding rate.

Return type:

Fraction