prb_singular_values#

sionna.phy.channel.tr38901.prb_singular_values(h: torch.Tensor, tau: torch.Tensor, carrier_frequency: float, subcarrier_spacing: float, prb_num_subcarriers: int = 12, prb_index: int | None = None) → torch.Tensor[source]#

Computes PRB singular values for a frequency-selective MIMO channel.

For a baseband channel impulse response \(h_{r,t,n}\) with path delays \(\tau_n\), the frequency response on subcarrier \(k\) is

\[H_k = \sum_n h_n e^{-j2\pi f_k\tau_n}.\]

The reported PRB singular values are the eigenvalues of \(H_kH_k^\mathsf{H}\) averaged over all subcarriers of the selected physical resource block and expressed in dB. This is the MIMO metric used for Phase 2 Config 2 calibration. It is defined by the note following the metric list in Table 7.8-2 of [TR38901V1920]; the table does not assign it a numbered equation.

Parameters:
  • h (torch.Tensor) – Channel coefficients with shape [..., num_rx_ant, num_tx_ant, num_paths], torch.complex.

  • tau (torch.Tensor) – Path delays [s] with shape [..., num_paths].

  • carrier_frequency (float) – Carrier frequency [Hz]. This argument is ignored by the baseband computation and retained for backwards-compatible API symmetry with channel construction.

  • subcarrier_spacing (float) – Subcarrier spacing [Hz].

  • prb_num_subcarriers (int) – Number of subcarriers per PRB.

  • prb_index (int | None) – PRB index relative to DC. If None, the centered PRB is used.

Outputs:

singular_values – Eigenvalues of the averaged covariance matrix [dB] with shape [..., num_rx_ant], sorted in descending order.