pyriemann.utils.ajd.ajd_pham

pyriemann.utils.ajd.ajd_pham(X, *, init=None, eps=1e-06, n_iter_max=15, sample_weight=None)

Approximate joint diagonalization based on Pham’s algorithm.

This is a direct implementation of the Pham’s AJD algorithm [1].

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

Set of SPD matrices to diagonalize.

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

Initialization for the diagonalizer.

epsfloat, default=1e-6

Tolerance for stoping criterion.

n_iter_maxint, default=15

The maximum number of iterations to reach convergence.

sample_weightNone | ndarray, shape (n_matrices,), default=None

Weights for each matrix, strictly positive. If None, it uses equal weights.

Returns:
Vndarray, shape (n_channels, n_channels)

The diagonalizer, an invertible matrix.

Dndarray, shape (n_matrices, n_channels, n_channels)

Set of quasi diagonal matrices.

See also

rjd
uwedge

Notes

New in version 0.2.4.

References

[1]

Joint approximate diagonalization of positive definite Hermitian matrices D.-T. Pham. SIAM Journal on Matrix Analysis and Applications, Volume 22 Issue 4, 2000