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 carrier_frequency=1e8, pose=Transformation.From_Translation(np.array([0., 0., 3.])))
5beta_device = simulation.new_device(
6 carrier_frequency=1e8, pose=Transformation.From_Translation(np.array([40., 40., 3.])))
7
8# Create a channel between the two devices
9channel = IndoorFactory(10000, 30000, FactoryType.HH, seed=42)
10simulation.set_channel(alpha_device, beta_device, channel)
11
12# Configure communication link between the two devices
13link = SimplexLink()
14alpha_device.transmitters.add(link)
15beta_device.receivers.add(link)
16
17# Specify the waveform and postprocessing to be used by the link
18link.waveform = RRCWaveform(
19 symbol_rate=1e8, oversampling_factor=2, num_data_symbols=1000,
20 num_preamble_symbols=10, pilot_rate=10)
21link.waveform.channel_estimation = SCLeastSquaresChannelEstimation()
22link.waveform.channel_equalization = SCZeroForcingChannelEqualization()
23
24# Configure a simulation to evaluate the link's BER and sweep over the receive SNR
25simulation.add_evaluator(BitErrorEvaluator(link, link))
26simulation.new_dimension('noise_level', dB(0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20), beta_device)
27
28# Run simulation and plot resulting SNR curve
29result = simulation.run()
- class IndoorFactory(volume, surface, factory_type, clutter_height=0.0, gain=1.0, **kwargs)[source]¶
Bases:
ClusterDelayLineBase
[IndoorFactoryRealization
,LOSState
],Serializable
3GPP cluster delay line preset modeling an indoor factory scenario.
- Parameters:
volume (float) – Hall volume in \(\mathrm{m}^3\).
surface (float) – Total surface hall area in \(\mathrm{m}^2\). (walls/floor/ceiling).
factory_type (FactoryType) – Type of the factory.
clutter_height (float, optional) – Height of the clutter in the factory hall in meters above the floor. Zero by default, meaning virtually no clutter.
gain (float, optional) – Linear power gain factor a signal experiences when being propagated over this realization. \(1.0\) by default.
**kwargs (
Any
) – Additional arguments passed to the base class.
- property clutter_height: float¶
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¶
Assumed type of factory.
- property surface: float¶
Assumed factory hall surface in \(\mathrm{m}^2\).
- Raises:
ValueError – For values smaller or equal to zero.
- property volume: float¶
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 (O2IState | 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, optional) – Linear amplitude scaling factor if signals propagated over the channel.
- class FactoryType(_, clutter_size, clutter_density)[source]¶
Bases:
Enum
Type of indoor factory.
Defined in TR 138.901 v17.0.0 Table 7.2-4.
- DH = 3¶
- DL = 2¶
- HH = 4¶
- SH = 1¶
- SL = 0¶