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