Urban Macrocells NLOS#

class UrbanMacrocellsNoLineOfSight(alpha_device=None, beta_device=None, gain=1.0, delay_normalization=DelayNormalization.ZERO, **kwargs)[source]#

Bases: UrbanMacrocellsNoLineOfSightBase, Serializable

3GPP cluster delay line preset modeling an urban macrocell scenario without direct line of sight between the linked wireless devices.

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 = UrbanMacrocellsNoLineOfSight()
10simulation.set_channel(alpha_device, beta_device, channel)
11
12# Configure communication link between the two devices
13link = SimplexLink(alpha_device, beta_device)
14
15# Specify the waveform and postprocessing to be used by the link
16link.waveform = RRCWaveform(
17    symbol_rate=1e8, oversampling_factor=2, num_data_symbols=1000, 
18    num_preamble_symbols=10, pilot_rate=10)
19link.waveform.channel_estimation = SCLeastSquaresChannelEstimation()
20link.waveform.channel_equalization = SCZeroForcingChannelEqualization()
21
22# Configure a simulation to evaluate the link's BER and sweep over the receive SNR
23simulation.add_evaluator(BitErrorEvaluator(link, link))
24simulation.new_dimension('snr', dB(0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20))
25
26# Run simulation and plot resulting SNR curve
27result = simulation.run()
28result.plot()
29plt.show()
Parameters:
  • alpha_device (SimulatedDevice, optional) – First device linked by the ClusterDelayLineBase instance that generated this realization.

  • beta_device (SimulatedDevice, optional) – Second device linked by the ClusterDelayLineBase instance that generated this realization.

  • gain (float, optional) – Linear power gain factor a signal experiences when being propagated over this realization. \(1.0\) by default.

  • delay_normalization (DelayNormalization, optional) – The delay normalization routine applied during channel sampling.

property aoa_spread_mean: float#

Mean of the Azimuth Angle-of-Arriaval spread.

The spread realization and its mean are referred to as \(\mathrm{ASA}\) and \(\mu_{\mathrm{lgASA}}\) within the the standard, respectively.

Returns:

Mean angle spread in seconds

Return type:

float

property aoa_spread_std: float#

Standard deviation of the Azimuth Angle-of-Arrival spread.

The spread realization and its standard deviation are referred to as \(\mathrm{ASA}\) and \(\sigma_{\mathrm{lgASA}}\) within the the standard, respectively.

Returns:

Angle spread standard deviation in seconds.

Return type:

float

Raises:

ValueError – If the standard deviation is smaller than zero.

property aod_spread_mean: float#

Mean of the Azimuth Angle-of-Departure spread.

The spread realization and its mean are referred to as \(\mathrm{ASD}\) and \(\mu_{\mathrm{lgASD}}\) within the the standard, respectively.

Returns:

Mean angle spread in seconds

Return type:

float

property aod_spread_std: float#

Standard deviation of the Azimuth Angle-of-Departure spread.

The spread realization and its standard deviation are referred to as \(\mathrm{ASD}\) and \(\sigma_{\mathrm{lgASD}}\) within the the standard, respectively.

Returns:

Angle spread standard deviation in seconds.

Return type:

float

Raises:

ValueError – If the standard deviation is smaller than zero.

property cluster_aoa_spread: float#

Azimuth Angle-of-Arrival spread within an individual cluster.

Referred to as \(c_{ASA}\) within the standard.

Returns:

Angle spread in degrees.

Return type:

float

Raises:

ValueError – If spread is smaller than zero.

property cluster_aod_spread: float#

Azimuth Angle-of-Departure spread within an individual cluster.

Referred to as \(c_{ASD}\) within the standard.

Returns:

Angle spread in degrees.

Return type:

float

Raises:

ValueError – If spread is smaller than zero.

property cluster_delay_spread: float#

Delay spread within an individual cluster.

Referred to as \(c_{DS}\) within the standard.

Returns:

Delay spread in seconds.

Return type:

float

Raises:

