Moosa
Moosa

Reputation: 11

how to solve MMV sparse representation with CVX

I want to solve multiple measurement vector (MMV) sparse representation problem with CVX toolbox. I have a N*L matrix X. matrix X have only a few nonzero rows. I have system of equations Y=A*X. Y is M*L matrix of measurements (M

min Relax(X) subject to Y=A*X

Realx(.) is a function that applies norm 1 to the vector t. (N*1)vector t consists of the norm 2 of each rows of matrix X. i.e. Relax(X)= norm_1(t) and t(i)=norm_2(X(i,:))

I can’t transform my objective function into a language that CVX can understand and solve. Please tell me how I should change the problem objective and constraints that CVX could solve it.

Upvotes: 1

Views: 745

Answers (2)

y t
y t

Reputation: 1

cvx_begin separable

variable Sp(N,m) complex;% there are m samples
minimize( sum(norms(Sp.',2)) );
subject to
A*Sp==y;
%     norm(y - A*Sp,2)<= 1e-8;

cvx_end

Upvotes: 0

Laura Balzano
Laura Balzano

Reputation: 101

'norms' is the cvx command you're looking for. Suppose sigma is some known parameter that allows Y to be only approximately equal to A*X (e.g. I tried it with sigma=10e-6). Then you could use this code:

cvx_begin separable

    variable X(n,n)
    minimize( norms(X,2,1) )
    subject to
       norm(Y - A*X,2)<= 10*sigma

cvx_end

Upvotes: 0

Related Questions