7

BSAR Matlab Implementation

7.1. Construction of a helicopter image

1 clear all, close all

2

3 obj=zeros(25,100,15); obj(12,1,1)=1;

4 obj(13,1,1)=1; obj(14,1,1)=1; obj(11,2,1)=1;

5 obj(15,2,1)=1; obj(10,3,1)=1; obj(16,3,1)=1;

6 obj(9,4:15,1)=1; obj(17,4:15,1)=1;

7 obj(12,3,5)=1; obj(13,3,5)=1; obj(14,3,5)=1;

8 obj(11,4,5)=1; obj(15,4,5)=1; obj(10,5,5)=1;

9 10. obj(16,5,5)=1; obj(9,6:15,5)=1; obj(17,6:15,5)=1;

11 obj(12,1,2)=1; obj(13,1,2)=1; obj(14,1,2)=1;

12 obj(11,2,2)=1; obj(15,2,2)=1; obj(10,3,2)=1;

13 obj(16,3,2)=1; obj(12,2,3:4)=1; obj(13,2,3:4)=1;

14 obj(14,2,3:4)=1; obj(11,3,3:4)=1; obj(15,3,3:4)=1;

15 obj(10,4,3:4)=1; obj(16,4,3:4)=1; obj(9,5:15,1:5)=1;

16 obj(17,5:15,1:5)=1; obj(10:17,5:16,5)=1;

17 obj(10,15:17,1)=1; obj(16,15:17,1)=1;

18 obj(10:16,17,1)=1; obj(10:16,17,5)=1;

19 obj(10:16,17,1:5)=1; obj(10:16,17,1:5)=1;

20 % tale

21 obj(10,15:17,5)=1; obj(16,15:17,5)=1;

22 obj(11,18:20,3:4)=1; obj(15,18:20,3:4)=1;

23 obj(12,18:34,3:4)=1; obj(14,18:34,3:4)=1;

24 obj(13,34,3:4)=1; obj(10:16,35:36,3:4)=1;

25 obj(12:14,37:38,3:4)=1;

26 %blade

27 obj(11,4:13,7)=1;

28 obj(11,3,7)=1; obj(12,2,7)=1;

29 obj(13,1,7)=1; obj(14,2,7)=1; obj(15,3,7)=1;

30 obj(15,4:13,7)=1; obj(12,14,7)=1;

31 obj(13,15,7)=1; obj(15,14,7)=1;

32 deltax=1; %distance between two grid nodes

33 deltay=1;

34 deltaz=1;

35 kapa_x=-15;%target initial X coordinate

36 kapa_y=-13;%target initial Y coordinate

37 kapa_z=0; %target initial Z coordinate

38

39 [x,y,z]=meshgrid(1:100,1:25,1:15);

40 index=find(obj~=0);

41

42 xyz(2,:)=kapa_x+deltax.*x(index);

43 xyz(1,:)=kapa_y+deltay.*y(index);

44 xyz(3,:)=kapa_z+deltaz.*z(index);

45

46 scatter3(xyz(1,:),xyz(2,:),xyz(3,:),2.1),

47 set(gca,'fontsize',20);

48 xlhand = get(gca,'title'),

