LinearInterpolator#
- class sionna.phy.ofdm.LinearInterpolator(pilot_pattern, time_avg: bool = False, precision: Literal['single', 'double'] | None = None, device: str | None = None, **kwargs)[source]#
Bases:
sionna.phy.ofdm.channel_estimation.BaseChannelInterpolatorLinear channel estimate interpolation on a resource grid.
This class computes for each element of an OFDM resource grid a channel estimate based on
num_pilotsprovided channel estimates and error variances through linear interpolation. It is assumed that the measurements were taken at the nonzero positions of aPilotPattern.The interpolation is done first across sub-carriers and then across OFDM symbols.
- Parameters:
pilot_pattern – Used pilot pattern
time_avg (bool) – If True, measurements will be averaged across OFDM symbols (i.e., time). This is useful for channels that do not vary substantially over the duration of an OFDM frame. Defaults to False.
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:
h_hat – [batch_size, num_rx, num_rx_ant, num_tx, num_streams_per_tx, num_pilot_symbols], torch.complex. Channel estimates for the pilot-carrying resource elements.
err_var – [batch_size, num_rx, num_rx_ant, num_tx, num_streams_per_tx, num_pilot_symbols], torch.float. Channel estimation error variances for the pilot-carrying resource elements.
- Outputs:
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 across the entire resource grid for all transmitters and streams.
err_var – Same shape as
h_hat, torch.float. Channel estimation error variances across the entire resource grid for all transmitters and streams.