Urban Macrocells

Inheritance diagram of hermespy.channel.cdl.urban_macrocells.UrbanMacrocells, hermespy.channel.cdl.urban_macrocells.UrbanMacrocellsRealization

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. If None, 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 the Factory and provides an interface to deserialization methods supporting multiple backends.

Return type:

UrbanMacrocells

Returns:

The deserialized object.

property max_num_clusters: int

Maximum number of clusters a realization will generate.

property max_num_rays: int

Maximum number of rays a realization will generate per cluster.

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 the Factory and provides an interface to deserialization methods supporting multiple backends.

Return type:

UrbanMacrocellsRealization

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 the Factory and provides an interface to serialization methods supporting multiple backends.

Return type:

None