EPDetector#
- class sionna.phy.ofdm.EPDetector(output: str, resource_grid: sionna.phy.ofdm.resource_grid.ResourceGrid, stream_management: sionna.phy.mimo.stream_management.StreamManagement, num_bits_per_symbol: int | None = None, hard_out: bool = False, l: int = 10, beta: float = 0.9, precision: Literal['single', 'double'] | None = None, device: str | None = None, **kwargs)[source]#
Bases:
sionna.phy.ofdm.detection.OFDMDetectorExpectation Propagation (EP) detector for OFDM MIMO transmissions.
This block wraps the MIMO EP detector for use with the OFDM waveform. Both detection of symbols or bits with either soft- or hard-decisions are supported. The OFDM and stream configuration are provided by a
ResourceGridandStreamManagementinstance, respectively. The actual detector is an instance ofEPDetector.- Parameters:
output (str) – Type of output, either “bit” or “symbol”
resource_grid (sionna.phy.ofdm.resource_grid.ResourceGrid) – ResourceGrid to be used
stream_management (sionna.phy.mimo.stream_management.StreamManagement) – StreamManagement to be used
num_bits_per_symbol (int | None) – Number of bits per constellation symbol, e.g., 4 for QAM16. Only required for
constellation_typein [“qam”, “pam”].hard_out (bool) – If True, the detector computes hard-decided bit values or constellation point indices instead of soft-values.
l (int) – Number of iterations
beta (float) – Parameter \(\beta\in[0,1]\) for update smoothing
precision (Literal['single', 'double'] | None) – Precision used for internal calculations and outputs. If set to None,
precisionis used.device (str | None) – Device for tensor operations. If None,
deviceis 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:
z –
One of:
[batch_size, num_tx, num_streams, num_data_symbols*num_bits_per_symbol], torch.float. LLRs or hard-decisions for every bit of every stream, if
outputequals “bit”.[batch_size, num_tx, num_streams, num_data_symbols, num_points], torch.float or [batch_size, num_tx, num_streams, num_data_symbols], torch.int32. Logits or hard-decisions for constellation symbols for every stream, if
outputequals “symbol”. Hard-decisions correspond to the symbol indices.