Files
FAR_CS/Phase Transitions in FAR using CS/Expr3_can_recovery.m
T
2023-12-20 10:24:50 +08:00

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