ValueError – If spread is smaller than zero.

property cluster_shadowing_std: float#

Standard deviation of the cluster shadowing.

Referred to as \(\zeta\) within the the standard.

Returns:

Cluster shadowing standard deviation.

Return type:

float

Raises:

ValueError – If the deviation is smaller than zero.

property cluster_zoa_spread: float#

Zenith Angle-of-Arrival spread within an individual cluster.

Referred to as \(c_{ZSA}\) within the standard.

Returns:

Angle spread in degrees.

Return type:

float

Raises:

ValueError – If spread is smaller than zero.

property cross_polarization_power_mean: float#

Mean of the cross-polarization power.

The cross-polarization power and its mean are referred to as \(\mathrm{XPR}\) and \(\mu_{\mathrm{XPR}}\) within the the standard, respectively.

Returns:

Mean power in dB.

Return type:

float

property cross_polarization_power_std: float#

Standard deviation of the cross-polarization power.

The cross-polarization power and its standard deviation are referred to as \(\mathrm{XPR}\) and \(\sigma_{\mathrm{XPR}}\) within the the standard, respectively.

Returns:

Power standard deviation in dB.

Return type:

float

Raises:

ValueError – If the standard deviation is smaller than zero.

property delay_scaling: float#

Delay scaling proportionality factor

Referred to as \(r_{\tau}\) within the standard.

Returns:

Scaling factor.

Return type:

float

Raises:

ValueError – If scaling factor is smaller than one.

property delay_spread_mean: float#

Mean of the cluster delay spread.

The spread realization and its mean are referred to as \(\mathrm{DS}\) and \(\mu_{\mathrm{lgDS}}\) within the the standard, respectively.

Returns:

Mean delay spread in seconds.

Return type:

float

property delay_spread_std: float#

Standard deviation of the cluster delay spread.

The spread realization and its standard deviation are referred to as \(\mathrm{DS}\) and \(\sigma_{\mathrm{lgDS}}\) within the the standard, respectively.

Returns:

Delay spread standard deviation in seconds.

Return type:

float

Raises:

ValueError – If the standard deviation is smaller than zero.

property line_of_sight: bool#

Does this model assume direct line of sight between the two devices?

Referred to as \(LOS\) within the standard.

Returns:

Line of sight indicator.

Return type:

bool

property num_clusters: int#

Number of clusters.

Referred to as \(M\) within the standard.

Returns:

Number of clusters.

Return type:

int

Raises:

ValueError – If the number of clusters is smaller than one.

property num_rays: int#

Number of rays per cluster.

Referred to as \(N\) within the standard.

Returns:

Number of rays.

Return type:

int

property rice_factor_mean: float#

Mean of the rice factor distribution.

The rice factor realization and its mean are referred to as \(K\) and \(\mu_K\) within the the standard, respectively.

Returns:

Rice factor mean in dB.

Return type:

float

property rice_factor_std: float#

Standard deviation of the rice factor distribution.

The rice factor realization and its standard deviation are referred to as \(K\) and \(\sigma_K\) within the the standard, respectively.

Returns:

Rice factor standard deviation in dB.

Return type:

float

Raises:

ValueError – If the standard deviation is smaller than zero.

yaml_tag: Optional[str] = 'UMaNLOS'#

YAML serialization tag.

property zoa_spread_mean: float#

Mean of the Zenith Angle-of-Arriaval spread.

The spread realization and its mean are referred to as \(\mathrm{ZSA}\) and \(\mu_{\mathrm{lgZSA}}\) within the the standard, respectively.

Returns:

Mean angle spread in seconds

Return type:

float

property zoa_spread_std: float#

Standard deviation of the Zenith Angle-of-Arrival spread.

The spread realization and its standard deviation are referred to as \(\mathrm{ZSA}\) and \(\sigma_{\mathrm{lgZSA}}\) within the the standard, respectively.

Returns:

Angle spread standard deviation in seconds.

Return type:

float

Raises:

ValueError – If the standard deviation is smaller than zero.