Indoor Office¶

Implementation of an indoor office communication channel model. 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,
5 bandwidth=1e7,
6 pose=Transformation.From_Translation(np.array([0., 0., 2.])),
7)
8beta_device = simulation.new_device(
9 carrier_frequency=1e8,
10 bandwidth=1e7,
11 pose=Transformation.From_Translation(np.array([40., 40., 2.]))
12)
13
14# Create a channel between the two devices
15channel = IndoorOffice(office_type=OfficeType.OPEN, seed=42)
16simulation.set_channel(alpha_device, beta_device, channel)
17
18# Configure communication link between the two devices
19link = SimplexLink()
20alpha_device.transmitters.add(link)
21beta_device.receivers.add(link)
22
23# Specify the waveform and postprocessing to be used by the link
24link.waveform = RRCWaveform(
25 num_data_symbols=1000, num_preamble_symbols=10, pilot_rate=10,
26)
27link.waveform.channel_estimation = SCLeastSquaresChannelEstimation()
28link.waveform.channel_equalization = SCZeroForcingChannelEqualization()
29
- class IndoorOffice(office_type=OfficeType.MIXED, delay_normalization=DelayNormalization.ZERO, oxygen_absorption=True, expected_state=None, gain=1.0, seed=None)[source]¶
Bases:
ClusterDelayLineBase[IndoorOfficeRealization,LOSState],Serializable3GPP cluster delay line preset modeling an indoor office scenario.
- Parameters:
office_type (
OfficeType) – Type of the modeled office. If not specified, a mixed office is assumed.delay_normalization (
DelayNormalization) – The delay normalization routine applied during channel sampling.oxygen_absorption (
bool) – Model oxygen absorption in the channel. Enabled by default.expected_state (
LOSState|None) – Expected large-scale state of the channel. If None, the state is randomly generated during each sample of the channel’s realization.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 office_type: OfficeType[source]¶
Type of the modeled office.
- class IndoorOfficeRealization(expected_state, state_realization, los_realization, nlos_realization, parameters, office_type, sample_hooks, gain=1.0)[source]¶
Bases:
ClusterDelayLineRealization[LOSState]Realization of an indoor office cluster delay line 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.office_type (
OfficeType) – Type of the modeled office.sample_hooks (
Set[ChannelSampleHook[ClusterDelayLineSample]]) – Hooks to be called when a channel sample is generated.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 OfficeType(value, names=<not given>, *values, module=None, qualname=None, type=None, start=1, boundary=None)[source]¶
Bases:
SerializableEnumType of office.