Sparse-USR-EigMem is a collection of MATLAB codes designed to perform EigMem Underdetermined Sparse Source Recovery (EigMem-USR). It addresses the challenge of underdetermined blind source separation (UBSS) by recovering sparse source signals in an underdetermined system.
In the UBSS problem, we have the following components:
- X: Mixture matrix (m*T) - Known
- A: Mixing matrix (m*n) - Known and singular
- S: Source matrix (n*T) - Unknown
- n > m: More sources than sensors (underdetermined BSS)
- S matrix is sparse: Each column of S is a k-sparse vector, meaning that there are k <= (m-1) active sources at each time instant. In other words, the sparsity level (k) or the norm-zero of source vectors (s_q) is the number of non-zero elements. For example, if S=[2 0 3 5;3 0 0 -1], S(:,1) is a 3-sparse vector, and S(:,2) is a 2-sparse vector.
The primary goal is to find the source matrix, S, which corresponds to Underdetermined Source Recovery (USR).
To use this code, follow these steps:
- Clone this repository to your local machine.
- Open MATLAB.
- Run the "MainEigMem.m" script included in this repository.
- Ehsan Eqlimi
- Bahador Makkiabadi
This code is copyright protected by Ehsan Eqlimi and Bahador Makkiabadi, who were affiliated with the Department of Medical Physics and Biomedical Engineering at Tehran University of Medical Sciences (TUMS) in Tehran, Iran.
This code was developed between May 2016 and January 2017.
For any inquiries or questions, you can contact the authors at the following email addresses:
- Ehsan Eqlimi: firstname.lastaname at {outlook.com}
Please cite the following paper (and future papers) if you use or benchmark this code: