Channel Sample

Inheritance diagram of hermespy.channel.channel.ChannelSample
class ChannelSample(state)[source]

Bases: object

Immutable sample of a wireless channel model in time and space.

Channel samples represent the channel state at a given point in time and two distinct observation points at transmitter and receiver in three-dimensional space.

Parameters:

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

propagate(signal, interpolation_mode=InterpolationMode.NEAREST)[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.

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

Signal

Returns: All information generated by the propagation.

abstract 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 bandwidth: float

Bandwidth of the propagated signal in Hz.

property carrier_frequency: float

Carrier frequency of the channel in Hz.

abstract 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 num_receive_antennas: int

Number of antennas at the receiver.

property num_transmit_antennas: int

Number of antennas at the transmitter.

property receiver_antennas: AntennaArrayState

Antenna array model of the receiver.

property receiver_pose: Transformation

Global position and orientation of the receiver.

property receiver_state: DeviceState

State of the receiving device at the time of sampling.

property receiver_velocity: ndarray

Velocity of the receiver in m/s.

property time: float

Time of the channel state information in seconds.

property transmitter_antennas: AntennaArrayState

Antenna array model of the transmitter.

property transmitter_pose: Transformation

Global position and orientation of the transmitter.

property transmitter_state: DeviceState

State of the transmitting device at the time of sampling.

property transmitter_velocity: ndarray

Velocity of the transmitter in m/s.

class CST

Type of channel sample.

alias of TypeVar(‘CST’, bound=ChannelSample)