49 set(xlhand,'string','Target image of a

50 helicopter','fontsize',20)

51

52 axis([-30 30 -30 30 0 30])

53 xlabel('x'),ylabel('y'),zlabel('z')

54

55 save object.mat

7.2. BGISAR imaging

1 clear all, close all

2

3 load object.mat %Loads the target image

4

5 num=max(size(xyz)); %Number of point scatterers

6

7 %BGISAR transmitter vector-coordinates

8 xrs= input(’Enter transmitter x coordinate: ’);

9 yrs= input(’Enter transmitter y coordinate: ’);

10 zrs= input(’Enter transmitter z coordinate: ’);

11

12 %BGISAR receiver vector-coordinates

13 xrr= input(’Enter receiver x coordinate: ’);

14 yrr= input(’Enter receiver y coordinate: ’);

15 zrr= input(’Enter receiver z coordinate: ’);

16

17 %Object referent plane vector-coordinates

18 input(’Enter reference plane x coordinate: ’);

19 input(’Enter reference plane y coordinate: ’);

20 input(’Enter reference plane z coordinate: ’);

21

22 %Object mass-centre vector-coordinates

23 input(’Enter mass centre x coordinate: ’);

24 input(’Enter mass centre y coordinate: ’);

25 input(’Enter mass centre z coordinate: ’);

26 delta= input(’Enter inter point distance: ’);

27 %Number of emitted pulses

28 N= input(’Enter number of pulses: ’);

29 Nf= input(’Enter number of iterations: ’);

30 a= input(’Enter point reflection coefficient: ’);

31 f=10^10; %Frequency Tp=10^-1; %Pulse repetition period

32

33 omega=2*pi*f; %angular frequency

34 c=3*10^8; %Speed of light

35 %Vector-velocity guiding cosines

36 alpha= input(’Enter velocity angle on x axis: ’);

37 beta= input(’Enter velocity angle on y axis: ’);

38 gama=abs(acos(sqrt(1-(cos(alpha))^2-(cos(beta))^2)));

39 %Object vector-velocity guiding cosines

40 alphao= input(’Enter object velocity on x axis: ’);

41 betao=pi; input(’Enter object velocity on y axis: ’);

42 gamao=abs(acos(sqrt(1-(cos(alpha))^2-(cos(beta))^2)));

43

44 Satellite transmitter vector-velocity

45 V= input(’Enter satellite velocity: ’);

46 Vx=V*cos(alpha);

47 Vy=V*cos(beta);

48 Vz=V*cos(gama);

49

50 object vector-velocity

51 Vo= input(’Enter object velocity: ’);

52 Vxo=Vo*cos(alphao);

53 Vyo=Vo*cos(betao);

54 Vzo=Vo*cos(gamao);

55

56 %Rotation angles coefficients

57 A0=Vz*(y00-y0)-Vy*(z00-z0);

58 B0=Vx*(z00-z0)-Vz*(x00-x0);

59 C0=Vy*(x00-x0)-Vx*(y00-y0);

60 D=(A0)^2+(B0)^2+(C0)^2;

61

62 Ag=(A0*V*cot(galpha)+C0*Vy-B0*Vz)/D;

63 Bg=(B0*V*cot(galpha)+A0*Vz-C0*Vx)/D;

64 Cg=(C0*V*cot(galpha)+B0*Vx-A0*Vy)/D;

65 D1=(Ag)^2+(Bg)^2+(Cg)^2;

66

67 %X, Y, Z rotation angles

68 psi=atan(-Ag/Bg);

69 theta=acos(Cg/sqrt(D1));

70 phi=acos((Vx*Bg-y*Ag)*sqrt(((Ag)^2+(Bg)^2)*((Vx)^2+

71 +(Vy)^2)+(Vz)^2));

72 %Rotation matrix elements

73 a11=cos(psi)*cos(phi)-sin(psi)*cos(theta)*sin(phi);

74 a12=-cos(psi)*sin(phi)-sin(psi)*cos(theta)*cos(phi);

75 a13=sin(psi)*sin(theta);

76 a21=sin(phi)*cos(phi)+cos(psi)*cos(theta)*sin(phi);

77 a22=-sin(psi)*sin(phi)+cos(psi)*cos(theta)*cos(phi);

78 a23=-cos(psi)*sin(theta);

79 a31=sin(theta)*sin(phi);

80 a32=sin(theta)*cos(phi);

81 a33=cos(theta);

82

83 A_rot=[a11 a12 a13; a21 a22 a23; a31 a32 a33];

84 %Transformationf the object coordinates in OXYZ plane

85 transf_xyz=delta.*A_rot*xyz;

86 %Calculation of the range-coordinates

87 p_v=(0:N-1);

88 Xs=kron(x00,ones(num,N))-

89 kron(xrs,ones(num,N))+kron(Vx*(N/2-

90 -p_v)*Tp,ones(num,1))+kron(xyz(1,:),ones(N,1)).'+

91 +kron(Vx*(N/2-p_v)*Tp,ones(num,1));

92 Ys=kron(y00,ones(num,N))-

93 kron(yrs,ones(num,N))+kron(Vy*(N/2-95 -

94 p_v)*Tp,ones(num,1))+kron(xyz(2,:),ones(N,1)).'+

96 +kron(Vy0*(N/2-p_v)*Tp,ones(num,1));

97 Zs=kron(z00,ones(num,N))-

98 kron(zrs,ones(num,N))+kron(Vz*(N/2-

99 -p_v)*Tp,ones(num,1))+kron(xyz(3,:),ones(N,1)).'+

100 +kron(Vzo*(N/2-p_v)*Tp,ones(num,1));

101 Xr=kron(xrr,ones(num,N))-

102 kron(x00,ones(num,N))+kron(Vx*(N/2-

103 -p_v)*Tp,ones(num,1))+kron(xyz(1,:),ones(N,1)).';

104 Yr=kron(yrr,ones(num,N))-

105 kron(y00,ones(num,N))+kron(Vy*(N/2-

106 p_v)*Tp,ones(num,1))+kron(xyz(2,:),ones(N,1)).';

107 Zr=kron(zrr,ones(num,N))-

108 kron(z00,ones(num,N))+kron(Vz*(N/2-

109 -p_v)*Tp,ones(num,1))+kron(xyz(3,:),ones(N,1)).';

110 %Calculation of the round trip range distance

111 Rs=sqrt((Xs).^2+(Ys).^2+(Zs).^2);

112 Rr=sqrt((Xr).^2+(Yr).^2+(Zr).^2);

113 t1=(Rs+Rr)./c; %Round trip time delay

114 Barcercode=[0 0 0 0 0 1 1 0 0 1 0 1 0]; %Barker code

115 %Number of range bins

116 Nt=size(Barcercode,2);

117 Ns=size(Barcercode,1);

118 Nk=Nt*Ns;

119

120 %Pulse width

121 Ts= input(’Enter segment duration: ’);

122 T=Ns*Ts;

123 deltaT=T/Nk;

124

125 p_help=(0:N-1);

126 t=sort(sort(t1));

127

128 %Object length

129 Nx=ceil((max(max(t))-min(min(t)))/deltaT);

130

131 %complex signal preliminary definition

132 S=zeros(N,K,1);

133 mint=zeros(N);

134 check=1;

135 bphase=0;

136 count=0;

137 %Returned signal calculation

138 for q=1:num

127_1.gif

128_1.gif

170 %Reconstruction procedure

171 A1=fft(Skor);

172 A2=fftshift(A1);

173 absolute=abs(A2);

174

175 %Visualization

176 figure

177 mesh(real(S./max(max(S))))

178 title('BGISAR signal real part'),

179 set(gca,'fontsize',30);xlhand = get(gca,'title'),

180 set(xlhand,'string','BGISAR signal real

181 part','fontsize',30)

182 colormap(flipud(gray))

183 shading flat

184 xlabel('k')

185 ylabel('p')

186

187 figure

188 mesh(imag(S./max(max(S)))); set(gca,'fontsize',30);

189 xlhand = get(gca,'title'),

190 set(xlhand,'string','BGISAR signal imaginary

191 part','fontsize',30)

192 colormap(flipud(gray))

193 shading flat

194 xlabel('k')

195 ylabel('p')

196 figure

197 mesh(real(Skor./max(max(Skor))));

198 set(gca,'fontsize',30);xlhand = get(gca,'title'),

199 set(xlhand,'string','BGISAR signal by correlation real

200 part','fontsize',30)

201 colormap(flipud(gray))

202 shading flat

203 xlabel('k')

204 ylabel('p')

205

206 figure

207 mesh(imag(Skor./max(max(Skor))));

208 xlhand = get(gca,'title'),

209 set(xlhand,'string','BGISAR signal by correlation

210 imaginary part','fontsize',30)

211 colormap(flipud(gray))

212 shading flat

213 xlabel('k')

214 ylabel('p')

215

216 figure

217 mesh(real(A1./max(max(A1))));set(gca,'fontsize',30);

218 xlhand = get(gca,'title'),

219 set(xlhand,'string','Azimuth compressed BGISAR signal

220 by FFT real part','fontsize',30)

221 colormap(flipud(gray))

222 shading flat

223 xlabel('k')

224 ylabel('p')

225

226 figure

227 mesh(imag(A1./max(max(A1))));set(gca,'fontsize',30);

228 xlhand = get(gca,'title'),

229 set(xlhand,'string','Azimuth compressed BGISAR signal

230 by FFT imaginary part','fontsize',30)

231 colormap(flipud(gray))

232 shading flat

233 xlabel('k')

234 ylabel('p')

235 figure

236 mesh(real(A3./max(max(A3))));

237 xlhand = get(gca,'title'),

238 set(xlhand,'string','BGISAR signal by frequency

239 domain shift – real part','fontsize',30)

240 colormap(flipud(gray))

241 shading flat

242 xlabel('k')

243 ylabel('p')

244

245 figure

246 mesh(imag(A3./max(max(A3))));

247 xlhand = get(gca,'title'),

248 set(xlhand,'string','BGISAR signal by frequency

249 domain shift – imaginary part','fontsize',30)

250 colormap(flipud(gray))

251 shading flat

252 xlabel('k')

253 ylabel('p')

254 xx=find(absolute>=0.29*max(max(absolute)));

255 absolute(xx)=0.29*(max(max(absolute)));

256 figure

257 pcolor(absolute);xlhand = get(gca,'title'),

258 set(xlhand,'string','BGISAR target

259 image','fontsize',30)

260 colormap(flipud(gray))

261 shading flat

262 xlabel('k')

263 ylabel('p')

264 axis([0 80 240 300])

265

266 figure

267 mesh(absolute./max(max(absolute)));

268 xlhand = get(gca,'title'),

269 set(xlhand,'string','BGISAR target

270 image','fontsize',30)

271 colormap(flipud(gray))

272 shading flat

273 xlabel('k')

274 ylabel('p')

275 for a2=1:Nf

130_1.gif

131_1.gif

319 figure

320 mesh(real(Sdem_F2./max(max(Sdem_F2))));

321 xlhand = get(gca,'title'),

322 set(xlhand,'string','BGISAR signal real

323 part','fontsize',30)

324 colormap(flipud(gray))

325 shading flat

326 xlabel('k')

327 ylabel('p')

328

329 figure

330 mesh(imag(Sdem_F2./max(max(Sdem_F2))));

331 set(gca,'fontsize',30);

332 xlhand = get(gca,'title'),

333 set(xlhand,'string','BGISAR signal imaginary

334 part','fontsize',30)

335 colormap(flipud(gray))

336 shading flat

337 xlabel('k')

338 ylabel('p')

339

340 figure

341 mesh(real(Skor2./max(max(Skor2))));

342 set(gca,'fontsize',30);xlhand = get(gca,'title'),

343 set(xlhand,'string','BGISAR signal by correlation real

344 part','fontsize',30)

345 colormap(flipud(gray))

346 shading flat

347 xlabel('k')

348 ylabel('p')

349

350 figure

351 mesh(imag(Skor2./max(max(Skor2))));

352 set(gca,'fontsize',30);xlhand = get(gca,'title'),

353 set(xlhand,'string','BGISAR signal by correlation

354 imaginary part','fontsize',30)

355 colormap(flipud(gray))

356 shading flat

357 xlabel('k')

358 ylabel('p')

359

360 A1=fft(Skor2);

361

362 figure

363 mesh(real(A1./max(max(A1))));

364 set(gca,'fontsize',30);xlhand = get(gca,'title'),

365 set(xlhand,'string','Azimuth compressed BGISAR signal

366 by FFT real part','fontsize',30)

367 colormap(flipud(gray))

368 shading flat

369 xlabel('k')

370 ylabel('p')

371 figure

372 mesh(imag(A1./max(max(A1))));

373 set(gca,'fontsize',30);xlhand = get(gca,'title'),

374 set(xlhand,'string','Azimuth compressed BGISAR signal

375 by FFT imaginary part','fontsize',30)

376 colormap(flipud(gray))

377 shading flat

378 xlabel('k')

379 ylabel('p')

380 A3=fftshift((fft(Skor2)));

381 figure

382 mesh(real(A3./max(max(A3)))); set(gca,'fontsize',30);

383 xlhand = get(gca,'title'),

384 set(xlhand,'string','BGISAR signal by frequency

385 domain shift – real part','fontsize',30)

386 colormap(flipud(gray))

387 shading flat

388 xlabel('p')

389 ylabel('k')

390 figure

391 mesh(imag(A3./max(max(A3))));

392 set(gca,'fontsize',30);xlhand = get(gca,'title'),

393 set(xlhand,'string','BGISAR signal by frequency

394 domain shift – imaginary part','fontsize',30)

395 colormap(flipud(gray))

396 shading flat

397 xlabel('p')

398 ylabel('k')

399 xx=find(Sfoc2>=0.29*max(max(Sfoc2)));

400 Sfoc2(xx)=0.29*(max(max(Sfoc2)));

401 figure

402 pcolor(Sfoc2);

403 set(gca,'fontsize',30);xlhand = get(gca,'title'),

404 set(xlhand,'string','BGISAR target focused image for

405 a_2=49, H_s=0.929','fontsize',30)

406 colormap(flipud(gray))

407 shading flat

408 xlabel('p')

409 ylabel('k')

410 axis([0 80 240 300 ])

411 foc=Sfoc2/max(max(Sfoc2));

412 figure

413 mesh(foc);

414 set(gca,'fontsize',30);xlhand = get(gca,'title'),

415 set(xlhand,'string','BGISAR target focused image for

416 a_2=49, H_s=0.929','fontsize',30)

417 colormap(flipud(gray))

418 shading flat

419 xlabel('p')

420 ylabel('k')

7.3. BFISAR imaging by short pulses

1 clear all, close all

2

3 disp('Short pulse target evaluation procedure has been

4 started')

5

6 load object.mat

7 num=length(xyz);

8

9 xrs= input(’Enter transmitter x coordinate: ’);

10 yrs= input(’Enter transmitter y coordinate: ’);

11 zrs= input(’Enter transmitter z coordinate: ’);

12

13 xrr= input(’Enter receiver x coordinate: ’);

14 yrr= input(’Enter receiver y coordinate: ’);

15 zrr= input(’Enter receiver z coordinate: ’);

16

17 x0= input(’Enter reference plane x coordinate: ’);

18 y0= input(’Enter reference plane y coordinate: ’);

19 z0= input(’Enter reference plane z coordinate: ’);

20 x00= input(’Enter mass centre x coordinate: ’);

21 y00= input(’Enter mass centre y coordinate: ’);

22 z00= input(’Enter mass centre z coordinate: ’);

23

24 delta= input(’Enter inter point distance: ’);

25

26 N= input(’Enter number of pulses: ’);

27

28 a= input(’Enter point reflection coefficient: ’);

29 f= input(’Enter carrier frequency: ’);

30 Tp= input(’Enter pulse repetition period: ’);

31

32 c=3*10^8;

33 lambda=c/f;

34

35 alpha= input(’Enter velocity angle on x axis: ’);

36 beta= input(’Enter velocity angle on y axis: ’);

37 gama=abs(acos(sqrt(1-(cos(alpha))^2-(cos(beta))^2)));

38 galpha=pi/2;

39 V= input(’Enter velocity: ’);

40

41 Vx=V*cos(alpha);

42 Vy=V*cos(beta);

43 Vz=V*cos(gama);

44

45 A0=Vz*(y00-y0)-Vy*(z00-z0);

46 B0=Vx*(z00-z0)-Vz*(x00-x0);

47 C0=Vy*(x00-x0)-Vx*(y00-y0);

48 D=(A0)^2+(B0)^2+(C0)^2;

49

50 Ag=(A0*V*cot(galpha)+C0*Vy-B0*Vz)/D;

51 Bg=(B0*V*cot(galpha)+A0*Vz-C0*Vx)/D;

52 Cg=(C0*V*cot(galpha)+B0*Vx-A0*Vy)/D;

53 D1=(Ag)^2+(Bg)^2+(Cg)^2;

54

55 psi=atan(-Ag/Bg);

56 theta=acos(Cg/sqrt(D1));

57 phi=acos((Vx*Bg-

58 -Vy*Ag)*sqrt(((Ag)^2+(Bg)^2)*((Vx)^2+(Vy)^2)+(Vz)^2));

59

60 a11=cos(psi)*cos(phi)-sin(psi)*cos(theta)*sin(phi);

61 a12=-cos(psi)*sin(phi)-sin(psi)*cos(theta)*cos(phi);

62 a13=sin(psi)*sin(theta);

63 a21=sin(phi)*cos(phi)+cos(psi)*cos(theta)*sin(phi);

64 a22=-sin(psi)*sin(phi)+cos(psi)*cos(theta)*cos(phi);

65 a23=-cos(psi)*sin(theta); a31=sin(theta)*sin(phi);

66 a32=sin(theta)*cos(phi); a33=cos(theta);

67

68 A_rot=[a11 a12 a13; a21 a22 a23; a31 a32 a33];

69 transf_xyz=delta.*A_rot*xyz;

70

71 p_v=(0:N-1);

72

73 Xs=kron(x00,ones(num,N))- kron(xrs,ones(num,N))+

74 +kron(Vx*(N/2-p_v)*Tp,ones(num,1))+

75 +kron(transf_xyz(1,:),ones(N,1)).';

76 Ys=kron(y00,ones(num,N))-

77 kron(yrs,ones(num,N))+kron(Vy*(N/2-p_v)*Tp,ones(num,1))

78 +kron(transf_xyz(2,:),ones(N,1)).';

79 Zs=kron(z00,ones(num,N))-kron(zrs,ones(num,N))

80 +kron(Vz*(N/2-p_v)*Tp,ones(num,1))+

81 +kron(transf_xyz(3,:),ones(N,1)).';

82

83 Xr=kron(xrr,ones(num,N))-

84 kron(x00,ones(num,N))+kron(Vx*(N/2-

85 p_v)*Tp,ones(num,1))+

86 kron(transf_xyz(1,:),ones(N,1)).';

87 Yr=kron(yrr,ones(num,N))-

88 kron(y00,ones(num,N))+kron(Vy*(N/2-

89 p_v)*Tp,ones(num,1))+kron(transf_xyz(2,:),ones(N,1)).';

90 Zr=kron(zrr,ones(num,N))-kron(z00,ones(num,N))+

91 +kron(Vz*(N/2-p_v)*Tp,ones(num,1))+

92 kron(transf_xyz(3,:),ones(N,1)).';

93

94 Rs=sqrt((Xs).^2+(Ys).^2); Rr=sqrt((Xr).^2+(Yr).^2);

95

96 r1=(Rs+Rr);

97

98 p_help=(0:N-1);

99

100 %complex signal calculation

101 func=zeros;

102 rect=zeros;

103 Sr=zeros(num,N);

104 I=zeros(num,N);

105 S=zeros(num,N,1);

106 mint=zeros(N);

107 check=1;

108 bphase=0;

109 count=0;

110

111 for p=1:N

112

113 for q=1:num

114

114 S(q,p)=S(q,p)+exp(1j.*4.*pi.*r1(q,p)./lambda);

115 I(q,p)=I(p)+S(p)*exp(1j*(4*pi*r1(q,p)/lambda));

136_1.gif

137_1.gif

134 Sim=sum(Sr,1);

135 A=abs(Sim);

136 P=phase(Sim);

137 Punwr=unwrap(P);

138 R=lambda.*Punwr./2.*pi;

139 r1=R(600);

140 r2=R(601);

141 r3=R(602);

142 V1=sqrt(((r1)^2+(r3)^2-2*(r2)^2)/2)/Tp;

143 thet=asin(((R(2))^2+(V*Tp)^2-(R(1))^2)/2*R(2)*(V*Tp));

144 alph=asin(V*Tp*sin(thet)/R(1));

145

146

147 figure

148 plot(real(fft(I1)))

149 figure

150 plot(imag(fft(I1)))

151 figure

152 plot(abs(fft(I1)))

153 figure

154 plot(abs(fftshift(fft(I1))))

7.4. Continuous linear frequency modulated waveform generation

1 clear all, close all

2 N= input(’Enter number of pulses: ’);

3 K= input(’Enter number of range resolution cells: ’);

4

5 f= input(’Enter carrier frequency: ’);

6 Tpp= input(’Enter pulse repetition period: ’);

7 T= input(’Enter pulse duration: ’);

8 step=5*T;

9 deltaF= input(’Enter frequency bandwidth: ’);

10 omega=2*pi*f;

11 c=3*10^8;

12

13 b=2*pi*deltaF/T;

14 deltaT=T/K;

15 S=zeros;

16 S2=zeros;

138_1.gif

7.5. Pulse LFM waveform generation

1 clear all, close all

2

3 K= input(’Enter number of range resolution cells: ’);

4 pulse= input(’Enter number of pulses: ’);

5 pause= input(’Enter number of pauses: ’);

6 f= input(’Enter carrier frequency: ’);

7 T= input(’Enter pulse duration: ’);

8 step=T/10^-3;

9 axs=(pulse+pause)*step;

10 Tp=n*T;

11 deltaF= input(’Enter frequency bandwidth: ’);

12 omega=2*pi*f;

13 c=3*10^8;

14 b=2*pi*deltaF/T;

15 deltaT=1/f/K;

16 S=zeros;

17 S2=zeros;

18

19 for k=1:K

138_2.gif

139_1.gif

28 figure

29 plot(axs/((pulse+pause*n)*length(S)):axs/((pulse+

30 +pause*n)*length(S)):axs,

31 imag([S NaN*ones(1,3*length(S)) S]),

32 'k','linewidth',1),set(gca,'fontsize',30),

33 xlhand = get(gca,'title'),

34 set(xlhand,'string','Linear Frequency Pulse Modulated

35 Signal','fontsize',30)

36 xlabel('Time, ms')

37 ylabel('Amplitude, V')

38 axis([0 axs -1 1])

7.6. BFISAR imaging by pulse LFM waveform

1 clear all, close all

2

3 load ship.mat

4 num=length(xyz);

5

6 xrs= input(’Enter transmitter x coordinate: ’);

7 yrs= input(’Enter transmitter y coordinate: ’);

8 zrs= input(’Enter transmitter z coordinate: ’);

9

10 xrr= input(’Enter receiver x coordinate: ’);

11 yrr= input(’Enter receiver y coordinate: ’);

12 zrr= input(’Enter receiver z coordinate: ’);

13

14 x0= input(’Enter reference plane x coordinate: ’);

15 y0= input(’Enter reference plane y coordinate: ’);

16 z0= input(’Enter reference plane z coordinate: ’);

17

18 x00= input(’Enter mass centre x coordinate: ’);

19 y00= input(’Enter mass centre y coordinate: ’);

20 z00= input(’Enter mass centre z coordinate: ’);

21

22 N= input(’Enter number of pulses: ’);

23 K= input(’Enter number of range resolution cells: ’);

24 k=1:K;

25

26 f= input(’Enter carrier frequency: ’);

27 Tp= input(’Enter pulse repetition period: ’);

28 T= input(’Enter pulse duration: ’);

29 deltaF= input(’Enter frequency bandwidth: ’);

30 omega=2*pi*f;

31 c=3*10^8;

32 b=2*pi*deltaF/T;

33 deltaT=T/K;

34 a= input(’Enter point reflection coefficient: ’);

35

36 alpha= input(’Enter velocity angle on x axis: ’);

37 beta= input(’Enter velocity angle on y axis: ’);

38 gama=abs(acos(sqrt(1-(cos(alpha))^2-(cos(beta))^2)));

39 galpha=pi/2;

40

41 V= input(’Enter velocity: ’);

42

43 Vx=V*cos(alpha);

44 Vy=V*cos(beta);

45 Vz=V*cos(gama);

46

47 S=zeros(N,K,num);

48

49 delta= input(’Enter inter point distance: ’);

50

51 A0=Vz*(y00-y0)-Vy*(z00-z0);

52 B0=Vx*(z00-z0)-Vz*(x00-x0);

53 C0=Vy*(x00-x0)-Vx*(y00-y0);

54 D=(A0)^2+(B0)^2+(C0)^2;

55

56 Ag=(A0*V*cot(galpha)+C0*Vy-B0*Vz)/D;

57 Bg=(B0*V*cot(galpha)+A0*Vz-C0*Vx)/D;

58 Cg=(C0*V*cot(galpha)+B0*Vx-A0*Vy)/D;

59 D1=(Ag)^2+(Bg)^2+(Cg)^2;

60

61 psi=atan(-Ag/Bg);

62 theta=acos(Cg/sqrt(D1));

63 phi=acos((Vx*Bg-Vy*Ag)*sqrt(((Ag)^2+(Bg)^2)*((Vx)^2+

64 +(Vy)^2)+(Vz)^2));

65

66 a11=cos(psi)*cos(phi)-sin(psi)*cos(theta)*sin(phi);

67 a12=-cos(psi)*sin(phi)-sin(psi)*cos(theta)*cos(phi);

68 a13=sin(psi)*sin(theta);

69 a21=sin(phi)*cos(phi)+cos(psi)*cos(theta)*sin(phi);

70 a22=-sin(psi)*sin(phi)+cos(psi)*cos(theta)*cos(phi);

71 a23=-cos(psi)*sin(theta);

72 a31=sin(theta)*sin(phi);

73 a32=sin(theta)*cos(phi);

74 a33=cos(theta);

75

76 A_rot=[a11 a12 a13; a21 a22 a23; a31 a32 a33];

77

78 transf_xyz=(A_rot)*xyz;

79 p_v=(0:N-1);

80

81 Xs=abs(-kron(x00,ones(num,N))+kron(xrs,ones(num,N))-

82 -kron(Vx*(N/2-p_v)*Tp,ones(num,1))+

83 +kron(transf_xyz(1,:),ones(N,1)).'),

84 Ys=abs(-kron(y00,ones(num,N))+

85 +kron(yrs,ones(num,N))-kron(Vy*(N/2-

86 -p_v)*Tp,ones(num,1))+

87 +kron(transf_xyz(2,:),ones(N,1)).'),

88 Zs=abs(-kron(z00,ones(num,N))+kron(zrs,ones(num,N))-

89 -kron(Vz*(N/2-p_v)*Tp,ones(num,1))+

90 +kron(transf_xyz(3,:),ones(N,1)).'),

91 Xr=abs(kron(xrr,ones(num,N))-kron(x00,ones(num,N))-

92 -kron(Vx*(N/2-p_v)*Tp,ones(num,1))-

93 -kron(transf_xyz(1,:),ones(N,1)).'),

94 Yr=abs(kron(yrr,ones(num,N))-kron(y00,ones(num,N))-

95 -kron(Vy*(N/2-p_v)*Tp,ones(num,1))-

96 -kron(transf_xyz(2,:),ones(N,1)).'),

97 Zr=abs(kron(zrr,ones(num,N))-kron(z00,ones(num,N))-

98 -kron(Vz*(N/2-p_v)*Tp,ones(num,1))-

99 -kron(transf_xyz(3,:),ones(N,1)).'),

100

101 Rs=abs(sqrt((Xs).^2+(Ys).^2+(Zs).^2));

102 Rr=abs(sqrt((Xr).^2+(Yr).^2+(Zr).^2));

103 t=(Rs+Rr)./c;

141_1.gif

142_1.gif

121 A1=fft(Skor);

122 A2=fftshift(A1);

123 absolute=abs(A2);

124

125 figure

126 mesh(real(S))

127 title(['BFISAR signal real part for x_0_0='

128 num2str(x00) 'm', ' y_0_0=' num2str(y00) 'm', '

129 z_0_0=' num2str(z00) 'm',]);set(gca,'fontsize',20)

130 xlhand = get(gca,'title'),

131 set(xlhand,'string','BFISAR signal real

132 part','fontsize',20)

133 colormap(flipud(gray))

134 shading flat

135 xlabel('k')

136 ylabel('p')

137

138 figure

139 mesh(imag(S))

140 title(['BFISAR signal imaginary part for x_0_0='

141 num2str(x00) 'm', ' y_0_0=' num2str(y00) 'm', '

142 z_0_0=' num2str(z00) 'm',]);set(gca,'fontsize',20)

143 xlhand = get(gca,'title'),

144 set(xlhand,'string','BFISAR signal real

145 part','fontsize',20)

146 colormap(flipud(gray))

147 shading flat

148 xlabel('k')

149 ylabel('p')

150

151 figure

152 mesh(real(S2));set(gca,'fontsize',20);

153 xlhand = get(gca,'title'),

154 set(xlhand,'string','BFISAR signal real

155 part','fontsize',20)

156 colormap(flipud(gray))

157 shading flat

158 xlabel('k')

159 ylabel('p')

160

161 figure

162 mesh(imag(S2))

163 title(['Demodulated BFISAR signal imaginary part for

164 x_0_0=' num2str(x00) 'm', ' y_0_0=' num2str(y00)

165 'm', ' z_0_0=' num2str(z00)

166 'm',]);set(gca,'fontsize',20)

167 xlhand = get(gca,'title'),

168 set(xlhand,'string','BFISAR signal real

169 part','fontsize',20)

170 colormap(flipud(gray))

171 shading flat

172 xlabel('k')

173 ylabel('p')

174

175 figure

176 mesh(real(A1))

177 title(['Range compressed BFISAR signal by FFT – real

178 part for x_0_0=' num2str(x00) 'm', ' y_0_0='

179 num2str(y00) 'm', ' z_0_0=' num2str(z00)

180 'm',]);set(gca,'fontsize',20)

181 xlhand = get(gca,'title'),

182 set(xlhand,'string','BFISAR signal real

183 part','fontsize',20)

184 colormap(flipud(gray))

185 shading flat

186 xlabel('k')

187 ylabel('p')

188

189 figure

190 mesh(imag(A1))

191 title(['Range compressed BFISAR signal by FFT -

192 imaginary part for x_0_0=' num2str(x00) 'm', '

193 y_0_0=' num2str(y00) 'm', ' z_0_0=' num2str(z00)

194 'm',]);set(gca,'fontsize',20)

195 xlhand = get(gca,'title'),

196 set(xlhand,'string','BFISAR signal real

197 part','fontsize',20)

198 colormap(flipud(gray))

199 shading flat

200 xlabel('k')

201 ylabel('p')

 

202 figure

203 mesh(real(A2))

204 title(['Azimuth compressed BFISAR signal by FFT -

205 real part for x_0_0=' num2str(x00) 'm', ' y_0_0 =

206 ' num2str(y00) 'm', ' z_0_0=' num2str(z00)

207 'm',]);set(gca,'fontsize',20)

208 xlhand = get(gca,'title'),

209 set(xlhand,'string','BFISAR signal real

210 part','fontsize',20)

211 colormap(flipud(gray))

212 shading flat

213 xlabel('p')

214 ylabel('k')

215

216 figure

217 mesh(imag(A2))

218 title(['Azimuth compressed BFISAR signal by FFT -

219 imaginary part for x_0_0=' num2str(x00) 'm', '

220 y_0_0=' num2str(y00) 'm', ' z_0_0=' num2str(z00)

221 'm',]);set(gca,'fontsize',20)

222 xlhand = get(gca,'title'),

223 set(xlhand,'string','BFISAR signal real

224 part','fontsize',20)

225 colormap(flipud(gray))

226 shading flat

227 xlabel('p')

228 ylabel('k')

229

230 figure

231 mesh(real(A3))

232 title(['BFISAR signal by frequency domain shift -

233 real part for x_0_0=' num2str(x00) 'm', ' y_0_0 =

234' num2str(y00) 'm', ' z_0_0=' num2str(z00)

235 'm',]);set(gca,'fontsize',20)

236 xlhand = get(gca,'title'),

237 set(xlhand,'string','BFISAR signal real

238 part','fontsize',20)

239 colormap(flipud(gray))

240 shading flat

241 xlabel('p')

242 ylabel('k')

243 figure

244 mesh(imag(A3))

245 title(['BFISAR signal by frequency domain shift -

247 imaginary part for x_0_0=' num2str(x00) 'm',

248 ' y_0_0=' num2str(y00) 'm', ' z_0_0='

249 num2str(z00) 'm',]);set(gca,'fontsize',20)

250 xlhand = get(gca,'title'),

251 set(xlhand,'string','BFISAR signal real

252 part','fontsize',20)

253 colormap(flipud(gray))

254 shading flat

255 xlabel('p')

256 ylabel('k')

7.7. GPS coarse acquisition phase code modulated waveform generation

145_1.gif

146_1.gif

7.8. BGSAR imaging by GPS C/A PCM waveform

1 clear all, close all

2

3 load CAcode.mat

4 load object.mat

5 num=max(size(xyz));

6

7 xrs= input(’Enter transmitter x coordinate: ’);

8 yrs= input(’Enter transmitter y coordinate: ’);

9 zrs= input(’Enter transmitter z coordinate: ’);

10

11 xrr= input(’Enter receiver x coordinate: ’);

12 yrr= input(’Enter receiver y coordinate: ’);

13 zrr= input(’Enter receiver z coordinate: ’);

14

15 x0= input(’Enter reference plane x coordinate: ’);

16 y0= input(’Enter reference plane y coordinate: ’);

17 z0= input(’Enter reference plane z coordinate: ’);

18

19 x00= input(’Enter mass centre x coordinate: ’);

20 y00= input(’Enter mass centre y coordinate: ’);

21 z00= input(’Enter mass centre z coordinate: ’);

22

23 delta= input(’Enter inter point distance: ’);

24

25 N= input(’Enter number of pulses: ’);

26

27 a= input(’Enter point reflection coefficient: ’);

28 f= input(’Enter carrier frequency: ’);

29 Tp= input(’Enter pulse repetition period: ’);

30

31 omega=2*pi*f;

32 c=3*10^8;

33

34 alpha= input(’Enter velocity angle on x axis: ’);

35 beta= input(’Enter velocity angle on y axis: ’);

36 gama=real(acos(sqrt(1-(cos(alpha))^2-

37 -(cos(beta))^2)));

38 galpha=pi/2;

39 V= input(’Enter velocity: ’);

40

41 Vx=V*cos(alpha);

42 Vy=V*cos(beta);

43 Vz=V*cos(gama);

44

45 A0=Vz*(y00-y0)-Vy*(z00-z0);

46 B0=Vx*(z00-z0)-Vz*(x00-x0);

47 C0=Vy*(x00-x0)-Vx*(y00-y0);

48 D=(A0)^2+(B0)^2+(C0)^2;

49

50 Ag=(A0*V*cot(galpha)+C0*Vy-B0*Vz)/D;

51 Bg=(B0*V*cot(galpha)+A0*Vz-C0*Vx)/D;

52 Cg=(C0*V*cot(galpha)+B0*Vx-A0*Vy)/D;

53 D1=(Ag)^2+(Bg)^2+(Cg)^2;

54

55 psi=atan(-Ag/Bg);

56 theta=acos(Cg/sqrt(D1));

57 phi=acos((Vx*Bg-Vy*Ag)*sqrt(((Ag)^2+(Bg)^2)*((Vx)^2+

58 +(Vy)^2)+(Vz)^2));

59

60 a11=cos(psi)*cos(phi)-sin(psi)*cos(theta)*sin(phi);

61 a12=-cos(psi)*sin(phi)-sin(psi)*cos(theta)*cos(phi);

62 a13=sin(psi)*sin(theta);

63 a21=sin(phi)*cos(phi)+cos(psi)*cos(theta)*sin(phi);

64 a22=-sin(psi)*sin(phi)+cos(psi)*cos(theta)*cos(phi);

65 a23=-cos(psi)*sin(theta);

66 a31=sin(theta)*sin(phi);

67 a32=sin(theta)*cos(phi);

68 a33=cos(theta);

69

70 A_rot=[a11 a12 a13; a21 a22 a23; a31 a32 a33];

71

72 transf_xyz=delta.*A_rot*xyz;

73

74 p_v=(0:N-1);

75 Xs=kron(x00,ones(num,N))-kron(xrs,ones(num,N))+

76 +kron(Vx*(N/2-p_v)*Tp,ones(num,1))+

77 +kron(transf_xyz(1,:),ones(N,1)).';

78 Ys=kron(y00,ones(num,N))-kron(yrs,ones(num,N))+

79 +kron(Vy*(N/2-p_v)*Tp,ones(num,1))+

80 +kron(transf_xyz(2,:),ones(N,1)).';

81 Zs=kron(z00,ones(num,N))-kron(zrs,ones(num,N))+

82 +kron(Vz*(N/2-p_v)*Tp,ones(num,1))+

83 +kron(transf_xyz(3,:),ones(N,1)).';

84

85 Xr=kron(xrr,ones(num,N))-kron(x00,ones(num,N))+

86 +kron(Vx*(N/2-p_v)*Tp,ones(num,1))+

87 +kron(transf_xyz(1,:),ones(N,1)).';

88 Yr=kron(yrr,ones(num,N))-kron(y00,ones(num,N))+

89 +kron(Vy*(N/2-p_v)*Tp,ones(num,1))+

90 +kron(transf_xyz(2,:),ones(N,1)).';

91 Zr=kron(zrr,ones(num,N))-kron(z00,ones(num,N))+

92 +kron(Vz*(N/2-p_v)*Tp,ones(num,1))+

93 +kron(transf_xyz(3,:),ones(N,1)).';

94

95 Rs=sqrt((Xs).^2+(Ys).^2+(Zs).^2);

96 Rr=sqrt((Xr).^2+(Yr).^2+(Zr).^2);

97 t1=(Rs+Rr)./c;

98

99 Nt=size(code,2);

100 Ns=size(code,1);

101 Nk=Nt*Ns;

102

103 Ts= input(’Enter segment duration: ’);

104 T=Ns*Ts;

105 deltaT=T/Nk;

106

107 p_help=(0:N-1);

108

109 t=sort(sort(t1));

110

111 Nx=ceil((max(max(t))-min(min(t)))/deltaT);

112

113 E1=zeros(N,Nx+1,num);

114 func=zeros;

115 rect=zeros;

116 S1=zeros(N,Nx,num);

117 S=zeros(N,Nx,1);

118 mint=zeros(N);

149_1.gif

163 title('S_p_k matrix real component')

164 colormap(flipud(gray))

165 shading flat

166 xlabel('k')

167 ylabel('p')

168

169 figure

170 mesh(imag(S))

171 title('S_p_k matrix imaginary component')

172 colormap(flipud(gray))

173 shading flat

174 xlabel('k')

175 ylabel('p')

176

177 figure

178 plot(real(Sop))

179 title('S_p_k matrix of the referent signal real

180 part')

181 colormap(flipud(gray))

182 shading flat

183 xlabel('k')

184 ylabel('p')

185

186 figure

187 plot(imag(Sop))

188 title('S_p_k matrix of the referent signal imaginary

189 part')

190 colormap(flipud(gray))

191 shading flat

192 xlabel('k')

193 ylabel('p')

194

195 figure

196 mesh(real(Skor))

197 title('S_p_k matrix real part after correlation')

198 colormap(flipud(gray))

199 shading flat

200 xlabel('k')

201 ylabel('p')

202 figure

203 mesh(imag(Skor))

204 title('S_p_k matrix imaginary part after correlation')

205 colormap(flipud(gray))

206 shading flat

207 xlabel('k')

208 ylabel('p')

209

210 figure

211 mesh(real(A1))

212 title('S_p_k matrix real part after FFT')

213 colormap(flipud(gray))

214 shading flat

215 xlabel('k')

216 ylabel('p')

217

218 figure

219 mesh(imag(A1))

220 title('S_p_k matrix imaginary part after FFT')

221 colormap(flipud(gray))

222 shading flat

223 xlabel('k')

224 ylabel('p')

225

226 figure

227 mesh(real(A3))

228 title('S_p_k matrix real part after frequency domain

229 shift')

230 colormap(flipud(gray))

231 shading flat

232 xlabel('k')

233 ylabel('p')

234

235 figure

236 mesh(imag(A3))

237 title('S_p_k matrix imaginary part after frequency

238 domain shift')

239 colormap(flipud(gray))

240 shading flat

241 xlabel('k')

242 ylabel('p')

243 figure

244 pcolor(absolute)

245 title('Helicopter image')

246 colormap(flipud(gray))

247 shading flat

248 xlabel('k')

249 ylabel('p')

7.9. GPS precision phase code modulated waveform generation

1 function seq=pcodealgorithm(delay)

2

3 while delay<0||delay>37

4 display('Please enter integer value for the delay

5 between 1 and 37 chips')

6 delay=input(''),

7 end

8

9  A=[0 0 1 0 0 1 0 0 1 0 0 0];

10 B=[0 1 0 1 0 1 0 1 0 1 0 0];

11 C=[1 0 0 1 0 0 1 0 0 1 0 1];

12 D=[0 1 0 1 0 1 0 1 0 1 0 0];

13

14 X1A=A; X1B=B; X2A =C; X2B=D;

15

16 X2=0;

17 seq=zeros;

18

19 p=6.1871*10^12;

20

21 for c=1:p

152_1.gif

153_1.gif

7.10. BGISAR imaging by GPS P PCM waveform

1 clear all, close all

2

3 disp(‘P – code target evaluation procedure has been

4 started’)

5

6 load Object.mat

7 load Pcode.mat

8

9 num=length(xyz);

10

11 xrs= input(‘Enter transmitter x coordinate: ‘);

12 yrs= input(‘Enter transmitter y coordinate: ‘);

13 zrs= input(‘Enter transmitter z coordinate: ‘);

14 xrr= input(‘Enter receiver x coordinate: ‘);

15 yrr= input(‘Enter receiver y coordinate: ‘);

16 zrr= input(‘Enter receiver z coordinate: ‘);

17

18 x0= input(‘Enter reference plane x coordinate: ‘);

19 y0= input(‘Enter reference plane y coordinate: ‘);

20 z0= input(‘Enter reference plane z coordinate: ‘);

21

22 x00= input(‘Enter mass centre x coordinate: ‘);

23 y00= input(‘Enter mass centre y coordinate: ‘);

24 z00= input(‘Enter mass centre z coordinate: ‘);

25 delta= input(‘Enter inter point distance: ‘);

26

27 N= input(‘Enter number of pulses: ‘);

28 K= input(‘Enter number of range resolution cells: ‘);

29

30 a= input(‘Enter point reflection coefficient: ‘);

31 f= input(‘Enter carrier frequency: ‘);

32 Tp= input(‘Enter pulse repetition period: ‘);

33 omega=2*pi*f;

34 c=3*10^8;

35 Ts= input(‘Enter segment duration: ‘);

36 T=Ns*Ts;

37 deltaT=T/Nk;

38 alpha= input(‘Enter velocity angle on x axis: ‘);

39 beta= input(‘Enter velocity angle on y axis: ‘);

40 gama=abs(acos(sqrt(1-(cos(alpha))^2-(cos(beta) ) ^2) ) );

41

42 galpha=pi/2;

43 Nf= input(‘Enter number of iterations: ‘);

44

45 a21=0;

46 delta2= input(‘Enter coefficient a2 step: ‘);

47 V= input(‘Enter velocity: ‘);

48

49 Vx=V*cos(alpha);

50 Vy=V*cos(beta);

51 Vz=V*cos(gama);

52

53 A0=Vz*(y00-y0)-Vy*(z00-z0);

54 B0=Vx*(z00-z0)-Vz*(x00-x0);

55 C0=Vy*(x00-x0)-Vx*(y00-y0);

56 D=(A0)^2+(B0)^2+(C0)^2;

57

58 Ag=(A0*V*cot(galpha)+C0*Vy-B0*Vz)/D;

59 Bg=(B0*V*cot(galpha)+A0*Vz-C0*Vx)/D;

60 Cg=(C0*V*cot(galpha)+B0*Vx-A0*Vy)/D;

61 D1=(Ag)^2+(Bg)^2+(Cg)^2;

62

63 psi=atan(-Ag/Bg);

64 theta=acos(Cg/sqrt(D1));

65 phi=acos((Vx*Bg-Vy*Ag)*sqrt(((Ag)^2+(Bg)^2)*((Vx)^2+

66 +(Vy)^2)+(Vz)^2));

67

68 a11=cos(psi)*cos(phi)-sin(psi)*cos(theta)*sin(phi);

69 a12=-cos(psi)*sin(phi)-sin(psi)*cos(theta)*cos(phi);

70 a13=sin(psi)*sin(theta);

71 a21=sin(phi)*cos(phi)+cos(psi)*cos(theta)*sin(phi);

72 a22=-sin(psi)*sin(phi)+cos(psi)*cos(theta)*cos(phi);

73 a23=-cos(psi)*sin(theta);

74 a31=sin(theta)*sin(phi);

75 a32=sin(theta)*cos(phi);

76 a33=cos(theta);

77

78 A_rot=[a11 a12 a13; a21 a22 a23; a31 a32 a33];

79 transf_xyz=delta.*A_rot*xyz;

80 p_v=(0:N-1);

81 Xs=kron(xrs,ones(num,N))-kron(Vx.*(N/2-

82 -p_v).*Tp,ones(num,1))-kron(xyz(1,:),ones(N,1)).';

83 Ys=kron(yrs,ones(num,N))-kron(Vy.*(N/2-

84 -p_v).*Tp,ones(num,1))-kron(xyz(2,:),ones(N,1)).';

85 Zs=kron(zrs,ones(num,N))-kron(Vz.*(N/2-

86 -p_v).*Tp,ones(num,1))-kron(xyz(3,:),ones(N,1)).';

87

88 Xr=kron(xrr,ones(num,N))-kron(xyz(1,:),ones(N,1)).';

89 Yr=kron(yrr,ones(num,N))-kron(xyz(2,:),ones(N,1)).';

90 Zr=kron(zrr,ones(num,N))-kron(xyz(3,:),ones(N,1)).';

91

92 Rs=sqrt((Xs).^2+(Ys).^2+(Zs).^2);

93 Rr=sqrt((Xr).^2+(Yr).^2+(Zr).^2);

94

95 t1=(Rs+Rr)./c;

96 t=sort(sort(t1));

97

98 Nt=size(P_code,2);

99 Ns=size(P_code,1);

100 Nk=Nt*Ns;

101

102 p_help=(0:N-1);

103

104 Nx=ceil((max(max(t))-min(min(t)))/Ts); %

105 E1=zeros(N,K+1,num);

106 func=zeros;

107 rect=zeros;

108 S=zeros(N,Nk);

109 mint=zeros(N);

110 check=1;

111 bphase=0;

112 count=0;

113

156_1.gif

150 end

151 for p=1:N

152 Skor(p,:)=xcorr(S(p,:),Sop);

153 end

154 toc

155 A1=fft(Skor);

156 A3=fftshift(A1);

157 absolute=abs(A3);

158

159 figure

160 mesh(real(S./max(max(S))))

161 title('BGISAR signal real part'),

162 set(gca,'fontsize',30);xlhand = get(gca,'title'),

163 set(xlhand,'string','BGISAR signal real

164 part','fontsize',30)

165 colormap(flipud(gray))

166 shading flat

167 xlabel('k')

168 ylabel('p')

169

170 figure

171 mesh(imag(S./max(max(S)))); set(gca,'fontsize',30);

172 xlhand = get(gca,'title'),

173 set(xlhand,'string','BGISAR signal imaginary

174 part','fontsize',30)

175 colormap(flipud(gray))

176 shading flat

177 xlabel('k')

178 ylabel('p')

179

180 figure

181 mesh(real(Skor./max(max(Skor))));

182 set(gca,'fontsize',30);xlhand = get(gca,'title'),

183 set(xlhand,'string','BGISAR signal by correlation real

184 part','fontsize',30)

185 colormap(flipud(gray))

186 shading flat

187 xlabel('k')

188 ylabel('p')

189

190 figure

191 mesh(imag(Skor./max(max(Skor))));

192 xlhand = get(gca,'title'),

193 set(xlhand,'string','BGISAR signal by correlation

194 imaginary part','fontsize',30)

195 colormap(flipud(gray))

196 shading flat

197 xlabel('k')

198 ylabel('p')

199

200 figure

201 mesh(real(A1./max(max(A1))));set(gca,'fontsize',30);

202 xlhand = get(gca,'title'),

203 set(xlhand,'string','Azimuth compressed BGISAR signal

204 by FFT real part','fontsize',30)

205 colormap(flipud(gray))

206 shading flat

207 xlabel('k')

208 ylabel('p')

209

210 figure

211 mesh(imag(A1./max(max(A1))));set(gca,'fontsize',30);

212 xlhand = get(gca,'title'),

213 set(xlhand,'string','Azimuth compressed BGISAR signal

214 by FFT imaginary part','fontsize',30)

215 colormap(flipud(gray))

216 shading flat

217 xlabel('k')

218 ylabel('p')

219

220 figure

221 mesh(real(A3./max(max(A3))));

222 xlhand = get(gca,'title'),

223 set(xlhand,'string','BGISAR signal by frequency

224 domain shift – real part','fontsize',30)

225 colormap(flipud(gray))

226 shading flat

227 xlabel('k')

228 ylabel('p')

229

230 figure

231 mesh(imag(A3./max(max(A3))));

232 xlhand = get(gca,'title'),

233 set(xlhand,'string','BGISAR signal by frequency

234 domain shift – imaginary part','fontsize',30)

235 colormap(flipud(gray))

236 shading flat

237 xlabel('k')

238 ylabel('p')

239 xx=find(absolute>=0.29*max(max(absolute)));

240 absolute(xx)=0.29*(max(max(absolute)));

241 figure

242 pcolor(absolute);xlhand = get(gca,'title'),

243 set(xlhand,'string','BGISAR target

244 image','fontsize',30)

245 colormap(flipud(gray))

246 shading flat

247 xlabel('k')

248 ylabel('p')

249 axis([0 80 240 300])

250

251 figure

252 mesh(absolute./max(max(absolute)));

253 xlhand = get(gca,'title'),

254 set(xlhand,'string','BGISAR target

255 image','fontsize',30)

256 colormap(flipud(gray))

257 shading flat

258 xlabel('k')

259 ylabel('p')

159_1.gif

160_1.gif

305 figure

306 mesh(real(Sdem_F2./max(max(Sdem_F2))));

307 xlhand = get(gca,'title'),

308 set(xlhand,'string','BGISAR signal real

309 part','fontsize',30)

310 colormap(flipud(gray))

311 shading flat

312 xlabel('k')

313 ylabel('p')

314

315 figure

316 mesh(imag(Sdem_F2./max(max(Sdem_F2))));

317 set(gca,'fontsize',30);

318 xlhand = get(gca,'title'),

319 set(xlhand,'string','BGISAR signal imaginary

320 part','fontsize',30)

321 colormap(flipud(gray))

322 shading flat

323 xlabel('k')

234 ylabel('p')

325

326 figure

327 mesh(real(Skor2./max(max(Skor2))));

328 set(gca,'fontsize',30);xlhand = get(gca,'title'),

329 set(xlhand,'string','BGISAR signal by correlation real

330 part','fontsize',30)

331 colormap(flipud(gray))

332 shading flat

333 xlabel('k')

334 ylabel('p')

335

336 figure

337 mesh(imag(Skor2./max(max(Skor2))));

338 set(gca,'fontsize',30);xlhand = get(gca,'title'),

339 set(xlhand,'string','BGISAR signal by correlation

340 imaginary part','fontsize',30)

341 colormap(flipud(gray))

342 shading flat

343 xlabel('k')

344 ylabel('p')

345

346 A1=fft(Skor2);

347

348 figure

349 mesh(real(A1./max(max(A1))));

350 set(gca,'fontsize',30);xlhand = get(gca,'title'),

351 set(xlhand,'string','Azimuth compressed BGISAR signal

352 by FFT real part','fontsize',30)

353 colormap(flipud(gray))

354 shading flat

355 xlabel('k')

356 ylabel('p')

357 figure

358 mesh(imag(A1./max(max(A1))));

359 set(gca,'fontsize',30);xlhand = get(gca,'title'),

360 set(xlhand,'string','Azimuth compressed BGISAR signal

361 by FFT imaginary part','fontsize',30)

362 colormap(flipud(gray))

363 shading flat

364 xlabel('k')

365 ylabel('p')

366 A3=fftshift((fft(Skor2)));

367 figure

368 mesh(real(A3./max(max(A3)))); set(gca,'fontsize',30);

369 xlhand = get(gca,'title'),

370 set(xlhand,'string','BGISAR signal by frequency

371 domain shift – real part','fontsize',30)

372 colormap(flipud(gray))

373 shading flat

374 xlabel('p')

375 ylabel('k')

376 figure

377 mesh(imag(A3./max(max(A3))));

378 set(gca,'fontsize',30);xlhand = get(gca,'title'),

379 set(xlhand,'string','BGISAR signal by frequency

380 domain shift – imaginary part','fontsize',30)

381 colormap(flipud(gray))

382 shading flat

383 xlabel('p')

384 ylabel('k')

385 xx=find(Sfoc2>=0.29*max(max(Sfoc2)));

386 Sfoc2(xx)=0.29*(max(max(Sfoc2)));

387 figure

388 pcolor(Sfoc2);

389 set(gca,'fontsize',30);xlhand = get(gca,'title'),

390 set(xlhand,'string','BGISAR target focused image for

391 a_2=49, H_s=0.929','fontsize',30)

392 colormap(flipud(gray))

393 shading flat

394 xlabel('p')

395 ylabel('k')

396 axis([0 80 240 300 ])

397 foc=Sfoc2/max(max(Sfoc2));

398 figure

399 mesh(foc);

400 set(gca,'fontsize',30);xlhand = get(gca,'title'),

401 set(xlhand,'string','BGISAR target focused image for

402 a_2=49, H_s=0.929','fontsize',30)

403 colormap(flipud(gray))

404 shading flat

405 xlabel('p')

406 ylabel('k')

7.11. Multistatic SAR imaging by pulse LFM waveform

1 clear all, close all

2 xyz= input(‘Enter points coordinates for example

3 [5 10 10 5; 5 5 10 25;10 10 10 10]: ‘);

4 num=length(xyz);

5

6 xrs= input(‘Enter transmitter x coordinate: ‘);

7 yrs= input(‘Enter transmitter y coordinate: ‘);

8 zrs= input(‘Enter transmitter z coordinate: ‘);

9

10 xrr= input(‘Enter receiver x coordinate: ‘);

11 yrr= input(‘Enter receiver y coordinate: ‘);

12 zrr= input(‘Enter receiver z coordinate: ‘);

13

14 delta= input(‘Enter inter point distance: ‘);

15

16 N= input(‘Enter number of pulses: ‘);

17 K= input(‘Enter number of range resolution cells: ‘);

18

19 f= input(‘Enter carrier frequency: ‘);

20 Tp= input(‘Enter pulse repetition period: ‘);

21 T= input(‘Enter pulse duration: ‘);

22 deltaF= input(‘Enter frequency bandwidth: ‘);

23 omega=2*pi*f;

24 c=3*10^8;

25

26 b=2*pi*deltaF/T;

27 deltaT=T/K;

28 a= input(‘Enter point reflection coefficient: ‘);

29

30 V= input(‘Enter velocity: ‘);;

31

32 Vx= input(‘Enter velocity coordinate on x axis: ‘);

33 Vy= input(‘Enter velocity coordinate on y axis: ‘);

34 Vz= input(‘Enter velocity coordinate on z axis: ‘);

35

36 p_v=(0:N-1);

37

38 Xs=kron(xrs,ones(num,N))-kron(Vx.*(N/2-

39 p_v).*Tp,ones(num,1))-kron(xyz(1,:),ones(1,N)).';

40 Ys=kron(yrs,ones(num,N))-kron(Vy.*(N/2-

41 p_v).*Tp,ones(num,1))-kron(xyz(2,:),ones(1,N)).';

42 Zs=kron(zrs,ones(num,N))-kron(Vz.*(N/2-

43 p_v).*Tp,ones(num,1))-kron(xyz(3,:),ones(1,N)).';

44

45 Xr=kron(xrr,ones(num,N))-kron(xyz(1,:),ones(1,N)).';

46 Yr=kron(yrr,ones(num,N))-kron(xyz(2,:),ones(1,N)).';

47 Zr=kron(zrr,ones(num,N))-kron(xyz(3,:),ones(1,N)).';

48

49 Rs=sqrt((Xs).^2+(Ys).^2+(Zs).^2);

50 Rr=sqrt((Xr).^2+(Yr).^2+(Zr).^2);

51

52 t1=(Rs+Rr)./c;

53 t=sort(t1);

164_1.gif

79 A1=fft(S);

80 A2=fft(transpose(A1));

81 A3=fftshift(A2);

82 absolute=abs(A3);

83

84

85 figure

86 mesh(real(S))

87 title(['BSAR signal real part'])

88 colormap(flipud(gray))

89 shading flat

90 xlabel('k')

91 ylabel('p')

92

93 figure

94 mesh(imag(S))

95 title(['BSAR signal imaginary part '])

96 colormap(flipud(gray))

97 shading flat

98 xlabel('k')

99 ylabel('p')

100

101 figure

102 mesh(real(A1))

103 title(['Range compressed BSAR signal by FFT

104 – real part '])

105 colormap(flipud(gray))

106 shading flat

107 xlabel('k')

108 ylabel('p')

109 figure

110 mesh(imag(A1))

111 title(['Range compressed BSAR signal by FFT – imaginary

112 part'])

113 colormap(flipud(gray))

114 shading flat

115 xlabel('k')

116 ylabel('p')

117

118 figure

119 mesh(real(A2))

120 title(['Azimuth compressed BSAR signal by FFT – real

121 part '])

122 colormap(flipud(gray))

123 shading flat

124 xlabel('p')

125 ylabel('k')

126

127 figure

128 mesh(imag(A2))

129 title(['Azimuth compressed BSAR signal by FFT –

130 imaginary part '])

131 colormap(flipud(gray))

132 shading flat

133 xlabel('p')

134 ylabel('k')

135

136 figure

137 mesh(real(A3))

138 title(['BSAR signal by frequency domain shift – real

139 part '])

140 colormap(flipud(gray))

141 shading flat

142 xlabel('p')

143 ylabel('k')

144

145 figure

146 mesh(imag(A3))

147 title(['BSAR signal by frequency domain shift –

148 imaginary part '])

149 colormap(flipud(gray))

150 shading flat

151 xlabel('p')

152 ylabel('k')

153

154 figure

155 mesh(absolute)

156 colormap(flipud(gray))

157 shading flat

158 title(['BFISAR image of a ship target '])

159 xlabel('p')

160 ylabel('k')

7.12. Isorange ellipse generation

1 clear all, close all

2

3 f=input(‘Enter base line length:‘);;

4 N= input(‘Enter number of ellipse:‘);

5 delta=5;

6

7 for n=1:N

8

9 deltax=(2*f + n*delta) ./ 100;

10

11 a=f + n*delta;

12 b=(2*f*n*delta + (n.*delta).^2).^0.5;

13

14 M=-(f + n*delta);

15 N=+(f + n*delta);

16

17 x=M:N;

18 y=(b.^2 * (1.0 – (x.^2 / a.^2))).^0.5;

19

20 figure(1), hold on;

21 plot(x,y,'k'), plot(x,-y,'k'),

22 scatter(-f,0,'k'), scatter(+f,0,'k'),

23 line([0,2*f/tan(50*(pi/180))],[-00,2*f],'color','k',

24 'linestyle', '--')

25 line([0,2*f/tan(60*(pi/180))],[-10,2*f],'color','k',

26 'linestyle', '-.')

27 line([0,2*f/tan(70*(pi/180))],[-00,2*f],'color','k',

28 'linestyle', '-')

29 line([0,0],[-2*f,2*f],'color','k')

30 line([M,N],[0,0],'color','k')

31 title('Range ellipses'),set(gca,'fontsize',30)%.*4./450

32 xlhand = get(gca,'title'),

33 set(xlhand,'string','Range resolution','fontsize',30)

34 axis([-250 250 -150 150])

35

36 figure(2), hold on;

37 plot(x,y,'k'), plot(x,-y,'k'),

38 scatter(-f,0,'k'), scatter(+f,0,'k'),

39 line([0,2*f/tan(50*(pi/180))],[-40,2*f],'color','k')

40 line([0,2*f/tan(60*(pi/180))],[-40,2*f],'color','k')

41 line([0,2*f/tan(70*(pi/180))],[-40,2*f],'color','k')

42 line([0,0],[-2*f,2*f],'color','k')

43 line([M,N],[0,0],'color','k')

44 title('Range ellipses'),set(gca,'fontsize',24)%.*4./450

45 xlhand = get(gca,'title'),

46 set(xlhand,'string','Range resolution','fontsize',24)

47 axis([-250 250 -150 150])

48

49 figure(3), hold on;

50 plot(x,y,'k'), plot(x,-y,'k'),

51 scatter(-f,0,'k'), scatter(+f,0,'k'),

52 line([M,N],[0,0],'color','k')

53 line([0,+f],[f/tan(50*(pi/180)),0],

54 'color','k','linestyle54', '--')

55 line([-160,+f],[f/tan(60*(pi/180)),0],

56 'color','k','linestyle', '-.')

57 line([-220,+f],[f/tan(70*(pi/180)),0],

58 'color','k','linestyle', '-')

59 line([0,0],[-2*f-30,2*f+30],'color','k')

60 title('Range ellipses'),set(gca,'fontsize',30)%.*4./450

61 xlhand = get(gca,'title'),

62 set(xlhand,'string','Range resolution','fontsize',30)

63 axis([-250 250 -150 150])

64

65 end

7.13. Range resolution determination

1 clear all, close all

2 r=input(‘Enter base line length:‘);

3 Index=[1,2,4,5,10,20,100,500,1000,10000];

4

5 % constant term

6 B=input(‘Enter displacement in direction X:‘);

7 % guiding velocity angle

8 ALPHA=input(‘Enter velocity angle‘);

9 ALPHA=ALPHA*pi/180;

10

11 sizeIndex=size(Index);

12

13 deltaR=input(‘Enter resolution cell size‘);;

14

15 xc1=zeros;

16 xc2=zeros;

17 yc1=zeros;

18 yc2=zeros;

19 len=zeros;

20 cc1=zeros;

21 cc2=zeros;

22

23 for i=1:sizeIndex(2)

24

25 I=Index(i);

26 L=r;

27

28 a1=(L ./ 2) + (I .* deltaR)

29 a2=(L ./ 2) + ((I+1) .* deltaR)

30 b1=sqrt( (I .* deltaR)^2 + (L .* (I .* deltaR)))

31 b2=sqrt( ((I+1) .* deltaR)^2 +

32 + (L .* ((I+1) .*deltaR)))

33

34 k=tan(ALPHA);

35 b=B;

36

37 c1=b1^2 – b^2 + a1^2 .* k^2

38 c2=b2^2 – b^2 + a2^2 .* k^2

39

40 x1=(((-b).*k) + (b1/a1) .* sqrt( c1 )) / ((b1./a1)^2+

41 + k^2)

42 x2=(((-b).*k) + (b2/a2) .* sqrt( c2 )) / ((b2./a2)^2+

43 + k^2)

44 y1=k .* x1 + b

45 y2=k .* x2 + b

46

47 length=sqrt((x1 – x2)^2 + (y1 – y2)^2)

48

49 xc1(i)=x1;

50 xc2(i)=x2;

51 yc1(i)=y1;

52 yc2(i)=y2;

53 len(i)=length;

54

55 cc1(i)=c1;

56 cc2(i)=c2;

57

58 end

59 lennorm=len./max(len);

60 lenlog=log10(lennorm);

61 cnorm=cc2./max(cc2);

62 clog=log10(xc1);

63

64 figure

65 hold on

66 plot((Index),len,'k')

67 title('Range resolution'),set(gca,'fontsize',30)

68 xlhand = get(gca,'title'),

69 set(xlhand,'string','Range resolution','fontsize',30)

70 xlabel('Logarithm of the number of resolution

71 ellipses')

72 ylabel('Length of the resolution cell, m')

73

74 axis([0 10000 0 46])

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.142.173.227