# 3GPP Cluster Delay Line Model

Within this module, HermesPy implements the 3GPP standard for cluster delay line models as defined in Study on channel model for frequencies from 0.5 to 100 GHz1. For a comprehensive description of all the parameters involved, please refer to the standard document.

The abstract base class ClusterDelayLineBase defines all required parameters as abstrat properties and is required to be implemented by each specific cluster delay line model. HermesPy features the full customizable model ClusterDelayLine as well as implementations describing standard-compliant benchmark scenarios

with pre-defined parameters. In general, the HermesPy cluster delay line implementation mixes deterministic with statistical information: Devices linked by cluster delay line models are required to specify their assumed positions and orientations, since the specular line of sight ray components are deterministic.

class DelayNormalization(value)

Bases: enum.Enum

Normalization routine applied to a set of sampled delays.

Configuration option to :class:.ClusterDelayLineBase models.

ZERO = 0

Normalize the delays, so that the minimal delay is zero

TOF = 1

The minimal delay is the time of flight between two devices

NONE = 2

No delay normalization is applied.

Only relevant for debugging purposes.

class ClusterDelayLineBase(delay_normalization=DelayNormalization.ZERO, **kwargs)
Parameters

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

delay_normalization: DelayNormalization

The delay normalization routine applied during channel sampling.

abstract 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

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

Return type

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.

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

Return type

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.

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

Return type

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.

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

Return type

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.

Mean of the Zenith Angle-of-Departure spread.

The spread realization and its mean are referred to as $$\mathrm{ZOD}$$ and $$\mu_{\mathrm{lgZSD}}$$ within the the standard, respectively.

Returns

Return type

float

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

The spread realization and its standard deviation are referred to as $$\mathrm{ZOD}$$ and $$\sigma_{\mathrm{lgZOD}}$$ within the the standard, respectively.

Returns

Angle spread standard deviation in degrees.

Return type

float

Raises

ValueError – If the standard deviation is smaller than zero.

abstract property zod_offset: float

Offset between Zenith Angle-of-Arrival and Angle-of-Departure.

The offset is referred to as $$\mu_{\mathrm{offset,ZOD}}$$ within the standard.

Returns

The offset in degrees.

Return type

float

abstract 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

abstract 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.

abstract 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.

abstract 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

abstract 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.

abstract 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.

abstract property num_rays: int

Number of rays per cluster.

Referred to as $$N$$ within the standard.

Returns

Number of rays.

Return type

int

Raises

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

Delay spread within an individual cluster.

Referred to as $$c_{DS}$$ within the standard.

Returns

Return type

float

Raises

ValueError – If spread is smaller than zero.

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

Referred to as $$c_{ASD}$$ within the standard.

Returns

Return type

float

Raises

ValueError – If spread is smaller than zero.

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

Referred to as $$c_{ASA}$$ within the standard.

Returns

Return type

float

Raises

ValueError – If spread is smaller than zero.

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

Referred to as $$c_{ZSA}$$ within the standard.

Returns

Return type

float

Raises

ValueError – If spread is smaller than zero.

Standard deviation of the cluster shadowing.

Referred to as $$\zeta$$ within the the standard.

Returns

Return type

float

Raises

ValueError – If the deviation is smaller than zero.

impulse_response(num_samples, sampling_rate)

Sample a new channel impulse response.

Note that this is the core routine from which propagate will create the channel state.

Parameters
• num_samples (int) – Number of samples within the impulse response.

• sampling_rate (float) – The rate at which the delay taps will be sampled, i.e. the delay resolution.

Returns

Impulse response in all number_rx_antennas x number_tx_antennas. 4-dimensional array of size T x number_rx_antennas x number_tx_antennas x (L+1) where L is the maximum path delay (in samples). For the ideal channel in the base class, L = 0.

Return type

np.ndarray

3GPP Cluster Delay Line Channel Model.

Parameters
• num_clusters (int, optional) – Number of generated clusters per channel sample.

• delay_spread (float, optional) – Root-Mean-Square spread of the cluster delay in seconds.

• delay_scaling (float, optional) – Delay distribution proportionality factor.

• rice_factor_mean (float, optional) – Mean of the rice factor K.

• rice_factor_std (float, optional) – Standard deviation of the rice factor K.

• line_of_sight (bool, optional) – Is this model a line-of-sight model?

yaml_tag: str = 'ClusterDelayLine'

YAML serialization tag.

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

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

Return type

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.

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

Return type

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.

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

Return type

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.

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

Return type

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.

Mean of the Zenith Angle-of-Departure spread.

The spread realization and its mean are referred to as $$\mathrm{ZOD}$$ and $$\mu_{\mathrm{lgZSD}}$$ within the the standard, respectively.

Returns

Return type

float

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

The spread realization and its standard deviation are referred to as $$\mathrm{ZOD}$$ and $$\sigma_{\mathrm{lgZOD}}$$ within the the standard, respectively.

Returns

Angle spread standard deviation in degrees.

Return type

float

Raises

ValueError – If the standard deviation is smaller than zero.

property zod_offset: float

Offset between Zenith Angle-of-Arrival and Angle-of-Departure.

The offset is referred to as $$\mu_{\mathrm{offset,ZOD}}$$ within the standard.

Returns

The offset in degrees.

Return type

float

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.

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 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 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

Raises

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

Delay spread within an individual cluster.

Referred to as $$c_{DS}$$ within the standard.

Returns

Return type

float

Raises

ValueError – If spread is smaller than zero.

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

Referred to as $$c_{ASD}$$ within the standard.

Returns

Return type

float

Raises

ValueError – If spread is smaller than zero.

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

Referred to as $$c_{ASA}$$ within the standard.

Returns

Return type

float

Raises

ValueError – If spread is smaller than zero.

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

Referred to as $$c_{ZSA}$$ within the standard.

Returns

Return type

float

Raises

ValueError – If spread is smaller than zero.

Standard deviation of the cluster shadowing.

Referred to as $$\zeta$$ within the the standard.

Returns