Delay Channels

Inheritance diagram of hermespy.channel.delay.delay.DelayChannelBase, hermespy.channel.delay.delay.DelayChannelRealization, hermespy.channel.delay.delay.DelayChannelSample

Delay channels offer a simple interface to modeling spatial propagation delays of signals in a network of distributed Devices and investigate the delay’s impact on interference and synchronization. They, by design, do not model any fading effects but do consider signal attenuation according to Frii’s transmission formula.

classDiagram direction LR class DelayChannelBase { <<Abstract>> +realize() : DelayChannelRealization } class DelayChannelRealization { <<Abstract>> +sample() : DelayChannelSample } class DelayChannelSample { +propagate(Signal) : Signal } DelayChannelBase --> DelayChannelRealization : realize() DelayChannelRealization --> DelayChannelSample : sample() click DelayChannelBase href "#hermespy.channel.delay.DelayChannelBase" click DelayChannelRealization href "#hermespy.channel.delay.DelayChannelRealization" click DelayChannelSample href "#hermespy.channel.delay.DelayChannelSample"

Currently, two types of DelayChannels are implemented: RandomDelayChannels and SpatialDelayChannels. Both generate their own type of DelayChannelRealization, namely RandomDelayChannelRealizations and SpatialDelayChannelRealizations, respectively. In general, the delay channel’s impulse response between two devices \(\alpha\) and \(\beta\) featuring \(N^{(\alpha)}\) and \(N^{(\beta)}\) antennas, respectively, is given by

\[\mathbf{H}(t,\tau) = \frac{1}{4\pi f_\mathrm{c}^{(\alpha)}\overline{\tau}} \mathbf{A}^{(\alpha,\beta)} \delta(\tau - \overline{\tau})\]

and depends on the assumed propagation delay \(\overline{\tau}\), the transmitting device’s carrier frequency \(f_\mathrm{c}^{(\alpha)}\) and the antenna array response \(\mathbf{A}^{(\alpha,\beta)}\). The two implementations differ in the way they generate delay \(\overline{\tau}\) and antenna array response \(\mathbf{A}^{(\alpha,\beta)}\).

class DelayChannelBase(model_propagation_loss=True, gain=1.0, **kwargs)[source]

Bases: Generic[DCRT], Channel[DCRT, DelayChannelSample]

Base of delay channel models.

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

  • gain (float, optional) – Linear power gain factor a signal experiences when being propagated over this realization. \(1.0\) by default.

  • **kawrgsChannel base class initialization arguments.

property model_propagation_loss: bool

Should free space propagation loss be modeled?

class DelayChannelRealization(model_propagation_loss, sample_hooks, gain)[source]

Bases: ChannelRealization[DelayChannelSample]

Base class for delay channel realizations.

Parameters:
  • model_propagation_loss (bool) – Should free space propagation loss be modeled?

  • gain (float) – Linear power gain factor a signal experiences when being propagated over this realization.

to_HDF(group)[source]

Serialize the channel realization to HDF5.

Parameters:

group (Group) – HDF5 group to serialize the channel realization to.

Return type:

None

property model_propagation_loss: bool

Should free-space propagation losses be modeled?

class DelayChannelSample(delay, model_propagation_loss, gain, state)[source]

Bases: ChannelSample

Sample of a delay channel.

Parameters:

state (ChannelState) – State of the channel at the time of sampling.

state(num_samples, max_num_taps, interpolation_mode=InterpolationMode.NEAREST)[source]

Generate the discrete channel state information from this channel realization.

Denoted by

\[\mathbf{H}^{(m, \tau)} \in \mathbb{C}^{N_{\mathrm{Rx}} \times N_{\mathrm{Tx}}}\]

within the respective equations.

Parameters:
  • num_samples (int) – Number of discrete time-domain samples of the chanel state information.

  • max_num_taps (int) – Maximum number of delay taps considered per discrete time-domain sample.

  • interpolation_mode (InterpolationMode, optional) – Interpolation behaviour of the channel realization’s delay components with respect to the proagated signal’s sampling rate. If not specified, an integer rounding to the nearest sampling instance will be assumed.

Return type:

ChannelStateInformation

Returns: The channel state information representing this channel realization.

property delay: float

Propagation delay in seconds.

property expected_energy_scale: float

Expected linear scaling of a propagated signal’s energy at each receiving antenna.

Required to compute the expected energy of a signal after propagation, and therfore signal-to-noise ratios (SNRs) and signal-to-interference-plus-noise ratios (SINRs).

property gain: float

Linear power gain factor a signal experiences when being propagated over this realization.

property model_propagation_loss: bool

Should free space propagation loss be modeled?

class DCRT

Type of delay channel realization

alias of TypeVar(‘DCRT’, bound=DelayChannelRealization)