clear;
close all;
clc;
f = 10e9;
c = 3e8;
%in body fixed system
P1 = [0, 0, 0]; %first point scatterer
P2 = [0.3, 0, 0.6];
P3 = [-0.3, 0, 0.6];
P0 = [0, 0, 0];
Pax = [0, 0, 1];
model = [P1; P2; P3; P0; Pax];
N_sctr = size(model, 1);
T = 2.048;
dt = 0.001;
t = 0:dt:T-dt;
nt = length(t);
%the origion of the object
X0 = 1000;
Y0 = 5000;
Z0 = 5000;
n_radial = [X0;Y0;Z0]/norm([X0, Y0, Z0]);
phi = 30*pi/180;
theta = 30*pi/180;
psi = 20*pi/180;
Rz = [cos(phi) sin(phi) 0; -sin(phi) cos(phi) 0; 0 0 1];
Ry = [cos(theta) 0 -sin(theta); 0 1 0; sin(theta) 0 cos(theta)];
Rx = [1 0 0; 0 cos(psi) sin(psi); 0 -sin(psi) cos(psi)];
Rinit = Rx*Ry*Rz;
model_ini = model*Rinit;
figure(1);
plot3(model(1,1), model(1,2), model(1,3),'bo')
hold on
plot3(model_ini(1,1), model_ini(1,2), model_ini(1,3),'bo')
plot3(model_ini(2,1), model_ini(2,2), model_ini(2,3),'go')
plot3(model_ini(3,1), model_ini(3,2), model_ini(3,3),'ro')
line([model_ini(2,1) model_ini(3,1)],[model_ini(2,2) model_ini(3,2)],...
[model_ini(2,3) model_ini(3,3)],...
'color','k','linewidth',2.0,'lineStyle','-')
line([model_ini(2,1)/2+model_ini(3,1)/2 model_ini(1,1)],...
[model_ini(2,2)/2+model_ini(3,2)/2 model_ini(1,2)],...
[model_ini(2,3)/2+model_ini(3,3)/2 model_ini(1,2)],...
'color','k','linewidth',1.5,'linestyle','--')
axis image
view(-10, 20)
axis([-0.8 0.8, -0.8 0.8, -0.4 0.8])
xlabel('x')
ylabel('y')
zlabel('z')
title('Trajectory of Three Spining Sctterers')
grid
drawnow
ux = model_ini(5,1);
uy = model_ini(5,2);
uz = model_ini(5,3);
fs = 8/T;
ws_x = 2*pi*fs*ux;
ws_y = 2*pi*fs*uy;
ws_z = 2*pi*fs*uz;
ws = [ws_x; ws_y; ws_z];
Omiga_s = sqrt(ws_x*ws_x+ws_y*ws_y+ws_z*ws_z);
ws_unit = ws/Omiga_s;
Ws = [0 -ws_unit(3) ws_unit(2);...
ws_unit(3) 0 -ws_unit(1);...
-ws_unit(2) ws_unit(1) 0 ];
model_new = model_ini;
for i=1:100
Rs = eye(3)+Ws*sin(Omiga_s*t(i))+Ws*Ws*(1-cos(Omiga_s*t(i)));%Rodrigues formula
model_new = model_new*Rs;
figure(1)
plot3(model_new(1,1),model_new(1,2),model_new(1,3),'bo')
plot3(model_new(2,1),model_new(2,2),model_new(2,3),'go')
plot3(model_new(3,1),model_new(3,2),model_new(3,3),'ro')
drawnow
end
grid on
for i=1:nt
Rs = eye(3)+Ws*sin(Omiga_s*t(i))+Ws*Ws*(1-cos(Omiga_s*t(i)));
dRs = Omiga_s*(Ws*(Ws*sin(Omiga_s*t(i))+cos(Omiga_s*t(i))));
for j=1:size(model(1:3,:),1)
MicroDoppler(j,i) = 2*(f/c)*(model_ini(j,:)*dRs)*n_radial;
end
end
figure(2)
plot(t, MicroDoppler(1,:),'b.');
hold on
plot(t, MicroDoppler(2,:),'g.');
plot(t, MicroDoppler(3,:),'r.');
title('Micro-Doppler Signature of a Spining Target');
xlabel('Time (sec)');
ylabel('Doppler Frequency (Hz)');
axis([0 T -800 800])
drawnow