31 lines
589 B
Matlab
31 lines
589 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
|
|
minimize(norm(x, 1))
|
|
subject to
|
|
Phi * x == y
|
|
cvx_end
|
|
|
|
p = norm(x - sparse_signal(:), 2);
|
|
|
|
if p < eps
|
|
flg = 1;
|
|
else
|
|
flg = 0;
|
|
end
|
|
|
|
end
|