GMCALab
GMCALab is a set of Matlab toolboxes that focus on solving Blind Source Separation problems from multichannel/multispectral/hyperspectral data. In essence, multichannel data provide different observations of the same physical phenomena (e.g. multiple wavelengths, ), which are modeled as a linear combination of unknown elementary components or sources:
\(\mathbf{Y} = \mathbf{A}\mathbf{S},\)
where \(\mathbf{Y}\) is the data matrix, \(\mathbf{S}\) is the source matrix, and \(\mathbf{A}\) is the mixing matrix. The goal of blind source separation is to retrieve \(\mathbf{A}\) and \(\mathbf{S}\) from the knwoledge of the data only.
Generalized Morphological Component Analysis, a.k.a. GMCA, is a BSS method that enforces the sparsity of the sought-after sources:
\(\underset{\mathbf{A},~\mathbf{S}}{\text{argmin}}~\|\mathbf{Y}-\mathbf{A}\mathbf{S}\|_2^2+\|\mathbf{\Lambda}\odot\mathbf{S}\|_1,\)
A lightweight Matlab/Octave version of the GMCALab toolbox is available at this location. Illustrations are provide here.
Please check out the project's GitHub page.
It is worth noting that GMCA provides a very generic framework that has been extended to tackle different matrix factorization problems:
- Non-negative matrix factorization with nGMCA
- Separation of partially correlated sources with AMCA
- The decomposition of hyperspectral data with HypGMCA (available soon)
- The analysis of multichannel data in the presence of outliers with rAMCA at this location (updated the 14/06/16).
- Robust BSS in transformed domains with tr-rGMCA .
We are now developping a python-based toolbox coined pyGMCALab, which is available at this location.