Quadriga

Inheritance diagram of hermespy.channel.quadriga.quadriga.QuadrigaChannel, hermespy.channel.quadriga.quadriga.QuadrigaChannelRealization, hermespy.channel.quadriga.quadriga.QuadrigaChannelSample

The QUAsi Determinstic RadIo channel GenerAtor (QuaDRiGa) channel model is a Matlab based tool for generating radio channel impulse responses in multi-node networks of radio devices [1][2]. It is integrated into Hermes as a channel model plugin, with the generation of new channel realizations triggering an execution of Quadriga’s Matlab scripts via either the Matlab Python API or Octave. Please refer to the Installation hints for the required setup.

        classDiagram

   class QuadrigaChannel {

      +realize()
      +propagate()
   }

   class QuadrigaChannelRealization {

      +propagate()
   }

   class QuadrigaInterface {

      <<Abstract>>

      +get_impulse_response()
   }

   QuadrigaChannel o-- QuadrigaChannelRealization : realize()

   QuadrigaChannel *-- QuadrigaInterface

   click QuadrigaChannel href "channel.quadriga.QuadrigaChannel.html"
   click QuadrigaChannelRealization href "channel.quadriga.QuadrigaChannelRealization.html"
   click QuadrigaInterface href "channel.quadriga.QuadrigaInterface.html"
    
class QuadrigaChannel(interface=None, gain=1.0, seed=None)[source]

Bases: Channel[QuadrigaChannelRealization, QuadrigaChannelSample]

Quadriga Channel Model.

Maps the output of the selected interface to fit into Hermes’ software architecture.

Parameters:
  • interface (QuadrigaOctaveInterface | None) – Specifies the consisdered Quadriga interface.

  • gain (float) – Linear channel power gain factor. \(1.0\) by default.

  • seed (int | None) – Seed used to initialize the pseudo-random number generator.

classmethod Deserialize(process)[source]

Deserialize an object’s state.

Objects cannot be deserialized directly, instead a Factory must be instructed to carry out the deserialization process.

Parameters:

process (DeserializationProcess) – The current stage of the deserialization process. This object is generated by the Factory and provides an interface to deserialization methods supporting multiple backends.

Return type:

QuadrigaChannel

Returns:

The deserialized object.

serialize(process)[source]

Serialize this object’s state.

Objects cannot be serialized directly, instead a Factory must be instructed to carry out the serialization process.

Parameters:

process (SerializationProcess) – The current stage of the serialization process. This object is generated by the Factory and provides an interface to serialization methods supporting multiple backends.

Return type:

None

class QuadrigaChannelRealization(interface, sample_hooks, gain)[source]

Bases: ChannelRealization[QuadrigaChannelSample]

Realization of a quadriga channel model.

Parameters:
  • quadriga_interface – Interface to the Quadriga channel model.

  • sample_hooks (Set[ChannelSampleHook[QuadrigaChannelSample]]) – Hooks to be called when a new sample is generated.

  • gain (float) – Linear channel power gain factor.

classmethod Deserialize(process)[source]

Deserialize an object’s state.

Objects cannot be deserialized directly, instead a Factory must be instructed to carry out the deserialization process.

Parameters:

process (DeserializationProcess) – The current stage of the deserialization process. This object is generated by the Factory and provides an interface to deserialization methods supporting multiple backends.

Return type:

QuadrigaChannelRealization

Returns:

The deserialized object.

class QuadrigaChannelSample(path_gains, path_delays, gain, state)[source]

Bases: ChannelSample

Sample of a quadriga channel model.

Parameters:
  • path_gains (ndarray) – Path gains.

  • path_delays (ndarray) – Path delays.

  • gain (float) – Channel gain.

  • state (LinkState) – Channel state at which the sample was generated.

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 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 path_delays: ndarray

Path delays.

property path_gains: ndarray

Path gains.