Initial ARSS. Need to improve and add functions.
This commit is contained in:
@@ -0,0 +1,59 @@
|
||||
function ChannelOut = apply_channel_effects(RadarParams)
|
||||
Target = RadarParams.Target;
|
||||
TxPos = RadarParams.Antenna.TxPos;
|
||||
RxPos = RadarParams.Antenna.RxPos;
|
||||
NumChirps = RadarParams.Waveform.NumChirps;
|
||||
Timing = RadarParams.Waveform.Timing;
|
||||
fs_adc = RadarParams.Waveform.fs_adc;
|
||||
f_start = RadarParams.Waveform.f_start;
|
||||
Slope = RadarParams.Waveform.Slope;
|
||||
c = RadarParams.Basic.c;
|
||||
NumTx = size(TxPos, 2);
|
||||
NumRx = size(RxPos, 2);
|
||||
NumTargets = Target.NumTargets;
|
||||
T_pri = RadarParams.Waveform.PRI;
|
||||
|
||||
t_adc = 0 : 1/fs_adc : (Timing.AdcSampTime - 1/fs_adc);
|
||||
N_adc = length(t_adc);
|
||||
|
||||
% [핵심] 처프 내 샘플별 순시 주파수 및 파장 계산
|
||||
% t_adc에 따라 주파수가 변하므로 파장(lambda)도 샘플마다 변함
|
||||
f_inst = f_start + Slope * t_adc;
|
||||
lambda_t = c ./ f_inst;
|
||||
|
||||
ChannelOut.tau = zeros(NumTargets, NumRx, NumTx, NumChirps, N_adc);
|
||||
ChannelOut.space_loss_amp = zeros(NumTargets, NumRx, NumTx, NumChirps, N_adc);
|
||||
|
||||
ref_point = (TxPos(:,1) + RxPos(:,1)) / 2;
|
||||
|
||||
for k = 1:NumTargets
|
||||
az_rad = deg2rad(Target.az(k));
|
||||
el_rad = deg2rad(Target.el(k));
|
||||
rel_pos0 = Target.R(k) * [cos(el_rad)*sin(az_rad); cos(el_rad)*cos(az_rad); sin(el_rad)];
|
||||
target_world_pos0 = ref_point + rel_pos0;
|
||||
v_vec = Target.v(k) * (rel_pos0 / norm(rel_pos0));
|
||||
|
||||
sigma = 10^(Target.rcs(k)/10);
|
||||
|
||||
for m = 0:NumChirps-1
|
||||
% 처프 간 이동 반영
|
||||
target_pos_at_chirp = target_world_pos0 + v_vec * (m * T_pri);
|
||||
|
||||
for tx = 1:NumTx
|
||||
for rx = 1:NumRx
|
||||
% 처프 내 샘플별 이동 반영
|
||||
curr_target_pos = target_pos_at_chirp + v_vec * t_adc;
|
||||
d_tx = sqrt(sum((curr_target_pos - TxPos(:,tx)).^2, 1));
|
||||
d_rx = sqrt(sum((curr_target_pos - RxPos(:,rx)).^2, 1));
|
||||
|
||||
% TTD 지연 시간 저장
|
||||
ChannelOut.tau(k, rx, tx, m+1, :) = (d_tx + d_rx) / c;
|
||||
|
||||
% [가변 파장 적용] 주파수 대역폭에 따른 공간 감쇠 변화 반영
|
||||
denom = (4*pi)^3 * (d_tx.^2 .* d_rx.^2);
|
||||
ChannelOut.space_loss_amp(k, rx, tx, m+1, :) = sqrt((lambda_t.^2 * sigma) ./ denom);
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user