tdl_time_cov_mat#

sionna.phy.ofdm.tdl_time_cov_mat(model: str, speed: float, carrier_frequency: float, ofdm_symbol_duration: float, num_ofdm_symbols: int, los_angle_of_arrival: float = 0.7853981633974483, precision: Literal['single', 'double'] | None = None) torch.Tensor[source]#

Compute the time covariance matrix of a TDL channel model.

For non-line-of-sight (NLoS) model, the channel time covariance matrix \(\mathbf{R^{(t)}}\) of a TDL channel model is

\[\mathbf{R^{(t)}}_{u,v} = J_0 \left( \nu \Delta_t \left( u-v \right) \right)\]

where \(J_0\) is the zero-order Bessel function of the first kind, \(\Delta_t\) the duration of an OFDM symbol, and \(\nu\) the Doppler spread defined by

\[\nu = 2 \pi \frac{v}{c} f_c\]

where \(v\) is the movement speed, \(c\) the speed of light, and \(f_c\) the carrier frequency.

For line-of-sight (LoS) channel models, the channel time covariance matrix is

\[\mathbf{R^{(t)}}_{u,v} = P_{\text{NLoS}} J_0 \left( \nu \Delta_t \left( u-v \right) \right) + P_{\text{LoS}}e^{j \nu \Delta_t \left( u-v \right) \cos{\alpha_{\text{LoS}}}}\]

where \(\alpha_{\text{LoS}}\) is the angle-of-arrival for the LoS path, \(P_{\text{NLoS}}\) the total power of NLoS paths, and \(P_{\text{LoS}}\) the power of the LoS path. The power delay profile is assumed to have unit power, i.e., \(P_{\text{NLoS}} + P_{\text{LoS}} = 1\).

Parameters:
  • model (str) – TDL model ("A", "B", "C", "D", "E")

  • speed (float) – Speed [m/s]

  • carrier_frequency (float) – Carrier frequency [Hz]

  • ofdm_symbol_duration (float) – Duration of an OFDM symbol [s]

  • num_ofdm_symbols (int) – Number of OFDM symbols

  • los_angle_of_arrival (float) – Angle-of-arrival for LoS path [radian]. Only used with LoS models.

  • precision (Literal['single', 'double'] | None) – Precision used for internal calculations and outputs. If set to None, precision is used.

Examples

from sionna.phy.ofdm import tdl_time_cov_mat

cov_mat = tdl_time_cov_mat("A", 3.0, 3.5e9, 35.7e-6, 14)
print(cov_mat.shape)
# torch.Size([14, 14])