LMMSEEqualizer#

class sionna.phy.ofdm.LMMSEEqualizer(resource_grid: sionna.phy.ofdm.resource_grid.ResourceGrid, stream_management: sionna.phy.mimo.stream_management.StreamManagement, whiten_interference: bool = True, precision: Literal['single', 'double'] | None = None, device: str | None = None, **kwargs)[source]#

Bases: sionna.phy.ofdm.equalization.OFDMEqualizer

LMMSE equalization for OFDM MIMO transmissions.

This block computes linear minimum mean squared error (LMMSE) equalization for OFDM MIMO transmissions. The OFDM and stream configuration are provided by a ResourceGrid and StreamManagement instance, respectively. The detection algorithm is the lmmse_equalizer(). The block computes soft-symbol estimates together with effective noise variances for all streams which can, e.g., be used by a Demapper to obtain LLRs.

Parameters:
  • resource_grid (sionna.phy.ofdm.resource_grid.ResourceGrid) – ResourceGrid to be used

  • stream_management (sionna.phy.mimo.stream_management.StreamManagement) – StreamManagement to be used

  • whiten_interference (bool) – If True, the interference is first whitened before equalization. In this case, an alternative expression for the receive filter is used which can be numerically more stable.

  • precision (Literal['single', 'double'] | None) – Precision used for internal calculations and outputs. If set to None, precision is used.

  • device (str | None) – Device for tensor operations. If None, device is used.

Inputs:
  • y – [batch_size, num_rx, num_rx_ant, num_ofdm_symbols, fft_size], torch.complex. Received OFDM resource grid after cyclic prefix removal and FFT.

  • h_hat – [batch_size, num_rx, num_rx_ant, num_tx, num_streams_per_tx, num_ofdm_symbols, num_effective_subcarriers], torch.complex. Channel estimates for all streams from all transmitters.

  • err_var – [Broadcastable to shape of h_hat], torch.float. Variance of the channel estimation error.

  • no – [batch_size, num_rx, num_rx_ant] (or only the first n dims), torch.float. Variance of the AWGN.

Outputs:
  • x_hat – [batch_size, num_tx, num_streams, num_data_symbols], torch.complex. Estimated symbols.

  • no_eff – [batch_size, num_tx, num_streams, num_data_symbols], torch.float. Effective noise variance for each estimated symbol.