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 ofChannel
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:
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 channelgain
and returns aChannelPropagation
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 isalpha_device
and receiver isbeta_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:
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:
- 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
andstate
routines if no interpolation mode is specified.
- class CRT#
Type of channel realization
alias of TypeVar(‘CRT’, bound=
ChannelRealization
)