Reputation: 11
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
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
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