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 (LinkState) – State of the channel at the time of sampling.

abstract _propagate(signal, interpolation)[source]

Propagate radio-frequency band signals over a channel instance.

Abstract subroutine of propagate.

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

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

Return type:

SignalBlock

Returns: The propagated signal.

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 ChannelSample._propagate and returns a Signal instance.

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

  • interpolation_mode (InterpolationMode) – 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: The propagated signal samples.

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) – 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: SimulatedDeviceState

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

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)