Urban Macrocells¶

Implementation of an urban macrocell 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, pose=Transformation.From_Translation(np.array([0., 0., 2.])))
5beta_device = simulation.new_device(
6 carrier_frequency=1e8, pose=Transformation.From_Translation(np.array([40., 40., 2.])))
7
8# Create a channel between the two devices
9channel = UrbanMacrocells()
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 UrbanMacrocells(delay_normalization=DelayNormalization.ZERO, oxygen_absorption=True, expected_state=None, gain=1.0, seed=None)[source]¶
Bases:
ClusterDelayLineBase
[UrbanMacrocellsRealization
,O2IState
]3GPP cluster delay line preset modeling an urban macrocell scenario.
- Parameters:
gain (
float
) – Linear gain factor a signal amplitude experiences when being propagated over this realization. \(1.0\) by default.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 (
Optional
[TypeVar
(LSST
, bound=LargeScaleState
)]) – Expected large-scale state of the channel. IfNone
, the state is randomly generated during each sample of the channel’s realization.gain – 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 theFactory
and provides an interface to deserialization methods supporting multiple backends.- Return type:
- Returns:
The deserialized object.
- class UrbanMacrocellsRealization(expected_state, state_realization, los_realization, nlos_realization, o2i_realization, parameters, sample_hooks, gain=1.0)[source]¶
Bases:
ClusterDelayLineRealization
[O2IState
]Realization of an urban street canyon cluster delay line 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.o2i_realization (
ConsistentRealization
) – Realization of a spatially consistent random number generator for small-scale parameters in the O2I state.parameters (
ClusterDelayLineRealizationParameters
) – General parameters of the cluster delay line realization.sample_hooks (
Set
[ChannelSampleHook
[ClusterDelayLineSample
]]) – Hooks to be called when a channel sample is generated.gain – 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 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: