Files
FAR_CS/Phase Transitions in FAR using CS/Lyh/捷变频相变_ksy/FAR_block_sparsity_phase1.m
T
2024-02-21 16:46:15 +08:00

46 lines
1.1 KiB
Matlab

close all;
clear all;
clc;
M = 4;
N = 128;
%block_sparsity = 1;
tol = 1e-4;
trial = 20;
max_sparsity = 25;
epi = 0.02;
result = zeros(N,max_sparsity);
FAR_model = get_far_model(N, M, epi);
for n = 60:N
for s = 10:max_sparsity
success_count = 0;
for loop = 1:trial
col_choose = randperm(N,n);
FAR_model_partial = FAR_model(col_choose,:);
sparse_signal = zeros(M,N);
block = randperm(N,s);
sparse_signal(:,block) = exp(1i*2*pi*rand(M,s));
y = FAR_model_partial * sparse_signal(:);
cvx_begin
variable x(M,N) complex
norm21 = 0;
for i = 1:N
norm21 = norm21 + norm(x(:,i));
end
minimize(norm21)
subject to
FAR_model_partial * x(:) == y
cvx_end
if norm(x(:)-sparse_signal(:))<tol
success_count = success_count+1;
end
end
result(n,s) = success_count/trial;
end
end
save('FARblockepsilon4.mat');