-
Notifications
You must be signed in to change notification settings - Fork 3
/
CRYOSAT2_NumericalEchoModels_SARHamming.nb
14558 lines (14459 loc) · 718 KB
/
CRYOSAT2_NumericalEchoModels_SARHamming.nb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
(* Content-type: application/vnd.wolfram.mathematica *)
(*** Wolfram Notebook File ***)
(* http://www.wolfram.com/nb *)
(* CreatedBy='Mathematica 8.0' *)
(*CacheID: 234*)
(* Internal cache information:
NotebookFileLineBreakTest
NotebookFileLineBreakTest
NotebookDataPosition[ 157, 7]
NotebookDataLength[ 734775, 14549]
NotebookOptionsPosition[ 731441, 14463]
NotebookOutlinePosition[ 731930, 14482]
CellTagsIndexPosition[ 731887, 14479]
WindowFrame->Normal*)
(* Beginning of Notebook Content *)
Notebook[{
Cell[BoxData[" "], "Input",
CellChangeTimes->{3.528782481988389*^9}],
Cell[BoxData[
RowBox[{"(*",
RowBox[{
RowBox[{
RowBox[{
RowBox[{
"**", "**", "**", "**", "**", "**", "**", "**", "**", "**", "**", "**", "**",
"**", "**", "**", "**", "**", "**", "**", "**", "**", "**", "**", "**",
"**", "**", "**", "**", "**", "**", "**", "**", "**", "**", "**", "**",
"**", "**", "**", "**", "**", "**", "**", "**", "**", "**", "**",
"**"}], "**", "**"}], "*", "\[IndentingNewLine]", "Copyright", " ",
RowBox[{"(", "c", ")"}], " ", "2013"}], ",", " ",
RowBox[{"Duncan", " ",
RowBox[{"J", ".", " ", "Wingham"}]}], ",", " ", "\[IndentingNewLine]",
" ",
RowBox[{
"Center", " ", "for", " ", "Polar", " ", "Observation", " ", "and", " ",
"Modelling"}], ",", "\[IndentingNewLine]", " ",
RowBox[{"University", " ", "College", " ", "London"}], ",", " ", "London",
",", " ",
RowBox[{
RowBox[{"U", ".", "K", ".", "\[IndentingNewLine]", "\n", "Permission"}],
" ", "is", " ", "hereby", " ", "granted"}], ",",
RowBox[{"free", " ", "of", " ", "charge"}], ",",
RowBox[{
"to", " ", "any", " ", "person", " ", "obtaining", " ", "a", " ", "copy",
"\n", "of", " ", "this", " ", "software", " ", "and", " ", "associated",
" ", "documentation", " ", "files", " ",
RowBox[{"(",
RowBox[{"the", " ", "\"\<Software\>\""}], ")"}]}], ",",
RowBox[{
"to", " ", "deal", "\n", "in", " ", "the", " ", "Software", " ", "without",
" ", "restriction"}], ",",
RowBox[{
"including", " ", "without", " ", "limitation", " ", "the", " ", "rights",
"\n", "to", " ", "use"}], ",", "copy", ",", "modify", ",", "merge", ",",
"publish", ",", "distribute", ",", "sublicense", ",",
RowBox[{
RowBox[{"and", "/", "or"}], " ", "sell", "\n", "copies", " ", "of", " ",
"the", " ", "Software"}], ",",
RowBox[{
"and", " ", "to", " ", "permit", " ", "persons", " ", "to", " ", "whom",
" ", "the", " ", "Software", " ", "is", "\n", "furnished", " ", "to", " ",
"do", " ", "so"}], ",",
RowBox[{"subject", " ", "to", " ", "the", " ", "following", " ",
RowBox[{"conditions", ":", "\[IndentingNewLine]", "\[IndentingNewLine]",
RowBox[{
"The", " ", "above", " ", "copyright", " ", "notice", " ", "and", " ",
"this", " ", "permission", " ", "notice", " ", "shall", " ", "be", " ",
"included", " ", "in", "\n", "all", " ", "copies", " ", "or", " ",
"substantial", " ", "portions", " ", "of", " ", "the", " ",
RowBox[{
"Software", ".", "\[IndentingNewLine]", "\[IndentingNewLine]", "THE"}],
" ", "SOFTWARE", " ", "IS", " ", "PROVIDED", " ", "\"\<AS IS\>\""}]}]}],
",",
RowBox[{"WITHOUT", " ", "WARRANTY", " ", "OF", " ", "ANY", " ", "KIND"}],
",",
RowBox[{"EXPRESS", " ", "OR", " ", "\[IndentingNewLine]", "IMPLIED"}], ",",
RowBox[{
"INCLUDING", " ", "BUT", " ", "NOT", " ", "LIMITED", " ", "TO", " ", "THE",
" ", "WARRANTIES", " ", "OF", " ", "MERCHANTABILITY"}], ",",
"\[IndentingNewLine]", " ",
RowBox[{
"FITNESS", " ", "FOR", " ", "A", " ", "PARTICULAR", " ", "PURPOSE", " ",
"AND", " ",
RowBox[{"NONINFRINGEMENT", ".", "IN"}], " ", "NO", " ", "EVENT", " ",
"SHALL", " ", "THE", " ", "\[IndentingNewLine]", "AUTHORS", " ", "OR",
" ", "COPYRIGHT", " ", "HOLDERS", " ", "BE", " ", "LIABLE", " ", "FOR",
" ", "ANY", " ", "CLAIM"}], ",",
RowBox[{
"DAMAGES", " ", "OR", " ", "OTHER", "\[IndentingNewLine]", "LIABILITY"}],
",",
RowBox[{
"WHETHER", " ", "IN", " ", "AN", " ", "ACTION", " ", "OF", " ",
"CONTRACT"}], ",",
RowBox[{"TORT", " ", "OR", " ", "OTHERWISE"}], ",",
RowBox[{"ARISING", " ", "FROM"}], ",", "\[IndentingNewLine]", " ",
RowBox[{
"OUT", " ", "OF", " ", "OR", " ", "IN", " ", "CONNECTION", " ", "WITH",
" ", "THE", " ", "SOFTWARE", " ", "OR", " ", "THE", " ", "USE", " ", "OR",
" ", "OTHER", " ", "DEALINGS", " ", "IN", "\[IndentingNewLine]", "THE",
" ",
RowBox[{"SOFTWARE", ".", "\[IndentingNewLine]",
RowBox[{"**", "**", "**", "**", "**", "**"}]}], "*",
RowBox[{
"**", "**", "**", "**", "**", "**", "**", "**", "**", "**", "**", "**", "**",
"**", "**", "**", "**", "**", "**", "**", "**", "**", "**", "**", "**",
"**", "**", "**", "**", "**", "**", "**", "**", "**", "**", "**", "**", "**",
"**", "**", "**", "**", "**", "**", "**"}], "*"}]}], "*)"}]], "Input",
CellChangeTimes->{
3.528782482901331*^9, 3.528785018906268*^9, {3.590222862516675*^9,
3.590223090357587*^9}, {3.590224254527259*^9, 3.590224385851264*^9}}],
Cell[CellGroupData[{
Cell[BoxData[
RowBox[{
RowBox[{"(*",
RowBox[{
RowBox[{
RowBox[{
RowBox[{
RowBox[{
RowBox[{
RowBox[{
RowBox[{" ",
RowBox[{
RowBox[{"Description", ":", "\[IndentingNewLine]",
RowBox[{
RowBox[{
"This", " ", "code", " ", "computes", " ", "the", " ",
"CryoSat"}], "-",
RowBox[{"2", " ", "pulse"}], "-",
RowBox[{"limited", " ",
RowBox[{"(", "PL", ")"}]}]}]}], ",", " ",
RowBox[{"SAR", " ", "and", " ", "SARin", " ",
RowBox[{"echoes", ".", " ", "No"}], " ", "input", " ", "from",
" ", "the", " ", "user", " ", "is", "\[IndentingNewLine]",
RowBox[{"required", ".", " ", "Output"}], " ", "files", " ",
"of", " ", "the", " ", "calculated", " ", "model", " ", "are",
" ", "generated", " ", "and", " ", "written", " ", "by", " ",
"this", " ",
RowBox[{"script", ".", " ", "A"}], " ", "usage", " ",
"example"}], ",", " ", "\[IndentingNewLine]",
RowBox[{
"which", " ", "plots", " ", "examples", " ", "of", " ", "the",
" ", "model", " ", "output", " ", "waveforms"}], ",", " ",
RowBox[{"is", " ", "provided", " ",
RowBox[{
"below", ".", "\[IndentingNewLine]", "\[IndentingNewLine]",
"Please"}], " ", "do", " ", "familiarise", " ", "yourself", " ",
"with", " ", "the", " ", "code"}], ",", " ",
RowBox[{
"as", " ", "certain", " ", "segments", " ", "of", " ", "this",
" ", "code", " ", "should", " ", "be", " ",
"\[IndentingNewLine]", "modified", " ", "depending", " ", "of",
" ", "which", " ", "echo", " ",
RowBox[{"(",
RowBox[{"PL", ",", " ",
RowBox[{"SAR", " ", "or", " ", "SARin"}]}], ")"}], " ", "you",
" ", "would", " ", "like", " ", "to", " ",
RowBox[{
"generate", ".", " ", "\[IndentingNewLine]",
"\[IndentingNewLine]", "A"}], " ", "detailed", " ",
"description", " ", "of", " ", "the", " ", "theory", " ", "on",
" ", "which", " ", "this", " ", "code", " ", "is", " ",
RowBox[{
"built", ":", " ", "\[IndentingNewLine]",
"\"\<Precise Estimates of Ocean Surface Parameters from the \
CryoSat-2 Synthetic Aperture, Interferometric\nAltimeter\>\""}]}], ",", " ",
RowBox[{"Katharine", " ",
RowBox[{"A", ".", " ", "Giles"}]}], ",", " ",
RowBox[{"Duncan", " ",
RowBox[{"J", ".", " ", "Wingham"}]}], ",", " ",
RowBox[{"Natalia", " ", "Galin"}], ",", " ",
RowBox[{"Robert", " ", "Cullen"}], ",", " ",
RowBox[{"Walter", " ",
RowBox[{
"H", ".", " ", "F", ".", " ", "Smith", ".",
"\[IndentingNewLine]", "\[IndentingNewLine]", "This"}], " ",
"code", " ", "consists", " ", "of", " ", "two", " ",
RowBox[{"parts", ":", "\[IndentingNewLine]", "Part1"}]}]}],
")"}], " ", "Code", " ", "to", " ", "generate", " ", "and", " ",
"write", " ", "to", " ", "disk", " ", "the", " ", "look"}], "-",
RowBox[{"up", " ", "tables", " ", "for", " ", "PL"}]}], ",", " ",
RowBox[{"SAR", " ", "and", " ", "SARin", " ",
RowBox[{"echoes", ".", "\[IndentingNewLine]", " ", "Part2"}]}]}],
")"}], " ", "Code", " ", "to", " ", "ingest", " ", "the", " ",
"look"}], "-",
RowBox[{
"up", " ", "tables", " ", "generated", " ", "in", " ", "Part1"}]}], ",",
" ",
RowBox[{
RowBox[{
"and", " ", "demonstrate", " ", "the", " ", "use", " ", "of", " ",
"these", " ", "look"}], "-",
RowBox[{"up", " ", "tables"}]}], ",", " ",
RowBox[{
"providing", " ", "example", " ", "plots", " ", "of", " ", "SAR", " ",
"and", " ", "PL", " ",
RowBox[{
"echoes", ".", " ", "\[IndentingNewLine]", "\[IndentingNewLine]",
"This"}], " ", "code"}], ",", " ",
RowBox[{"the", " ", "companion", " ", "paper"}], ",", " ",
RowBox[{
RowBox[{
RowBox[{"and", " ", "look"}], "-",
RowBox[{"up", " ", "tables", " ",
RowBox[{"(",
RowBox[{"for", " ", "SAR", " ", "and", " ", "PL", " ", "modes"}],
")"}], " ", "are", " ", "available", " ", "on", " ", "the", " ",
"GitHub", " ",
RowBox[{"repository", ":", "\[IndentingNewLine]", "https", ":"}]}]}], "//",
RowBox[{
RowBox[{
RowBox[{"github", ".", "com"}], "/", "ngalin"}], "/",
"CryoSat2_NumericalEchoModel"}]}]}], "\[IndentingNewLine]",
"\[IndentingNewLine]", "*)"}], "\[IndentingNewLine]",
"\[IndentingNewLine]", "\[IndentingNewLine]",
RowBox[{"(*",
RowBox[{
RowBox[{"**", "**", "**"}], "*", "*", "*",
RowBox[{
"**", "**", "**", "**", "**", "**", "**", "**", "**", "**", "**", "**", "**",
"**", "**", "**", "**", "**", "**", "**", "**", "**", "**", "**", "**",
"**", "**", "**", "**", "**", "**", "**", "**", "**", "**", "**", "**", "**",
"**", "**", "**", "**", "**", "**"}]}], "*****)"}],
"\[IndentingNewLine]",
RowBox[{"(*",
RowBox[{"!!",
RowBox[{"!!",
RowBox[{"!!",
RowBox[{"!!",
RowBox[{"!",
RowBox[{
RowBox[{
"BY", " ", "DEFAULT", " ", "THE", " ", "ROUTINE", " ", "CALCULATES",
" ", "CRYOSAT"}], "-",
RowBox[{"2", " ", "SAR", " ", "MODE", " ",
RowBox[{
RowBox[{
RowBox[{
RowBox[{
RowBox[{"ECHOES", "!!"}], "!!"}], "!!"}], "!!"}],
"!!"}]}]}]}]}]}]}]}], "*)"}], "\[IndentingNewLine]",
RowBox[{"(*",
RowBox[{
RowBox[{"**", "**", "**"}], "*", "*", "*",
RowBox[{
"**", "**", "**", "**", "**", "**", "**", "**", "**", "**", "**", "**", "**",
"**", "**", "**", "**", "**", "**", "**", "**", "**", "**", "**", "**",
"**", "**", "**", "**", "**", "**", "**", "**", "**", "**", "**", "**", "**",
"**", "**", "**", "**", "**", "**"}]}], "*****)"}],
"\[IndentingNewLine]", "\[IndentingNewLine]",
RowBox[{
RowBox[{"Clear", "[",
RowBox[{
"c", ",", "t", ",", "h", ",", "eta", ",", "r", ",", "k0", ",", "lambda",
",", "del", ",", "d", ",", "zeta", ",", "d0", ",", "thetaint", ",",
"thetastart", ",", "theta", ",", "thetaw", ",", "kinc"}], "]"}],
"\[IndentingNewLine]", "\[IndentingNewLine]",
RowBox[{
RowBox[{"ns", "=",
RowBox[{"10", "^",
RowBox[{"(",
RowBox[{"-", "9"}], ")"}]}]}], ";"}], "\[IndentingNewLine]",
RowBox[{
RowBox[{"c", "=",
RowBox[{"2.99792458", " ",
RowBox[{"10", "^", "8"}]}]}], ";"}], "\[IndentingNewLine]",
RowBox[{"(*", " ",
RowBox[{
"h", " ", "IS", " ", "THE", " ", "REFERENCE", " ", "SATELLITE", " ",
"ALTITUDE", " ", "IN", " ", "METRES"}], " ", "*)"}],
"\[IndentingNewLine]",
RowBox[{
RowBox[{"h", "=", "720000"}], ";"}], "\[IndentingNewLine]",
RowBox[{"(*", " ",
RowBox[{
"r", " ", "IS", " ", "THE", " ", "REFERENCE", " ", "EARTH", " ", "RADIUS",
" ", "IN", " ", "METRES"}], " ", "*)"}], "\[IndentingNewLine]",
RowBox[{
RowBox[{"r", "=", "6380000"}], ";"}], "\[IndentingNewLine]",
RowBox[{
RowBox[{"eta", "=",
RowBox[{"1", "+",
RowBox[{"h", "/", "r"}]}]}], ";"}], "\[IndentingNewLine]",
RowBox[{"(*", " ",
RowBox[{
"lambda", " ", "IS", " ", "THE", " ", "CARRIER", " ", "WAVELENGTH", " ",
"IN", " ", "METRES"}], " ", "*)"}], "\[IndentingNewLine]",
RowBox[{
RowBox[{"lambda", "=",
RowBox[{"c", "/",
RowBox[{"(", " ",
RowBox[{"13.575", " ",
RowBox[{"10", "^", "9"}]}], ")"}]}]}], ";"}], "\[IndentingNewLine]",
RowBox[{
RowBox[{"k0", "=",
RowBox[{"2", " ",
RowBox[{"Pi", "/", "lambda"}]}]}], ";"}], "\[IndentingNewLine]",
RowBox[{"(*", " ",
RowBox[{
"del", " ", "IS", " ", "THE", " ", "SPACING", " ", "OF", " ", "THE", " ",
"SAMPLES", " ", "IN", " ", "THE", " ", "SYNTHETIC", " ", "APERTURE"}],
" ", "*)"}], "\[IndentingNewLine]",
RowBox[{
RowBox[{"del", "=",
RowBox[{"7200.", "/", "18182"}]}], ";"}], "\[IndentingNewLine]",
"\[IndentingNewLine]",
RowBox[{"(*",
RowBox[{"WARNING", ":", " ",
RowBox[{"USER", " ", "MODIFIABLE", " ",
RowBox[{"SEGMENT", "**", "**", "**"}], "*",
RowBox[{
"**", "**", "**", "**", "**", "**", "**", "**", "**", "**", "**",
"**"}]}]}], "********)"}], "\[IndentingNewLine]",
RowBox[{"(*", " ",
RowBox[{
"zeta", " ", "IS", " ", "THE", " ", "ANGULAR", " ", "WIDTH", " ", "OF",
" ", "A", " ", "SYNTHETIC", " ",
RowBox[{"BEAM", ".", " ", "SEE"}], " ", "NOTE", " ", "CONCERNING", " ",
"NUMBER", " ", "OF", " ", "BEAMS", " ",
RowBox[{"BELOW", "."}]}], " ", "*)"}], "\[IndentingNewLine]",
RowBox[{
RowBox[{"zeta", "=",
RowBox[{"Pi", "/",
RowBox[{"(",
RowBox[{"64", " ", "k0", " ", "del"}], ")"}]}]}], ";"}],
"\[IndentingNewLine]",
RowBox[{"(*",
RowBox[{
RowBox[{"In", " ", "PL", " ", "mode"}], ",", " ",
RowBox[{
RowBox[{"set", " ", "zeta"}], " ", "=", " ", "0"}]}], "*)"}],
"\[IndentingNewLine]",
RowBox[{"(*",
RowBox[{"zeta", " ", "=", " ", "0"}], "*)"}], "\[IndentingNewLine]",
RowBox[{"(*", " ",
RowBox[{
RowBox[{
RowBox[{"d0", " ", "IS", " ", "THE", " ", "SYNTHETIC", " ", "BEAM", " ",
RowBox[{"GAIN", ".", " ", "d0"}]}], "=",
RowBox[{
"4096", " ", "IS", " ", "FOR", " ", "A", " ", "RECTANGULAR", " ",
"WEIGHTING", " ", "ON", " ", "THE", " ", "SYNTHETIC", " ",
"APERTURE"}]}], ";", " ",
RowBox[{
RowBox[{
"IF", " ", "USING", " ", "A", " ", "HAMMING", " ", "WEIGHTING", " ",
RowBox[{"(",
RowBox[{"SEE", " ", "BELOW"}], ")"}], " ", "use", " ", "d0"}], "=",
RowBox[{"1162.8100000000006`", " ",
RowBox[{"INSTEAD", "."}]}]}]}], " ", "*)"}], "\[IndentingNewLine]",
RowBox[{"(*",
RowBox[{"d0", "=", "4096"}], "*)"}], "\[IndentingNewLine]",
RowBox[{
RowBox[{"d0", " ", "=", " ", "1162.8100000000006"}], ";", " ",
RowBox[{"(*",
RowBox[{"SAR", " ", "Hamming", " ", "window"}], "*)"}],
"\[IndentingNewLine]",
RowBox[{"(*",
RowBox[{
RowBox[{"In", " ", "PL", " ", "mode"}], ",", " ",
RowBox[{
RowBox[{"set", " ", "d0"}], " ", "=", " ", "1"}]}], "*)"}],
"\[IndentingNewLine]",
RowBox[{"(*",
RowBox[{"d0", " ", "=", " ", "1"}], "*)"}], "\[IndentingNewLine]",
RowBox[{"(*",
RowBox[{
RowBox[{
"**", "**", "**", "**", "**", "**", "**", "**", "**", "**", "**", "**",
"**", "**", "**", "**", "**", "**"}], "*", "*",
RowBox[{
"**", "**", "**", "**", "**", "**", "**", "**", "**", "**", "**",
"**"}]}], "********)"}], "\[IndentingNewLine]", "\[IndentingNewLine]",
RowBox[{"(*", " ",
RowBox[{
"bandwidth", " ", "IS", " ", "THE", " ", "COMPRESSED", " ", "PULSE", " ",
"BANDWIDTH"}], " ", "*)"}], "\[IndentingNewLine]",
RowBox[{"bandwidth", "=", "320000000."}], ";"}], "\[IndentingNewLine]",
RowBox[{"(*", " ",
RowBox[{
"res", " ", "IS", " ", "THE", " ", "SAMPLING", " ", "INTERVAL", " ", "IN",
" ", "DELAY", " ", "TIME", " ", "OF", " ", "THE", " ", "ECHOES"}], " ",
"*)"}], "\[IndentingNewLine]",
RowBox[{
RowBox[{"res", "=",
RowBox[{"1", "/", "bandwidth"}]}], ";"}], "\[IndentingNewLine]",
"\[IndentingNewLine]",
RowBox[{
RowBox[{"gammabar", "=", "0.012215368000378016`"}], ";"}],
"\[IndentingNewLine]",
RowBox[{
RowBox[{"gammahat", "=", "0.0381925958945466`"}], ";"}],
"\[IndentingNewLine]",
RowBox[{
RowBox[{"gamma1", "=",
RowBox[{"Sqrt", "[",
RowBox[{"2", "/",
RowBox[{"(",
RowBox[{
RowBox[{"2", "/",
RowBox[{"gammabar", "^", "2"}]}], "+",
RowBox[{"2", "/",
RowBox[{"gammahat", "^", "2"}]}]}], ")"}]}], "]"}]}], ";"}],
"\[IndentingNewLine]",
RowBox[{
RowBox[{"gamma2", "=",
RowBox[{"Sqrt", "[",
RowBox[{"2", "/",
RowBox[{"(",
RowBox[{
RowBox[{"2", "/",
RowBox[{"gammabar", "^", "2"}]}], "-",
RowBox[{"2", "/",
RowBox[{"gammahat", "^", "2"}]}]}], ")"}]}], "]"}]}], ";"}],
"\[IndentingNewLine]", "\[IndentingNewLine]",
RowBox[{
RowBox[{"beta", "=",
RowBox[{"Pi", "/", "2"}]}], ";"}], "\[IndentingNewLine]",
"\[IndentingNewLine]",
RowBox[{"(*",
RowBox[{"WARNING", ":", " ",
RowBox[{"USER", " ", "MODIFIABLE", " ",
RowBox[{"SEGMENT", "**", "**", "**"}], "*",
RowBox[{
"**", "**", "**", "**", "**", "**", "**", "**", "**", "**", "**",
"**"}]}]}], "********)"}], "\[IndentingNewLine]",
RowBox[{"(*", " ",
RowBox[{
RowBox[{
RowBox[{"THE", " ", "NEXT", " ", "LINE", " ", "SETS", " ", "THE", " ",
RowBox[{"BASELINE", ".", " ", "IF"}], " ", "THIS", " ", "PARAMETER",
" ", "IS", " ", "NON"}], "-", "ZERO"}], ",", " ",
RowBox[{
"THE", " ", "CODE", " ", "WILL", " ", "EVALUATE", " ", "THE", " ",
"INTEFEROMETRIC", " ", "CROSS", " ",
RowBox[{"PRODUCT", ".", " ", "IF"}], " ", "YOU", " ", "SET", " ",
"THIS", " ", "PARAMETER", " ", "TO", " ", "ZERO"}], ",", " ",
RowBox[{
"IT", " ", "WILL", " ", "EVALUATE", " ", "THE", " ", "SARIN", " ", "OR",
" ", "SAR", " ", "ECHO", " ",
RowBox[{"POWER", "."}]}]}], " ", "*)"}], "\[IndentingNewLine]", " ",
RowBox[{"(*",
RowBox[{
RowBox[{"In", " ", "PL", " ", "mode"}], ",", " ",
RowBox[{
RowBox[{
RowBox[{"set", " ", "baseline"}], " ", "=", " ", "0"}], ";"}]}],
"*)"}], "\[IndentingNewLine]",
RowBox[{
RowBox[{"baseline", "=", "0"}], ";",
RowBox[{"(*",
RowBox[{"1.1676", ";"}], "*)"}], "\[IndentingNewLine]",
RowBox[{"(*",
RowBox[{
RowBox[{
"**", "**", "**", "**", "**", "**", "**", "**", "**", "**", "**", "**",
"**", "**", "**", "**", "**", "**"}], "*", "*",
RowBox[{
"**", "**", "**", "**", "**", "**", "**", "**", "**", "**", "**",
"**"}]}], "********)"}], "\[IndentingNewLine]", "\[IndentingNewLine]",
RowBox[{"(*", " ",
RowBox[{
"THIS", " ", "NEXT", " ", "SUBROUTINE", " ", "IS", " ", "THE", " ",
"ANTENNA", " ", "GAIN", " ", "PATTERN"}], " ", "*)"}],
"\[IndentingNewLine]",
RowBox[{
RowBox[{"gainsqr", "[",
RowBox[{"roe_", ",", "thetaw_"}], "]"}], ":=",
RowBox[{"Exp", "[",
RowBox[{
RowBox[{"-", "2"}],
RowBox[{"(", " ",
RowBox[{
RowBox[{
RowBox[{"(",
RowBox[{
RowBox[{"(",
RowBox[{"roe", " ",
RowBox[{"Cos", "[", "thetaw", "]"}]}], ")"}], "/", "gamma1"}],
")"}], "^", "2"}], "+",
RowBox[{
RowBox[{"(",
RowBox[{
RowBox[{"(",
RowBox[{"roe", " ",
RowBox[{"Sin", "[", "thetaw", "]"}]}], ")"}], "/", "gamma2"}],
")"}], "^", "2"}]}], ")"}]}], "]"}]}]}], "\[IndentingNewLine]",
"\[IndentingNewLine]",
RowBox[{"(*", " ",
RowBox[{
"THIS", " ", "NEXT", " ", "SUBROUTINE", " ", "IS", " ", "THE", " ",
"COMPRESSED", " ", "PULSE", " ", "SHAPE"}], " ", "*)"}],
"\[IndentingNewLine]",
RowBox[{
RowBox[{"pulse", "[", "t_", "]"}], ":=",
RowBox[{"If", "[",
RowBox[{
RowBox[{"t", "\[Equal]", "0"}], ",", "1", ",",
RowBox[{
RowBox[{"(",
RowBox[{
RowBox[{"Sin", "[",
RowBox[{"Pi", " ",
RowBox[{"t", "/", "res"}]}], "]"}], "/",
RowBox[{"(",
RowBox[{"Pi", " ",
RowBox[{"t", "/", "res"}]}], ")"}]}], ")"}], "^", "2"}]}], "]"}]}],
"\[IndentingNewLine]", "\[IndentingNewLine]",
RowBox[{"(*", " ",
RowBox[{
"THIS", " ", "NEXT", " ", "SUBROUTINE", " ", "IS", " ", "THE", " ",
"SURFACE", " ", "ROUGHNESS", " ", "DISTRIBUTION"}], " ", "*)"}],
"\[IndentingNewLine]",
RowBox[{
RowBox[{"rough0", "[",
RowBox[{"t_", ",", "sigma_"}], "]"}], ":=",
RowBox[{
RowBox[{"1", "/",
RowBox[{"(",
RowBox[{
RowBox[{"Sqrt", "[",
RowBox[{"2", " ", "Pi"}], "]"}], " ", "sigma"}], ")"}]}], " ",
RowBox[{"Exp", "[",
RowBox[{
RowBox[{"-",
RowBox[{"(",
RowBox[{"1", "/", "2"}], ")"}]}], " ",
RowBox[{
RowBox[{"(",
RowBox[{"t", "/", "sigma"}], ")"}], "^", "2"}]}], "]"}]}]}],
"\[IndentingNewLine]", "\[IndentingNewLine]",
RowBox[{"(*",
RowBox[{"WARNING", ":", " ",
RowBox[{"USER", " ", "MODIFIABLE", " ",
RowBox[{"SEGMENT", "**", "**", "**"}], "*",
RowBox[{
"**", "**", "**", "**", "**", "**", "**", "**", "**", "**", "**",
"**"}]}]}], "********)"}], "\[IndentingNewLine]",
RowBox[{"(*", " ",
RowBox[{
"THIS", " ", "NEXT", " ", "CODE", " ", "SPECIFIES", " ", "RECTANGULAR",
" ", "WEIGHTING", " ", "ON", " ", "THE", " ", "SYNTHETIC", " ",
"APERTURE"}], " ", "*)"}], "\[IndentingNewLine]",
RowBox[{"(*",
RowBox[{
RowBox[{
RowBox[{"d", "[", "theta_", "]"}], ":=",
RowBox[{
RowBox[{"(",
RowBox[{"1", "/", "4096"}], ")"}],
RowBox[{
RowBox[{"(",
RowBox[{
RowBox[{"Cos", "[",
RowBox[{"109.82593388049635`", " ", "theta"}], "]"}], "+",
RowBox[{"Cos", "[",
RowBox[{"329.47780164148907`", " ", "theta"}], "]"}], "+",
RowBox[{"Cos", "[",
RowBox[{"549.1296694024817`", " ", "theta"}], "]"}], "+",
RowBox[{"Cos", "[",
RowBox[{"768.7815371634745`", " ", "theta"}], "]"}], "+",
RowBox[{"Cos", "[",
RowBox[{"988.433404924467`", " ", "theta"}], "]"}], "+",
RowBox[{"Cos", "[",
RowBox[{"1208.0852726854598`", " ", "theta"}], "]"}], "+",
RowBox[{"Cos", "[",
RowBox[{"1427.7371404464525`", " ", "theta"}], "]"}], "+",
RowBox[{"Cos", "[",
RowBox[{"1647.3890082074452`", " ", "theta"}], "]"}], "+",
RowBox[{"Cos", "[",
RowBox[{"1867.040875968438`", " ", "theta"}], "]"}], "+",
RowBox[{"Cos", "[",
RowBox[{"2086.6927437294307`", " ", "theta"}], "]"}], "+",
RowBox[{"Cos", "[",
RowBox[{"2306.344611490423`", " ", "theta"}], "]"}], "+",
RowBox[{"Cos", "[",
RowBox[{"2525.996479251416`", " ", "theta"}], "]"}], "+",
RowBox[{"Cos", "[",
RowBox[{"2745.6483470124085`", " ", "theta"}], "]"}], "+",
RowBox[{"Cos", "[",
RowBox[{"2965.3002147734014`", " ", "theta"}], "]"}], "+",
RowBox[{"Cos", "[",
RowBox[{"3184.9520825343943`", " ", "theta"}], "]"}], "+",
RowBox[{"Cos", "[",
RowBox[{"3404.6039502953868`", " ", "theta"}], "]"}], "+",
RowBox[{"Cos", "[",
RowBox[{"3624.2558180563797`", " ", "theta"}], "]"}], "+",
RowBox[{"Cos", "[",
RowBox[{"3843.9076858173717`", " ", "theta"}], "]"}], "+",
RowBox[{"Cos", "[",
RowBox[{"4063.5595535783646`", " ", "theta"}], "]"}], "+",
RowBox[{"Cos", "[",
RowBox[{"4283.211421339358`", " ", "theta"}], "]"}], "+",
RowBox[{"Cos", "[",
RowBox[{"4502.86328910035`", " ", "theta"}], "]"}], "+",
RowBox[{"Cos", "[",
RowBox[{"4722.515156861343`", " ", "theta"}], "]"}], "+",
RowBox[{"Cos", "[",
RowBox[{"4942.167024622336`", " ", "theta"}], "]"}], "+",
RowBox[{"Cos", "[",
RowBox[{"5161.818892383329`", " ", "theta"}], "]"}], "+",
RowBox[{"Cos", "[",
RowBox[{"5381.470760144321`", " ", "theta"}], "]"}], "+",
RowBox[{"Cos", "[",
RowBox[{"5601.1226279053135`", " ", "theta"}], "]"}], "+",
RowBox[{"Cos", "[",
RowBox[{"5820.774495666306`", " ", "theta"}], "]"}], "+",
RowBox[{"Cos", "[",
RowBox[{"6040.426363427299`", " ", "theta"}], "]"}], "+",
RowBox[{"Cos", "[",
RowBox[{"6260.078231188292`", " ", "theta"}], "]"}], "+",
RowBox[{"Cos", "[",
RowBox[{"6479.730098949284`", " ", "theta"}], "]"}], "+",
RowBox[{"Cos", "[",
RowBox[{"6699.381966710277`", " ", "theta"}], "]"}], "+",
RowBox[{"Cos", "[",
RowBox[{"6919.03383447127`", " ", "theta"}], "]"}]}], ")"}], "^",
"2"}]}]}], ";"}], "*)"}], "\[IndentingNewLine]",
"\[IndentingNewLine]",
RowBox[{"(*", " ",
RowBox[{
RowBox[{
"IF", " ", "YOU", " ", "WANT", " ", "HAMMING", " ", "WEIGHTING", " ",
"ON", " ", "THE", " ", "SYNTHETIC", " ", "APERTURE"}], ",", " ",
RowBox[{"USE", " ", "THIS", " ", "CODE", " ",
RowBox[{"INSTEAD", "."}]}]}], "*)"}], "\[IndentingNewLine]",
RowBox[{
RowBox[{
RowBox[{"d", "[", "theta_", "]"}], ":=",
RowBox[{
RowBox[{"(",
RowBox[{"1", "/", "1162.8100000000006`"}], ")"}],
RowBox[{
RowBox[{"(",
RowBox[{
RowBox[{"1.9988563675214088`", " ",
RowBox[{"Cos", "[",
RowBox[{"109.82593388049635`", " ", "theta"}], "]"}]}], "+",
RowBox[{"1.9897243601271184`", " ",
RowBox[{"Cos", "[",
RowBox[{"329.47780164148907`", " ", "theta"}], "]"}]}], "+",
RowBox[{"1.9715511033307518`", " ",
RowBox[{"Cos", "[",
RowBox[{"549.1296694024817`", " ", "theta"}], "]"}]}], "+",
RowBox[{"1.9445172111230358`", " ",
RowBox[{"Cos", "[",
RowBox[{"768.7815371634745`", " ", "theta"}], "]"}]}], "+",
RowBox[{"1.9088913584702256`", " ",
RowBox[{"Cos", "[",
RowBox[{"988.433404924467`", " ", "theta"}], "]"}]}], "+",
RowBox[{"1.8650276111015833`", " ",
RowBox[{"Cos", "[",
RowBox[{"1208.0852726854598`", " ", "theta"}], "]"}]}], "+",
RowBox[{"1.8133619066450888`", " ",
RowBox[{"Cos", "[",
RowBox[{"1427.7371404464525`", " ", "theta"}], "]"}]}], "+",
RowBox[{"1.7544077220834402`", " ",
RowBox[{"Cos", "[",
RowBox[{"1647.3890082074452`", " ", "theta"}], "]"}]}], "+",
RowBox[{"1.6887509705891108`", " ",
RowBox[{"Cos", "[",
RowBox[{"1867.040875968438`", " ", "theta"}], "]"}]}], "+",
RowBox[{"1.6170441784560068`", " ",
RowBox[{"Cos", "[",
RowBox[{"2086.6927437294307`", " ", "theta"}], "]"}]}], "+",
RowBox[{"1.5400000000000003`", " ",
RowBox[{"Cos", "[",
RowBox[{"2306.344611490423`", " ", "theta"}], "]"}]}], "+",
RowBox[{"1.4583841348801627`", " ",
RowBox[{"Cos", "[",
RowBox[{"2525.996479251416`", " ", "theta"}], "]"}]}], "+",
RowBox[{"1.37300771823155`", " ",
RowBox[{"Cos", "[",
RowBox[{"2745.6483470124085`", " ", "theta"}], "]"}]}], "+",
RowBox[{"1.2847192592398093`", " ",
RowBox[{"Cos", "[",
RowBox[{"2965.3002147734014`", " ", "theta"}], "]"}]}], "+",
RowBox[{"1.1943962082756865`", " ",
RowBox[{"Cos", "[",
RowBox[{"3184.9520825343943`", " ", "theta"}], "]"}]}], "+",
RowBox[{"1.1029362363990272`", " ",
RowBox[{"Cos", "[",
RowBox[{"3404.6039502953868`", " ", "theta"}], "]"}]}], "+",
RowBox[{"1.0112483139004902`", " ",
RowBox[{"Cos", "[",
RowBox[{"3624.2558180563797`", " ", "theta"}], "]"}]}], "+",
RowBox[{"0.9202436765464241`", " ",
RowBox[{"Cos", "[",
RowBox[{"3843.9076858173717`", " ", "theta"}], "]"}]}], "+",
RowBox[{"0.8308267693084356`", " ",
RowBox[{"Cos", "[",
RowBox[{"4063.5595535783646`", " ", "theta"}], "]"}]}], "+",
RowBox[{"0.7438862575829166`", " ",
RowBox[{"Cos", "[",
RowBox[{"4283.211421339358`", " ", "theta"}], "]"}]}], "+",
RowBox[{"0.6602861952350905`", " ",
RowBox[{"Cos", "[",
RowBox[{"4502.86328910035`", " ", "theta"}], "]"}]}], "+",
RowBox[{"0.5808574372435015`", " ",
RowBox[{"Cos", "[",
RowBox[{"4722.515156861343`", " ", "theta"}], "]"}]}], "+",
RowBox[{"0.5063893822899657`", " ",
RowBox[{"Cos", "[",
RowBox[{"4942.167024622336`", " ", "theta"}], "]"}]}], "+",
RowBox[{"0.4376221273608131`", " ",
RowBox[{"Cos", "[",
RowBox[{"5161.818892383329`", " ", "theta"}], "]"}]}], "+",
RowBox[{"0.3752391123305404`", " ",
RowBox[{"Cos", "[",
RowBox[{"5381.470760144321`", " ", "theta"}], "]"}]}], "+",
RowBox[{"0.31986032762928496`", " ",
RowBox[{"Cos", "[",
RowBox[{"5601.1226279053135`", " ", "theta"}], "]"}]}], "+",
RowBox[{"0.27203615249938984`", " ",
RowBox[{"Cos", "[",
RowBox[{"5820.774495666306`", " ", "theta"}], "]"}]}], "+",
RowBox[{"0.23224188507922494`", " ",
RowBox[{"Cos", "[",
RowBox[{"6040.426363427299`", " ", "theta"}], "]"}]}], "+",
RowBox[{"0.20087301867675067`", " ",
RowBox[{"Cos", "[",
RowBox[{"6260.078231188292`", " ", "theta"}], "]"}]}], "+",
RowBox[{"0.17824131117933972`", " ",
RowBox[{"Cos", "[",
RowBox[{"6479.730098949284`", " ", "theta"}], "]"}]}], "+",
RowBox[{"0.1645716866638307`", " ",
RowBox[{"Cos", "[",
RowBox[{"6699.381966710277`", " ", "theta"}], "]"}]}], "+",
RowBox[{"0.16000000000000003`", " ",
RowBox[{"Cos", "[",
RowBox[{"6919.03383447127`", " ", "theta"}], "]"}]}]}], ")"}], "^",
"2"}]}]}], " ", ";"}], "\[IndentingNewLine]", "\[IndentingNewLine]",
RowBox[{"(*", " ",
RowBox[{
RowBox[{"WHEN", " ", "GENERATING", " ", "PL", " ", "ECHOES", " ",
RowBox[{"SET", ":", " ",
RowBox[{"d", "[", "theta_", "]"}]}]}], ":=", " ", "1"}], " ", "*)"}],
"\[IndentingNewLine]",
RowBox[{"(*",
RowBox[{
RowBox[{"d", "[", "theta_", "]"}], ":=", "1"}], "*)"}],
"\[IndentingNewLine]",
RowBox[{"(*",
RowBox[{
RowBox[{
"**", "**", "**", "**", "**", "**", "**", "**", "**", "**", "**", "**", "**",
"**", "**", "**", "**", "**"}], "*", "*",
RowBox[{
"**", "**", "**", "**", "**", "**", "**", "**", "**", "**", "**",
"**"}]}], "********)"}], "\[IndentingNewLine]", "\n",
"\[IndentingNewLine]",
RowBox[{"(*", " ",
RowBox[{
RowBox[{
RowBox[{
"THE", " ", "TOTAL", " ", "NUMBER", " ", "OF", " ", "BEAMS", " ", "IS",
" ", "2", " ", "knrange"}], " ", "+", " ",
RowBox[{
"1.", " ", "THIS", " ", "CODE", " ", "HAS", " ", "BEEN", " ", "SET",
" ", "UP", " ", "TO", " ", "DEAL", " ", "WITH", " ", "THE", " ",
"AZIMUTHAL", " ", "FFT", " ", "OF", " ", "A", " ", "BURST"}]}], ",",
" ",
RowBox[{"WHICH", " ", "HAS", " ", "63", " ",
RowBox[{"BEAMS", ".", " ", "AS"}], " ", "THIS", " ", "CODE", " ", "IS",
" ", "SET", " ", "UP"}], ",", " ",
RowBox[{
"IT", " ", "ASSUMES", " ", "THAT", " ", "THERE", " ", "IS", " ", "AS",
" ", "MANY", " ", "FORWARD", " ", "BEAMS", " ", "AS", " ", "BACKWARD",
" ",
RowBox[{"ONES", ".", " ", "NOTE"}], " ", "THAT", " ", "IF", " ", "YOU",
" ", "WISH", " ", "TO", " ", "APPLY", " ", "TO", " ", "A", " ",
"STACK"}], ",", " ",
RowBox[{
"WHICH", " ", "IN", " ", "SAR", " ", "MODE", " ", "HAS", " ", "MORE",
" ", "BEAMS"}], ",", " ",
RowBox[{
"YOU", " ", "WILL", " ", "NEED", " ", "TO", " ", "ALTER", " ", "NOT",
" ", "JUST", " ", "THE", " ", "NUMBER", " ", "OF", " ", "BEAMS"}], ",",
" ",
RowBox[{
"BUT", " ", "ALSO", " ", "ACCOUNT", " ", "FOR", " ", "THE", " ", "FACT",
" ", "THAT", " ", "THE", " ", "ANGULAR", " ", "SAMPLING", " ", "OF",
" ", "A", " ", "STACK", " ", "IS", " ", "NOT", " ", "EQUAL", " ", "TO",
" ", "THE", " ", "ANGULAR", " ", "WIDTH", " ", "OF", " ", "A", " ",
RowBox[{"BEAM", ".", " ", "HOWEVER"}], " ", "IN", " ", "PRACTICE"}],
",", " ",
RowBox[{
RowBox[{
"THE", " ", "ANGULAR", " ", "BEHAVIOUR", " ", "IS", " ", "HIGHLY", " ",
"SAMPLED", " ", "EVEN", " ", "WITH", " ", "63", " ",
RowBox[{"BEAMS", ".", " ", "INCREASING"}], " ", "THE", " ", "NUMBER",
" ", "OF", " ", "BEAMS", " ", "DOES", " ", "NOT", " ", "IN", " ",
"PRACTICE", " ", "ALTER", " ", "THE", " ", "SHAPE", " ", "OF", " ",
"THE", " ", "MULTI"}], "-",
RowBox[{"LOOKED", " ", "ECHO"}]}], ",", " ",
RowBox[{"SIMPLY", " ", "ITS", " ",
RowBox[{"POWER", ".", " ", "IF"}], " ", "YOU", " ", "WISH", " ", "TO",
" ", "APPLY", " ", "TO", " ", "STACKS"}], ",", " ",
RowBox[{
"YOU", " ", "NEED", " ", "SIMPLY", " ", "TO", " ", "MULTIPLY", " ",
"THE", " ", "POWER", " ", "BY", " ", "THE", " ", "RATIO", " ", "OF",
" ", "THE", " ", "NUMBER", " ", "OF", " ", "BEAMS", " ", "IN", " ",
"THE", " ", "STACK", " ", "TO", " ", "THE", " ", "NUMBER", " ", "IN",
" ", "THIS", " ", "CALCULATION", " ",
RowBox[{"(",
RowBox[{
"63", " ", "AS", " ", "IT", " ", "IS", " ", "PRESENTLY", " ", "SET",
" ",
RowBox[{"UP", "."}]}], ")"}]}]}], " ", "*)"}], "\[IndentingNewLine]",
RowBox[{
RowBox[{"knrange", "=", "31"}], ";"}], "\[IndentingNewLine]",
RowBox[{"(*", " ",
RowBox[{
RowBox[{
"THE", " ", "IMPULSE", " ", "RESPONSE", " ", "VARIES", " ", "VERY", " ",
"RAPIDLY", " ", "WHEN", " ", "THE", " ", "BEAM", " ", "IS", " ", "NEAR",
" ", "NORMAL", " ",
RowBox[{"INCIDENCE", ".", " ", "IN"}], " ", "THE", " ", "CODE", " ",
"BELOW"}], ",", " ",
RowBox[{
"THE", " ", "NUMERICAL", " ", "INTEGRATION", " ", "OF", " ", "THESE",
" ", "BEAMS", " ", "IS", " ", "DONE", " ", "FOR", " ", "A", " ",
"HIGHER", " ", "SAMPLING", " ", "RATE", " ", "THAN", " ", "THE", " ",
"OTHER", " ",
RowBox[{"BEAMS", ".", " ", "knmid"}], " ", "SPECIFIES", " ", "THE", " ",
"NUMBER", " ", "OF", " ", "BEAMS", " ", "AROUND", " ", "THE", " ",
"NADIR", " ", "BEAM", " ", "FOR", " ", "WHICH", " ", "THIS", " ",
"HIGHER", " ", "SAMPLING", " ", "INTERVAL", " ", "IS", " ",
RowBox[{"USED", "."}]}]}], " ", "*)"}], "\[IndentingNewLine]",
RowBox[{
RowBox[{"knmid", "=", "3"}], ";"}], "\[IndentingNewLine]",
"\[IndentingNewLine]",
RowBox[{"(*", " ",
RowBox[{
"istart", " ", "SPECIFIES", " ", "THE", " ", "EARLIEST", " ", "DELAY",
" ", "TIME", " ", "IN", " ", "ns", " ", "FOR", " ", "WHICH", " ", "THE",
" ", "IMPULSE", " ", "RESPONSE", " ", "IS", " ", "EVALUATED"}], " ",
"*)"}], "\[IndentingNewLine]",
RowBox[{
RowBox[{"istart", "=",
RowBox[{"-", "50"}]}], ";"}], "\[IndentingNewLine]",
RowBox[{"(*", " ",
RowBox[{
"iend", " ", "SPECIFIES", " ", "THE", " ", "LATEST", " ", "DELAY", " ",
"TIME", " ", "IN", " ", "ns", " ", "FOR", " ", "WHICH", " ", "THE", " ",
"IMPULSE", " ", "RESPONSE", " ", "IS", " ", "EVALUATED"}], " ", "*)"}],
"\[IndentingNewLine]",
RowBox[{
RowBox[{"iend", "=", "180"}], ";"}], "\[IndentingNewLine]",
"\[IndentingNewLine]",
RowBox[{
RowBox[{"zetab", "=",
RowBox[{"500", "/", "h"}]}], ";"}], "\[IndentingNewLine]",
"\[IndentingNewLine]",
RowBox[{
RowBox[{"npoints", "=",
RowBox[{
RowBox[{"(",
RowBox[{"iend", "-", "istart"}], ")"}], "/", "0.1"}]}], ";"}],
"\[IndentingNewLine]", "\[IndentingNewLine]",
RowBox[{"(*", " ",
RowBox[{
"nsigma", " ", "SPECIFIES", " ", "THE", " ", "NUMBER", " ", "OF", " ",
"VALUES", " ", "OF", " ", "SURFACE", " ", "ROUGHNESS", " ", "IN", " ",
"THE", " ", "LOOK", " ", "UP", " ", "TABLES"}], " ", "*)"}],
"\[IndentingNewLine]",
RowBox[{
RowBox[{"nsigma", "=", "25"}], ";"}], "\[IndentingNewLine]",
RowBox[{"(*", " ",
RowBox[{
"sigmaint", " ", "SPECIFIES", " ", "THE", " ", "SAMPLING", " ",
"INTERVAL", " ", "IN", " ", "METRES", " ", "OF", " ", "THE", " ",
"SURFACE", " ", "ROUGHNESS", " ", "STANDARD", " ", "DEVIATION", " ",
"OF", " ", "THE", " ", "LOOK", " ", "UP", " ",
RowBox[{"TABLES", "."}]}], " ", "*)"}], "\[IndentingNewLine]",
RowBox[{
RowBox[{"sigmaint", "=", "0.10"}], ";"}], "\[IndentingNewLine]",
"\[IndentingNewLine]",
RowBox[{"(*", " ",
RowBox[{
RowBox[{
"WHAT", " ", "FOLLOWS", " ", "NOW", " ", "ARE", " ", "FOUR", " ",
"BLOCKS", " ", "OF", " ", "CODE", " ", "THAT", " ", "ARE", " ",
"ESSENTIALLY", " ", "SIMILAR"}], ",", " ",
RowBox[{
"AND", " ", "WHICH", " ", "ARE", " ", "SEPARATED", " ", "BY", " ", "THE",
" ", "WRITING", " ", "OF", " ", "A", " ", "LOOK", " ", "UP", " ",
"TABLE", " ", "TO", " ",
RowBox[{"DISC", ".", " ", "THESE"}], " ", "FOUR", " ", "BLOCKS", " ",
"CORRESPOND", " ", "TO", " ", "THE", " ", "TERMS", " ", "IN", " ",
"THE", " ", "SERIES", " ", "REPRESENTATION", " ", "THAT", " ", "GIVES",
" ", "AS", " ", "PERTURBATIONS", " ", "THE", " ", "EFFECT", " ", "OF",
" ", "PITCH"}], ",", " ",
RowBox[{"ROLL", " ", "AND", " ", "HEIGHT", " ", "RESPECTIVELY"}], ",",
" ",
RowBox[{
"WITH", " ", "THE", " ", "FIRST", " ", "BLOCK", " ", "PROVIDING", " ",
"THE", " ", "UNPERTURBED", " ", "LOOK", " ", "UP", " ",
RowBox[{"TABLES", ".", " ", "IN"}], " ", "WHAT", " ", "FOLLOWS"}], ",",
" ",
RowBox[{
RowBox[{
"ONLY", " ", "THE", " ", "FIRST", " ", "BLOCK", " ", "IS", " ",
"COMMENTED"}], ";", " ",
RowBox[{"IN", " ", "THE", " ", "REMAINING", " ", "BLOCKS"}]}], ",", " ",
RowBox[{"ONLY", " ", "DIFFERENCES", " ", "ARE", " ",
RowBox[{
"IDENTIFIED", ".", "\[IndentingNewLine]", "\[IndentingNewLine]",
"NOTE"}], " ", "THAT", " ", "THIS", " ", "CODE", " ", "ASSUMES", " ",
"THAT", " ", "PITCH", " ", "AND", " ", "ROLL", " ", "ARE", " ",
RowBox[{"SMALL", ".", " ", "IF"}], " ", "YOU", " ", "WANT", " ", "THE",
" ", "RESULT", " ", "FOR", " ", "A", " ", "LARGE", " ", "PITCH", " ",
"OR", " ", "ROLL"}], ",", " ",
RowBox[{
"YOU", " ", "WILL", " ", "NEED", " ", "TO", " ", "INCLUDE", " ", "THEIR",
" ", "EFFECT", " ", "DIRECTLY", " ", "IN", " ", "THE", " ",
"DEFINITION", " ", "OF", " ", "THE", " ", "ANTENNA", " ", "GAIN", " ",
"PATTERN", " ", "gainsqr", " ",
RowBox[{"ABOVE", ".", " ", "IN"}], " ", "THAT", " ", "CASE"}], ",", " ",
"HOWEVER", ",", " ",
RowBox[{
"YOU", " ", "ONLY", " ", "NEED", " ", "TO", " ", "RUN", " ", "THE", " ",
"FIRST", " ", "BLOCK", " ", "OF", " ", "CODE", " ",
RowBox[{"BELOW", "."}]}]}], " ", "*)"}], "\[IndentingNewLine]",
"\[IndentingNewLine]",
RowBox[{"DateList", "[", "]"}], "\[IndentingNewLine]",
"\[IndentingNewLine]",
RowBox[{"(*", " ",
RowBox[{
"icre", " ", "EQUALS", " ", "THE", " ", "SAMPLING", " ", "INTERVAL", " ",
"IN", " ", "ns", " ", "WITH", " ", "WHICH", " ", "THE", " ", "IMPULSE",
" ", "RESPONSE", " ", "IS", " ", "SAMPLED"}], " ", "*)"}],
"\[IndentingNewLine]", "\[IndentingNewLine]",
RowBox[{
RowBox[{"icre", "=", "1.0"}], ";"}], "\[IndentingNewLine]",
"\[IndentingNewLine]",
RowBox[{"(*", " ",
RowBox[{
RowBox[{"WITHIN", " ", "THIS", " ", "BLOCK"}], ",", " ",
RowBox[{
RowBox[{
"THERE", " ", "ARE", " ", "THREE", " ", "REPEATED", " ", "SUB"}], "-",
RowBox[{"BLOCKS", " ", "OF", " ", "INTEGRATION"}]}], ",", " ",
RowBox[{
"IDENTIFIABLE", " ", "BY", " ", "THE", " ", "CALL", " ", "TO", " ",
RowBox[{"Monitor", ".", " ", "THE"}], " ", "FIRST", " ", "SET", " ",
"DOES", " ", "THE", " ", "BACKWARD", " ", "LOOKING", " ", "BEAMS"}],
",", " ",
RowBox[{
"THE", " ", "SECOND", " ", "THE", " ", "FORWARD", " ", "LOOKING", " ",
"BEAMS"}], ",", " ",
RowBox[{"THE", " ", "THIRD", " ", "SET", " ", "THE", " ", "CENTRAL", " ",
RowBox[{"BEAMS", "."}]}]}], " ", "*)"}], "\[IndentingNewLine]",
"\[IndentingNewLine]",
RowBox[{"(*", " ",
RowBox[{
RowBox[{
"THE", " ", "CALL", " ", "TO", " ", "Monitor", " ", "INDICATES", " ",
"THE", " ", "CALCULATION", " ", "OF", " ", "THE", " ", "IMPULSE", " ",
"RESPONSE", " ", "AT", " ", "SUCCESSIVE", " ", "INSTANTS", " ", "OF",
" ", "ECHO", " ", "DELAY", " ", "TIME", " ",
RowBox[{"tor", ".", " ", "THE"}], " ", "INTEGRATION", " ", "IS", " ",
"PERFORMED", " ", "AROUND", " ", "A", " ", "RANGE", " ",
RowBox[{"RING", ".", " ", "WHEN"}], " ", "tor", " ", "IS", " ",
"SMALL"}], ",", " ",
RowBox[{
"THE", " ", "INTEGRAND", " ", "OCCUPIES", " ", "MOST", " ", "OF", " ",
"THE", " ", "DOMAIN"}], ",", " ",
RowBox[{"BUT", " ", "WHEN", " ", "tor", " ", "IS", " ", "LARGE"}], ",",
" ",
RowBox[{
RowBox[{
"THE", " ", "INTEGRAND", " ", "IS", " ", "EFFECTIVELY", " ", "NON"}],
"-",
RowBox[{
"ZERO", " ", "ONLY", " ", "FOR", " ", "A", " ", "SMALL", " ", "PART",
" ", "OF", " ", "THE", " ",
RowBox[{"DOMAIN", ".", " ", "THUS"}], " ", "MOST", " ", "OF", " ",
"THE", " ", "CODE", " ", "IS", " ", "CONCERNED", " ", "WITH", " ",
"IDENTIFYING", " ", "THAT", " ", "PART", " ", "OF", " ", "THE", " ",
"DOMAIN", " ", "FOR", " ", "WHICH", " ", "THE", " ", "INTEGRAND", " ",
"IS", " ", "EFFECTIVELY", " ", "NON"}], "-",
RowBox[{"ZERO", "."}]}]}], " ", "*)"}], "\[IndentingNewLine]",
"\[IndentingNewLine]",
RowBox[{
RowBox[{"Monitor", "[",
RowBox[{
RowBox[{"part1out1", "=",
RowBox[{"Table", "[",
RowBox[{