46 lines
1.1 KiB
Matlab
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');
|