Files
2024-07-22 21:17:57 +08:00

89 lines
1.7 KiB
Objective-C
Executable File

global ...
B ...
T_p ...
f_s ...
T_s ...
f_c ...
PRF ...
T_r ...
t_single_pulse ...
c ...
N ...
M ...
R_0...
delta_R_wide ...
delta_R_narrow ...
N_wide ...
N_narrow ...
ranges_wide...
ranges_narrow ...
betas_wide ...
betas_narrow ...
trail_times...
method ...
N_high ...
LASSO_lambda ...
tau ...
iter_max ...
FAR_N ...
FAR_M ...
Ns Ms lambdas sigmas
;
B = 10e5;
T_p = 1e-5;
f_s = B;
T_s = 1 / f_s;
f_c = 1e9;
duty_cycle_inv = 10;
T_r = T_p * duty_cycle_inv;
PRF = 1 / T_r;
t_single_pulse = 0: 1 / f_s: T_r - 1 / f_s;
c = 3e8;
N = length(t_single_pulse);
N_high = T_p * f_s;
M = round(T_p * B);
R_0 = 0;
delta_R_wide = c ./ 2 ./ B; % 宽带情况下的距离分辨力
delta_R_narrow = T_p .* c ./ 2; % 窄带情况下的距离分辨力
N_wide = FAR_N; % 宽带情况下,发射 480 个脉冲
N_narrow = round(N_wide / M);
ranges_wide = R_0 + (0:N_wide) * delta_R_wide; % [1000, 4000]
ranges_narrow = R_0 + (0:N_narrow) * delta_R_narrow; % [1000, 4000]
% betas_wide = (linspace(1, 0.1, FAR_M * FAR_N) + 1j * linspace(0.1, 1, FAR_M * FAR_N))';
betas_wide = zeros(FAR_M * FAR_N, 1) + 1;
betas_narrow = zeros(FAR_N, 1);
for i = 1: FAR_N
for j = 1: FAR_M
idx = (i-1) * FAR_M + j;
betas_narrow(i) = betas_narrow(i) + betas_wide(idx) * exp(1j * 2 * pi * 2 * delta_R_wide * j / c);
end
end
trail_times = 250;
% method = "debiased_LASSO";
% method = "LASSO";
% method = "BP";
method = "cVAMPro";
% method = "debiased_LASSO_FISTA";
LASSO_lambda = 0.1;
tau = 1e-6;
iter_max = 1000;
Ns = [256];
Ms = [16];
sigmas = [0.01];
lambdas = zeros(length(Ns), 1);
for i = 1: length(Ns)
lambdas(i) = Map(Ns(i) + "_" + Ms(i));
end