pyFDN.mimo_rir_eigenvalues_per_frequency#
- pyFDN.mimo_rir_eigenvalues_per_frequency(ir, n_fft=2048, dim=0)[source]#
Compute eigenvalues of a MIMO transfer matrix at each frequency bin.
The impulse response is transformed to the frequency domain using
torch.fft.rfft(), and the eigenvalues of the resulting transfer matrix are computed independently at each frequency bin.- Parameters:
ir (
Tensor) – MIMO impulse response with shape(n_samples, n_out, n_in)(time axis atdim). The system must be square, i.e.n_out == n_in.n_fft (
int) – DFT length. A response longer thann_fftis truncated, a shorter one zero-padded, as intorch.fft.rfft().dim (
int) – Temporal dimension of the impulse response; the two remaining axes are read as(n_out, n_in)in that order.
- Returns:
Complex eigenvalues with shape
(n_freqs, n_out), wheren_freqs = n_fft // 2 + 1.- Return type:
Notes
Eigenvalues are returned in the (unsorted) order of
torch.linalg.eigvals(), which can change between neighbouring bins, and their gradient is ill-conditioned where eigenvalues are repeated.- Raises:
ValueError – If
iris not 3D or the MIMO system is not square.