% Expr2.m to draw Fig 3(a) clc; clear; M = 4; N = 128; epi = 0.02; % \Delta f / f_c = 0.02 beta = 1; max_n = 125; max_k = 25; trials_time = 5; eps = 1e-5; prob = zeros(max_n, max_k); rng(1) Phi_far = zeros(N, N * M); for n = 0:N - 1 Cn = floor(rand() * M); for q = 0:N - 1 for p = 0:M - 1 Phi_far(n + 1, q * M + p + 1) = exp(1i * 2 * pi * p / M * Cn + 1i * 2 * pi * q / N * n * (1 + Cn * epi)); end end end for n = 1:max_n parfor k = 1:max_k s = beta * k * M; x = 0; for t = 1:trials_time x = x + Expr3_can_recovery(Phi_far, N, M, n, s, eps); end prob(n, k) = x / trials_time; end end save("Expr3.mat", "prob");