21 lines
940 B
Matlab
21 lines
940 B
Matlab
function RxOut = receive_antenna(ChannelOut, Target, RxPattern)
|
|
[NumTargets, NumRx, NumTx, NumChirps, N_adc] = size(ChannelOut.space_loss_amp);
|
|
RxOut = ChannelOut;
|
|
|
|
for k = 1:NumTargets
|
|
for rx = 1:NumRx
|
|
pat = RxPattern(rx);
|
|
if strcmpi(pat.Type, '2D')
|
|
g_dBi = interp2(pat.az_angles, pat.el_angles, pat.gain_dBi, Target.az(k), Target.el(k), 'linear', -20);
|
|
else
|
|
g_az = interp1(pat.az_angles, pat.gain_az_dBi, Target.az(k), 'linear', -20);
|
|
g_el = interp1(pat.el_angles, pat.gain_el_dBi, Target.el(k), 'linear', -20);
|
|
g_dBi = g_az + g_el - pat.max_gain_dBi;
|
|
end
|
|
|
|
% 수신 안테나 선형 진폭 이득 결합
|
|
rx_gain_amp = sqrt(10^(g_dBi/10));
|
|
RxOut.space_loss_amp(k, rx, :, :, :) = RxOut.space_loss_amp(k, rx, :, :, :) * rx_gain_amp;
|
|
end
|
|
end
|
|
end |