pyriemann.utils.ajd.ajd

pyriemann.utils.ajd.ajd(X, method='ajd_pham', init=None, eps=1e-06, n_iter_max=100, **kwargs)

Aproximate joint diagonalization (AJD) according to a method.

Compute the AJD of a set of matrices according to a method [1], estimating the joint diagonalizer matrix, diagonalizing the set as much as possible.

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

Set of symmetric matrices to diagonalize.

methodstring | callable, default=”ajd_pham”

Method for AJD, can be: “ajd_pham”, “rjd”, “uwedge”, or a callable function.

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

Initialization for the diagonalizer.

epsfloat, default=1e-6

Tolerance for stopping criterion.

n_iter_maxint, default=100

The maximum number of iterations to reach convergence.

kwargsdict

The keyword arguments passed to the sub function.

Returns:
Vndarray, shape (n, n)

The diagonalizer.

Dndarray, shape (n_matrices, n, n)

Set of quasi diagonal matrices.

See also

ajd_pham
rjd
uwedge

Notes

New in version 0.6.

References

[1]

Joint Matrices Decompositions and Blind Source Separation: A survey of methods, identification, and applications G. Chabriel, M. Kleinsteuber, E. Moreau, H. Shen; P. Tichavsky and A. Yeredor. IEEE Signal Process Mag, 31(3), pp. 34-43, 2014.