empirical_aclr#

sionna.phy.signal.empirical_aclr(x: torch.Tensor, oversampling: float = 1.0, f_min: float = -0.5, f_max: float = 0.5, precision: Literal['single', 'double'] | None = None) torch.Tensor[source]#

Computes the empirical ACLR.

Computes the empirical adjacent channel leakage ratio (ACLR) of tensor x based on its empirical power spectral density (PSD) which is computed along the last dimension by averaging over all other dimensions.

It is assumed that the in-band ranges from [f_min, f_max] in normalized frequency. The ACLR is then defined as

\[\text{ACLR} = \frac{P_\text{out}}{P_\text{in}}\]

where \(P_\text{in}\) and \(P_\text{out}\) are the in-band and out-of-band power, respectively.

Parameters:
  • x (torch.Tensor) – Signal for which to compute the ACLR with shape […, N] (torch.complex)

  • oversampling (float) – Oversampling factor

  • f_min (float) – Lower border of the in-band in normalized frequency

  • f_max (float) – Upper border of the in-band in normalized frequency

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

Outputs:

aclrfloat. ACLR in linear scale.

Examples

import torch
from sionna.phy.signal import empirical_aclr

x = torch.randn(100, 256, dtype=torch.complex64)
aclr = empirical_aclr(x, oversampling=2.0)
print(aclr.shape)
# torch.Size([])