sparse.coherence.babel

sparse.coherence.babel(mat)[source]

For an arbitrary input matrix \(\boldsymbol{A}\) of size N x M and normalized columns \(\{ a_i \mid i=1,2,...,M \}\), the Babel-Function is defined by

(1)\[\mu_1(k) = \max_{\mid \Lambda \mid = k} \left[ \max_{j \notin \Lambda} \sum_{i \in \Lambda}{\mid a_i^\top a_j \mid} \right]\]

If \(\mu_1(k-1) < 1\), this implies that any set of \(k\) columns from \(\boldsymbol{A}\) are linearly dependent. In this case, the Spark necessarily satisfies

(2)\[\text{Spark}(\boldsymbol{A}) > k = 1 + \arg \min_k \left({\mu_1(k) > 1}\right)\]
Parameters
mat(N, M) np.ndarray

The input matrix \(\boldsymbol{A}\).

Returns
CoherenceSpark
A namedtuple with two attributes:

.coherence - a list of M-1 elements of \(\mu_1(k), \ k=1,2,...,M-1\);

.spark - Spark lower bound (2) of mat.

Notes

(2) is a tighter bound on Spark than (2).