Delay Channel#

class DelayChannelRealization(channel, impulse_response)#

Bases: ChannelRealization

Realization of a delay channel model.

Parameters:
  • channel (Channel) – Channel from which the impulse response was generated.

  • impulse_response (np.ndarray) – The channel impulse response.

class DelayChannelBase(model_propagation_loss=True, **kwargs)#

Bases: Channel[DelayChannelRealization]

Base of delay channel models.

Parameters:
  • model_propagation_loss (bool, optional) – Should free space propagation loss be modeled? Enabled by default.

  • **kawrgsChannel base class initialization arguments.

yaml_tag: Optional[str] = 'DelayChannelBase'#

YAML serialization tag.

property model_propagation_loss: bool#

Should free space propagation loss be modeled?

Returns: Enabled flag.

realize(num_samples, sampling_rate)#

Generate a new channel impulse response.

Note that this is the core routine from which Channel.propagate() will create the channel state.

Parameters:
  • num_samples (int) – Number of samples \(N\) within the impulse response.

  • sampling_rate (float) – The rate at which the delay taps will be sampled, i.e. the delay resolution.

Return type:

DelayChannelRealization

Returns:

Numpy aray representing the impulse response for all propagation paths between antennas. 4-dimensional tensor of size \(M_\mathrm{Rx} \times M_\mathrm{Tx} \times N \times (L+1)\) where \(M_\mathrm{Rx}\) is the number of receiving antennas, \(M_\mathrm{Tx}\) is the number of transmitting antennas, \(N\) is the number of propagated samples and \(L\) is the maximum path delay (in samples). For the ideal channel in the base class \(L = 0\).

class SpatialDelayChannel(model_propagation_loss=True, **kwargs)#

Bases: DelayChannelBase

Delay channel based on spatial dimensions.

The spatial delay channel requires both linked devices to specify their assumed positions.

Parameters:
  • model_propagation_loss (bool, optional) – Should free space propagation loss be modeled? Enabled by default.

  • **kawrgsChannel base class initialization arguments.

yaml_tag: str = 'SpatialDelay'#

YAML serialization tag.

class RandomDelayChannel(delay, *args, **kwargs)#

Bases: DelayChannelBase

Delay channel based on random delays.

Parameters:
  • delay (float | Tuple[float, float]) – Assumed propagation delay in seconds. If a scalar floating point, the delay is assumed to be constant. If a tuple of two floats, the tuple values indicate the mininum and maxium values of a uniform distribution, respectively.

  • *argsChannel base class initialization parameters.

  • **kwargsChannel base class initialization parameters.

yaml_tag: str = 'RandomDelay'#

YAML serialization tag.

property delay: float | Tuple[float, float]#

Assumed propagation delay.

Returns: Delay in seconds.