Files
FAR_CS/Phase Transitions in FAR using CS/Expr3_can_recovery.asv
T
2023-12-19 17:12:26 +08:00

44 lines
768 B
Plaintext

function flg = Expr3_can_recovery(Phi_far, N, M, n, s, eps)
Phi = zeros(n, N * M);
indices = randperm(N, n);
for i = 1:n
Phi(i, :) = Phi_far(indices(i), :);
end
d = M*N;
x = zeros(d, 1);
random_indices = randperm(d, s);
x(random_indices) = randn(s, 1);
x = sign(x);
for i = 1:M * N
if x(i) ~= 0
t = rand(1) * 2 * pi;
x(i) = cos(t) + 1j * sin(t);
end
end
y = Phi * x;
cvx_begin quiet
variable s1(d) complex
minimize(norm(s1, 1))
subject to
norm(y - Phi * s1) <= eps
cvx_end
x = sign(real(x));
s1 = real(s1);
p = norm(x - s1, 2);
disp(p);
if p < eps
flg = 1;
else
flg = 0;
end
end