Urban Microcells¶

Model of an urban street canyon. 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=1e6,
6 oversampling_factor=4,
7 pose=Transformation.From_Translation(np.array([0., 0., 2.])),
8)
9beta_device = simulation.new_device(
10 carrier_frequency=1e8,
11 bandwidth=1e6,
12 oversampling_factor=4,
13 pose=Transformation.From_Translation(np.array([40., 40., 2.])),
14)
15
16# Create a channel between the two devices
17channel = UrbanMicrocells()
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 UrbanMicrocells(delay_normalization=DelayNormalization.ZERO, oxygen_absorption=True, expected_state=None, gain=1.0, seed=None)[source]¶
Bases:
ClusterDelayLineBase[UrbanMicrocellsRealization,O2IState]3GPP cluster delay line preset modeling an urban street canyon.
- 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 (
TypeVar(LSST, bound=LargeScaleState) |None) – 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
gainproperty. \(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.
- class UrbanMicrocellsRealization(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 (
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: