Create a matrix for a radar plane movement

3 views (last 30 days)
hey to all, thanks for reading this in advance.
I have a AoI=200 x 200 binary matrix, composed by zeros and ones(0 and 1), I define the position of the 1.
The 1 in the matrix represent isolated targets in a radar scenario, for example,AoI(2,(5:10)) = 1.
I define also the position of a receiving antenna (x_receiver=400,y=receiver=400) and of a aeroplane,which has a transmitter on board and this plane is moving in x axis,and stops along the path to iluminate this AoI scenario. The movement of the plane is defined by waypoints
x_transmitter=200
y_transmitter=waypoints=[10,20,30,40]
In my code I have a main cycle that read this matrix, identifies the targets and calculates several radar parameters: My doubt is: that for each waypoint I produce a series of calculations. And Imagine at waypoint 10, target(2,5),(2,6),(2,7) get founded. I calculate Reference_SignalFD and Surveillance_SignalFD. But if at waypoint 20, target(2,8),(2,9) gets founded I want to also calculate Reference_SignalFD and Surveillance_SignalFD but without eliminating the calculations of previous waypoint. so basically I want that in all plane movement Reference_SignalFD and Surveillance_SignalFD gets calculated in a matrix where the lines of that matrix are the different waypoints and the columns are the values of the calculations. Thanks
for i=1:numel(waypoints)
Y_transmitter = waypoints(i);
for xx=1:200
for yy=1:200
if AoI(xx,yy) ~= 0 % Target detection
X_target= xx;
Y_target= yy;
VTransmitter_target=[X_target-X_transmitter Y_target-Y_transmitter]; % Vector transmitter-target
Vectors_product=dot( VTransmitter_target,normal_ntarget1)/norm(VTransmitter_target);
angle_transmitter =180-acosd(Vectors_product);
VTarget_receiver=[X_receiver-X_target Y_receiver-Y_target]; % Vector Target-receiver
Vectors_product=dot( VTarget_receiver,normal_ntarget1)/norm(VTarget_receiver);
angle_receiver =acosd(Vectors_product);
status=snell_function(angle_transmitter,angle_receiver,teta_flutuations);
Pr = LoS_receiver(X_receiver,Y_receiver,X_target,Y_target,AoI);
Pt = LoS_transmitter(X_transmitter,Y_transmitter,X_target,Y_target,AoI);
if status ==1 & Pt ==1 & Pr ==1
R1=sqrt( (X_transmitter-X_target).^2 + (Y_transmitter-Y_target).^2); % Distance transmitter-target in meters
R2=sqrt( (X_receiver-X_target).^2 + (Y_receiver-Y_target).^2); % Distance Receiver-target in meters
Rd=sqrt( (X_receiverref-X_transmitter).^2 + (Y_receiverref-Y_transmitter).^2); % Distance Transmitter-Receiver in meters
k0=(2*pi*freq_XQPSK)/c; % Wave index variable in radians
Surveillance_SignalFD=(1/(R1+R2))*X_QPSK.*exp(-1*j*k0*(R1+R2)); % Surveillance Signal frequency domain
Reference_SignalFD=(1/Rd)*X_QPSK.*exp(-1*j*k0*Rd); % Reference Signal frequency domain
fprintf('\n Coordenadas do avião(%d,%d)',X_transmitter,Y_transmitter);
fprintf('\n Coordenadas do alvo(%d,%d)',X_target,Y_target);
fprintf('\n Distância transmissor-alvo R1 %4.2f metros',R1);
fprintf('\n Distância alvo-recetor R2 %4.2f metros',R2);
fprintf('\n Distância transmissor-recetor Rd %4.2f metros',Rd);
continue
end
end
end
end
end
  2 Comments
Miguel Albuquerque
Miguel Albuquerque on 11 May 2022
Okay, next time I will have this considered, but can you help me?

Sign in to comment.

Answers (0)

Products


Release

R2021b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by