Minimum-Mean-Square Equalization

class MMSETimeEqualizer

Bases: hermespy.precoding.symbol_precoder.SymbolPrecoder, hermespy.core.factory.Serializable

Minimum-Mean-Square channel equalization in time domain.

Minimum-Mean-Square channel equalization object initialization.

yaml_tag: str = 'MMSE-Time'

YAML serialization tag.

encode(symbol_stream)

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

symbol_stream (np.ndarray) – An MxN matrix of data symbol streams feeding into the precoding step to be encoded. The first matrix dimension M represents the number of streams, the second dimension N the number of discrete data symbols.

Returns

A matrix of M’xN’ encoded data symbol streams. The first matrix dimension M’ represents the number of streams after encoding, the second dimension N’ the number of discrete data symbols after encoding.

Return type

np.ndarray

Raises

NotImplementedError – If an encoding operation is not supported

decode(symbol_stream, channel_state, stream_noises)

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
  • symbol_stream (np.ndarray) – An MxN matrix of data symbol streams feeding into the precoding step to be decoded. The first matrix dimension M represents the number of streams, the second dimension N the number of discrete data symbols.

  • channel_state (ChannelStateInformation) – The channel state estimates for each input symbol within input_stream.

  • stream_noises (np.ndarray) – The noise variances for each data symbol within symbol_stream. Identical dimensionality to input_stream.

Returns

A matrix of M’xN’ decoded data symbol streams.

The first matrix dimension M’ represents the number of streams after decoding, the second dimension N’ the number of discrete data symbols after decoding.

ChannelStateInformation:

Updated channel state information after decoding.

np.ndarray:

A matrix of M’xN’ data symbol noise estimations after this decoding step.

Return type

np.ndarray

Raises

NotImplementedError – If a decoding 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

classmethod to_yaml(representer, node)

Serialize an MMSETimeEqualizer object to YAML.

Parameters
  • representer (SafeRepresenter) – A handle to a representer used to generate valid YAML code. The representer gets passed down the serialization tree to each node.

  • node (MMSETimeEqualizer) – The MMSETimeEqualizer instance to be serialized.

Returns

The serialized YAML node

Return type

Node

classmethod from_yaml(constructor, node)

Recall a new MMSETimeEqualizer instance from YAML.

Parameters
  • constructor (SafeConstructor) – A handle to the constructor extracting the YAML information.

  • node (Node) – YAML node representing the MMSETimeEqualizer serialization.

Returns

Newly created MMSETimeEqualizer instance.

Return type

MMSETimeEqualizer

class MMSESpaceEqualizer

Bases: hermespy.precoding.symbol_precoder.SymbolPrecoder, hermespy.core.factory.Serializable

Minimum-Mean-Square channel equalization in space domain.

Minimum-Mean-Square channel equalization object initialization.

yaml_tag: str = 'MMSE-Space'

YAML serialization tag.

encode(symbol_stream)

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

symbol_stream (np.ndarray) – An MxN matrix of data symbol streams feeding into the precoding step to be encoded. The first matrix dimension M represents the number of streams, the second dimension N the number of discrete data symbols.

Returns

A matrix of M’xN’ encoded data symbol streams. The first matrix dimension M’ represents the number of streams after encoding, the second dimension N’ the number of discrete data symbols after encoding.

Return type

np.ndarray

Raises

NotImplementedError – If an encoding operation is not supported

decode(symbol_stream, channel_state, stream_noises)

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
  • symbol_stream (np.ndarray) – An MxN matrix of data symbol streams feeding into the precoding step to be decoded. The first matrix dimension M represents the number of streams, the second dimension N the number of discrete data symbols.

  • channel_state (ChannelStateInformation) – The channel state estimates for each input symbol within input_stream.

  • stream_noises (np.ndarray) – The noise variances for each data symbol within symbol_stream. Identical dimensionality to input_stream.

Returns

A matrix of M’xN’ decoded data symbol streams.

The first matrix dimension M’ represents the number of streams after decoding, the second dimension N’ the number of discrete data symbols after decoding.

ChannelStateInformation:

Updated channel state information after decoding.

np.ndarray:

A matrix of M’xN’ data symbol noise estimations after this decoding step.

Return type

np.ndarray

Raises

NotImplementedError – If a decoding 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

classmethod to_yaml(representer, node)

Serialize an MMSESpaceEqualizer object to YAML.

Parameters
  • representer (SafeRepresenter) – A handle to a representer used to generate valid YAML code. The representer gets passed down the serialization tree to each node.

  • node (MMSESpaceEqualizer) – The MMSESpaceEqualizer instance to be serialized.

Returns

The serialized YAML node

Return type

Node

classmethod from_yaml(constructor, node)

Recall a new MMSESpaceEqualizer instance from YAML.

Parameters
  • constructor (SafeConstructor) – A handle to the constructor extracting the YAML information.

  • node (Node) – YAML node representing the MMSESpaceEqualizer serialization.

Returns

Newly created MMSESpaceEqualizer instance.

Return type

MMSESpaceEqualizer