Channel Realization#

class ChannelRealization(alpha_device, beta_device, gain, interpolation_mode=InterpolationMode.NEAREST)[source]#

Bases: object

Realization of a wireless channel channel model.

Channel realizations represent the channel state during signal propagation. They are generated by the realize() method of Channel instances.

Parameters:
  • alpha_device (Device) – First device linked by the Channel instance that generated this realization.

  • beta_device (Device) – Second device linked by the Channel instance that generated this realization.

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

  • interpolation_mode (InterpolationMode, optional) – Interpolation behaviour of the channel realization’s delay components with respect to the proagated signal’s sampling rate.

classmethod From_HDF(group, alpha_device, beta_device)[source]#

De-Serialized the object state from HDF5.

Recalls the object’s state from a HDF5 group.

Parameters:
  • group (h5py.Group) – The HDF5 group from which the object state is recalled.

  • alpha_device (Device) – First device linked by the Channel instance that generated this realization.

  • beta_device (Device) – Second device linked by the Channel instance that generated this realization.

Return type:

TypeVar(CRT, bound= ChannelRealization)

Returns: The object initialized from the HDF5 group state.

abstract _propagate(signal, transmitter, receiver, interpolation)[source]#

Propagate radio-frequency band signals over a channel instance.

Abstract subroutine of propagate().

Parameters:
  • signal (Signal) – The signal to be propagated.

  • transmitter (Device) – Device transmitting the signal to be propagated over this realization.

  • receiver (Device) – Device receiving the propagated signal after propagation.

  • interpolation (InterpolationMode) – Interpolation behaviour of the channel realization’s delay components with respect to the proagated signal’s sampling rate.

Return type:

Signal

Returns: The propagated signal.

propagate(signal, transmitter=None, receiver=None, interpolation_mode=None)[source]#

Propagate a signal model over this realization.

Let

\[\mathbf{X} = \left[ \mathbf{x}^{(0)}, \mathbf{x}^{(1)},\, \dots,\, \mathbf{x}^{(M_\mathrm{Tx} - 1)} \right] \in \mathbb{C}^{N_\mathrm{Tx} \times M_\mathrm{Tx}}\]

be the signal transmitted by transmitter and

\[\mathbf{Y} = \left[ \mathbf{y}^{(0)}, \mathbf{y}^{(1)},\, \dots,\, \mathbf{x}^{(M_\mathrm{Rx} - 1)} \right] \in \mathbb{C}^{N_\mathrm{Rx} \times M_\mathrm{Rx}}\]

the reception of receiver, this method implements the channel propagation equation

\[\mathbf{y}^{(m)} = \sum_{\tau = 0}^{m} \mathbf{H}^{(m, \tau)} \mathbf{x}^{(m-\tau)} \ \text{.}\]

It wraps _propagate(), applies the channel gain and returns a ChannelPropagation instance. If not specified, the transmitter and receiver are assumed to be the devices linked by the channel instance that generated this realization, meaning the transmitter is alpha_device and receiver is beta_device.

Parameters:
  • signal (DeviceOutput | Signal) – Signal model to be propagated.

  • transmitter (Device, optional) – Device transmitting the signal to be propagated over this realization. If not specified alpha_device will be assumed.

  • receiver (Device, optional) – Device receiving the propagated signal after propagation. If not specified beta_device will be assumed.

  • 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, the realization’s default interpolation_mode will be assumed.

Return type:

ChannelPropagation[TypeVar(CRT, bound= ChannelRealization)]

Returns: All information generated by the propagation.

abstract state(transmitter, receiver, delay, sampling_rate, num_samples, max_num_taps)[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:
  • transmitter (Device) – Device transmitting the signal for which the channel state information is generated.

  • receiver (Device) – Device receiving the signal for which the channel state information is generated.

  • delay (float) – Delay in seconds at which the state information should be generated.

  • sampling_rate (float) – Sampling rate of the state information’s discrete samples in \(\mathrm{Hz}\).

  • 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.

Return type:

ChannelStateInformation

Returns: The channel state information representing this channel realization.

to_HDF(group)[source]#

Serialize the object state to HDF5.

Dumps the object’s state and additional information to a HDF5 group.

Parameters:

group (h5py.Group) – The HDF5 group to which the object is serialized.

Return type:

None

property alpha_device: Device#

First device linked by the Channel instance that generated this realization.

property beta_device: Device#

Second device linked by the Channel instance that generated this realization.

property gain: float#

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

property interpolation_mode: InterpolationMode#

Default interpolation mode.

Referred to by the propagate and state routines if no interpolation mode is specified.

class CRT#

Type of channel realization

alias of TypeVar(‘CRT’, bound=ChannelRealization)