35 lines
695 B
Matlab
35 lines
695 B
Matlab
function flg = Expr3_can_recovery(Phi_far, N, M, n, s, eps)
|
|
|
|
% select random n cols
|
|
col_choose = randperm(N, n);
|
|
Phi = Phi_far(col_choose, :);
|
|
|
|
% generate sparse signal
|
|
sparse_signal = zeros(M, N);
|
|
block = randperm(N, s);
|
|
sparse_signal(:, block) = exp(1i * 2 * pi * rand(M, s));
|
|
|
|
% generate y
|
|
y = Phi * sparse_signal(:);
|
|
|
|
cvx_begin quiet
|
|
variable x(M, N) complex
|
|
norm21 = 0;
|
|
for i = 1:N
|
|
norm21 = norm21 + norm(x(:, i));
|
|
end
|
|
minimize(norm21)
|
|
subject to
|
|
Phi * x(:) == y
|
|
cvx_end
|
|
|
|
p = norm(x(:) - sparse_signal(:), 2);
|
|
|
|
if p < eps
|
|
flg = 1;
|
|
else
|
|
flg = 0;
|
|
end
|
|
|
|
end
|