Quadriga¶

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:
- 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 theFactory
and provides an interface to deserialization methods supporting multiple backends.- Return type:
- 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 theFactory
and provides an interface to serialization methods supporting multiple backends.- Return type:
- 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 theFactory
and provides an interface to deserialization methods supporting multiple backends.- Return type:
- Returns:
The deserialized object.
- class QuadrigaChannelSample(path_gains, path_delays, gain, state)[source]¶
Bases:
ChannelSample
Sample of a quadriga channel model.
- Parameters:
- 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:
Returns: The channel state information representing this channel realization.