Indoor Factory

Inheritance diagram of hermespy.channel.cdl.indoor_factory.IndoorFactory, hermespy.channel.cdl.indoor_factory.IndoorFactoryRealization

Channel implementation of an indoor factory scenario. Refer to the Study on channel model for frequencies from 0.5 to 100 GHz[1] for detailed information.

The following minimal example outlines how to configure the channel model within the context of a Simulation:

 1# Initialize two devices to be linked by a channel
 2simulation = Simulation()
 3alpha_device = simulation.new_device(
 4    bandwidth=1e5,
 5    oversampling_factor=8,
 6    carrier_frequency=1e8,
 7    pose=Transformation.From_Translation(np.array([0., 0., 3.])),
 8)
 9beta_device = simulation.new_device(
10    bandwidth=1e5,
11    oversampling_factor=8,
12    carrier_frequency=1e8,
13    pose=Transformation.From_Translation(np.array([40., 40., 3.])),
14)
15
16# Create a channel between the two devices
17channel = IndoorFactory(10000, 3000, FactoryType.HH, seed=42)
18simulation.set_channel(alpha_device, beta_device, channel)
19
20# Configure communication link between the two devices
21link = SimplexLink()
22alpha_device.transmitters.add(link)
23beta_device.receivers.add(link)
24
25# Specify the waveform and postprocessing to be used by the link
26link.waveform = RRCWaveform(
27    num_data_symbols=1000, num_preamble_symbols=10, pilot_rate=10,
28)
29link.waveform.channel_estimation = SCLeastSquaresChannelEstimation()
class IndoorFactory(volume, surface, factory_type, clutter_height=0.0, delay_normalization=DelayNormalization.ZERO, oxygen_absorption=True, expected_state=None, gain=1.0, seed=None)[source]

Bases: ClusterDelayLineBase[IndoorFactoryRealization, LOSState]

3GPP cluster delay line preset modeling an indoor factory scenario.

Parameters:
  • volume (float) – Hall volume in \(\mathrm{m}^3\).

  • surfac – Total surface hall area in \(\mathrm{m}^2\). (walls/floor/ceiling).

  • factory_type (FactoryType) – Type of the factory.

  • clutter_height (float) – Height of the clutter in the factory hall in meters above the floor. Zero by default, meaning virtually no clutter.

  • gain (float) – Linear channel energy gain factor. Initializes the gain property. \(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:

IndoorFactory

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

property clutter_height: float[source]

Cluter height in m.

Denoted by \(h_c\) within the respective equations. Should be lower than ceiling height and in between zero and 10m.

property factory_type: FactoryType[source]

Assumed type of factory.

property max_num_clusters: int[source]

Maximum number of clusters a realization will generate.

property max_num_rays: int[source]

Maximum number of rays a realization will generate per cluster.

property surface: float[source]

Assumed factory hall surface in \(\mathrm{m}^2\).

Raises:

ValueError – For values smaller or equal to zero.

property volume: float[source]

Assumed factory hall volume in \(\mathrm{m}^3\).

Raises:

ValueError – For values smaller or equal to zero.

class IndoorFactoryRealization(expected_state, state_realization, los_realization, nlos_realization, parameters, volume, surface, factory_type, clutter_height, sample_hooks, gain=1.0)[source]

Bases: ClusterDelayLineRealization[LOSState]

Realization of the indoor factory channel model.

Parameters:
  • expected_state (LOSState | None) – Expected large-scale state of the channel. If not specified, the large-scale state is randomly generated.

  • state_realization (ConsistentRealization) – Realization of a spatially consistent random number generator for the large-scale state.

  • los_realization (ConsistentRealization) – Realization of a spatially consistent random number generator for small-scale parameters in the LOS state.

  • nlos_realization (ConsistentRealization) – Realization of a spatially consistent random number generator for small-scale parameters in the NLOS state.

  • parameters (ClusterDelayLineRealizationParameters) – General parameters of the cluster delay line realization.

  • volume (float) – Volume of the modeled factory hall in \(\mathrm{m}^3\).

  • surface (float) – Surface area of the modeled factory hall in \(\mathrm{m}^2\).

  • factory_type (FactoryType) – Type of the factory.

  • clutter_height (float) – Height of the clutter in the factory hall in meters above the floor.

  • gain (float) – Linear amplitude scaling factor if signals propagated over the channel.

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:

IndoorFactoryRealization

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 FactoryType(_, clutter_size, clutter_density)[source]

Bases: SerializableEnum

Type of indoor factory.

Defined in TR 138.901 v17.0.0 Table 7.2-4.

DH = 3[source]
DL = 2[source]
HH = 4[source]
SH = 1[source]
SL = 0[source]
property clutter_density: float[source]
property clutter_size: float[source]