Channel Estimation#

Inheritance diagram of hermespy.modem.waveform.ChannelEstimation

Channel estimation is the process of estimating the channel state \(\widehat{\mathbf{H}}\) during signal reception by observing the channel’s effect on known reference symbols distributed over the communication frame. Within the Hermes communication processing pipeline, channel estimation is directly following the demodulation stage. Several other processing steps rely on the channel estimation, namely symbol and stream coding during both transmission and reception, as well as the final equalization step before unmapping.

During simulation runtime the ideal channel state information used to propagate the transmitted and received signals is available, so that users may configure an ideal channel state estimator leading to \(\widehat{\mathbf{H}} = \mathbf{H}\). When using Hermes in hardware loop mode operating SDRs or when configuring non-ideal channel state estimators during simulations, transmit processing blocks only have access to the channel state estimated from the most recent reception.

class ChannelEstimation(waveform=None)[source]#

Bases: Generic[WaveformType], Serializable

Base class for channel estimation routines of waveform generators.

Parameters:

waveform (CommunicationWaveform, optional) – The waveform generator this estimation routine is attached to.

estimate_channel(symbols, delay=0.0)[source]#

Estimate the wireless channel of a received communication frame.

Parameters:
  • symbols (Symbols) – Demodulated communication symbols.

  • delay (float, optional) – The considered frame’s delay offset to the drop start in seconds.

Return type:

StatedSymbols

Returns: The symbols and their respective channel states.

property waveform: WaveformType | None#

Waveform generator this synchronization routine is attached to.

Returns:

Handle to the waveform generator. None if the synchronization routine is floating.

Return type:

Optional[WaveformType]