Street Canyon O2I#

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

Bases: UrbanMicroCellsNoLineOfSight, Serializable

3GPP cluster delay line preset modeling an urban street canyon with the linked wireless devices being outside and inside a building, respectively.

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 = StreetCanyonOutsideToInside()
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] = 'StreetCanyonO2I'#

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.