73 lines
1.1 KiB
Plaintext
73 lines
1.1 KiB
Plaintext
% Expr2.m to draw Fig 3(a)
|
|
clc;
|
|
clear;
|
|
|
|
M = 4;
|
|
N = 128;
|
|
rate = 0.02; % \Delta f / f_c = 0.02
|
|
beta = 1;
|
|
|
|
max_n = 125;
|
|
max_k = 25;
|
|
trials_time = 50;
|
|
|
|
prob = zeros(max_n, max_k);
|
|
|
|
rng(1)
|
|
|
|
Phi_far = zeros(N, N * M);
|
|
C = randi([1, M], 1, N);
|
|
xi = 1 + 0.02 * C;
|
|
|
|
% for i = 1:N
|
|
%
|
|
% Phi_x = zeros(N, M);
|
|
%
|
|
% for p = 1:M
|
|
%
|
|
% for q = 1:N
|
|
% range = ((p - 1) * C(i)) / M; % p start from 0 or 1?
|
|
% doppler = ((q - 1) * (i - 1) * xi(i)) / N; % q start from 0 or 1?
|
|
% Phi_x(q, p) = exp(1j * 2 * pi * (range + doppler)) / sqrt(N);
|
|
% end
|
|
%
|
|
% end
|
|
%
|
|
% % t == ctranspose(Phi_x(:,1)) * Phi_x(:,1) == 1
|
|
% Phi_far(:, (i - 1) * M + 1:i * M) = Phi_x;
|
|
%
|
|
% end
|
|
|
|
for i = 1:n
|
|
for j = 1:m
|
|
|
|
|
|
n = 60;
|
|
k = 5;
|
|
|
|
s = beta * k * M;
|
|
x = 0;
|
|
|
|
for t = 1:trials_time
|
|
x = x + Expr3_can_recovery(Phi_far, N, M, n, s, eps);
|
|
end
|
|
disp(x);
|
|
|
|
|
|
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");
|