Maximum Ratio Combining

class MaximumRatioCombining

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

Maximum ratio combining symbol decoding step

Symbol Precoder initialization.

yaml_tag: str = 'MRC'

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, stream_responses, 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