pyriemann.utils.ajd.rjd

pyriemann.utils.ajd.rjd(X, *, init=None, eps=1e-08, n_iter_max=1000)

Approximate joint diagonalization based on Jacobi angles.

This is a direct implementation of the AJD algorithm by Cardoso and Souloumiac [1] used in JADE. The code is a translation of the Matlab code provided in the author website.

Parameters:
Xndarray, shape (n_matrices, n_channels, n_channels)

Set of symmetric matrices to diagonalize.

initNone | ndarray, shape (n_channels, n_channels), default=None

Initialization for the diagonalizer.

epsfloat, default=1e-8

Tolerance for stopping criterion.

n_iter_maxint, default=1000

The maximum number of iterations to reach convergence.

Returns:
Vndarray, shape (n_channels, n_channels)

The diagonalizer, an orthogonal matrix.

Dndarray, shape (n_matrices, n_channels, n_channels)

Set of quasi diagonal matrices.

See also

ajd_pham
uwedge

Notes

New in version 0.2.4.

References

[1]

Jacobi angles for simultaneous diagonalization J.-F. Cardoso and A. Souloumiac, SIAM Journal on Matrix Analysis and Applications, Volume 17, Issue 1, Jan. 1996.