Indoor Factory¶

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 thegainproperty. \(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
Factorymust be instructed to carry out the deserialization process.- Parameters:
process (
DeserializationProcess) – The current stage of the deserialization process. This object is generated by theFactoryand 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
Factorymust be instructed to carry out the serialization process.- Parameters:
process (
SerializationProcess) – The current stage of the serialization process. This object is generated by theFactoryand provides an interface to serialization methods supporting multiple backends.- Return type:
- 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 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
Factorymust be instructed to carry out the deserialization process.- Parameters:
process (
DeserializationProcess) – The current stage of the deserialization process. This object is generated by theFactoryand 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
Factorymust be instructed to carry out the serialization process.- Parameters:
process (
SerializationProcess) – The current stage of the serialization process. This object is generated by theFactoryand provides an interface to serialization methods supporting multiple backends.- Return type:
- class FactoryType(_, clutter_size, clutter_density)[source]¶
Bases:
SerializableEnumType of indoor factory.
Defined in TR 138.901 v17.0.0 Table 7.2-4.