UNCLASSIFIED

AD NUMBER

LIMITATION CHANGES

TO:

FROM:

AUTHORITY

THIS PAGE IS UNCLASSIFIED

ADB192220

Approved for public release; distribution is

unlimited.

Distribution authorized to U.S. Gov't. agencies

and their contractors; Critical Technology; AUG

1994. Other requests shall be referred to

Director, Army Research Lab., Attn: AMSRL-SSSG, Adelphi, MD 20783-1197.

ARL Form 1 dtd 9 Mar 2010
ARMY RESEARCH LABORATORY

Focusing of Dispersive Targets Using

Synthetic Aperture Radar

by John McCorkle and

Lam Nguyen

ARL-TR-305 (Reprinted in March 2010)

Approved for public release; distribution unlimited.

August 1994
NOTICES

Disclaimers

The findings in this report are not to be construed as an oflieial Department ofthe Army position

unless so designated by other authorized documents.

Citation of manufacturer's or trade names does not constitute an offieial endorsement or

approval ofthe use thereof.

Destroy this report when it is no longer needed. Do not return it to the originator.
Army Research Laboratory

Adelphi, MD 20783-1197

ARL-TR-30S (Reprinted in March 2010)

Focusing of Dispersive Targets Using

Synthetic Aperture Radar

by John McCorkle and Lam Nguyen

Approved for public release; distribution unlimited.

August 1994
REPORT DOCUMENTAnON PAGE Form Approved

OME No. 0704-0188

Public rep<Jfting burden for Ihis Nilection of information is estimated 10 average I hour per response, including the time for reviewing instructions, seuching exisling data sources, gathering and maintaining the

data needed, and <::ompleting and reviewing the collection illformation Send comment:; regarding this burden estimate or any Nher a;;pe<:t ofthis collection of information, including suggestions for reducing the

burdell, to Department ufDefeme, Washington Headquarters Services, Dlreclorale for Inforlnatmn OperatIOns and Reports 10704-0188),1215 Jeffer>on DaVIS HIghway, Suite 1204. Arllng!on. VA 22202-4302

Re;;punden!, should be aware lila! nolwithst3nding any other provbkm Df law, nD person ,hali be subject to any penalty for failing tD wmply with" collection of information if it doe~ no: di,play a curremly

valid OMB control llumbel

PLEASE DO NOT RETURN YOUR FORM TO THE ABOVE ADDRESS.

I. REPORT DATE (f)D-A1Aj.yYY)-j I" REPORT TYPE J. DATES COVERED (Frllm _To)

August 1994 Final 1990 to 1992

4. TITLE AND SUBTITLE Sa. CONTRACT NUMBER

Focusing of Dispersive Targets Using Synthetic Aperture Radar

5b. GRANT NUMBER

Sf. PROGRA!\1 ELEI...tENT NUMBER

P612782

6. AVTHOR(S) 5d. PROJECT NUMBER

John McCorkle and Lam Nguyen 35E55B

5e. TASK NllMBER

Sf. WORK UNIT NUMBER

7. PERFORMING ORGANIZATION NAME(S) AND ADDRESS(ES) 8. PERFORMING ORGANIZA,TION

U.S. Anny Research Laboratory REPORT NUMBER

Attn: AMSRL-SS-SG ARL-TR-305 (Reprinted in March 20 I0) 2800 Powder Mill Road

Adelphi, MD 20783-1197

9. SPONSORINGfMONITORING AGENCY NAME(S) AND A{}DRESS(ESj 10. SPONSORiMONITOR'S ACRONYM(Sj

U.S. Army Research Laboratory

2800 Powder Mill Road II. SI'ONSOR/MONITOR'S REPORT

Adelphi, MD 20783-1197 NU!VlBER(S)

12. DISTlUBVTIONJAV.... ILABILJTY nATEMENT

Approved for public release; distribution unlimited.

lJ. SUPPLEMENTARY NOTES

AMS code: P612782.H9311

DA PR: AH93

14. ABSTRACT

The focusing ofsynthetic aperture radar (SAR) data presents problems to the designer. This report addresses the SAR

focusing problem with special attention to focusing an area in the near field ofthe synthetic aperture over a decade or more of

bandwidth in a manner that preserves target resonance characteristics. A method for solving this image formation problem is

described, along with a computationally efficient algorithm that is applicable to real-time processing with motion

compensation, Simplified program examples are given, as well as a complete program listing that executes on several single w

chip array processors simultaneously. An error analysis shows quantitatively when the depth of focus is adequate to preserve

long-duration target resonance ringing effects for a given target Q, geometry, and bandwidth.

15. SUBJECT TImMS

SAR, UWB, focusing radar

17. LIMITATION 18. NUMBER 19a. NAME OF RESPONSIBLE PERSON

16. StCURITY CLASSIFICATION OF: OF ABSTRACT Of' PAGES Lam Nguyen

a. REPORT I b. ABSTRACT I'

TillS PAGE UU 94 19b. TELEPHONE NUMBf:R (/lidude <lr~(l ~·"Je)

Unelassified Unclassified Unclassified (30 I) 394-0847

Standard Form 2911 (Rev. 11/98)

Pre~eribed by ,\NSI Std, Z39.18

2
£

:,cl,?cil'Jn ",., H" H"'H' , ••• ,.,., ..•. , ,.,•

CoelIicie:nls .' H ••• H' H, ..H.,,« , H" H, .. « .." , ,'" '''H H.H .

! oywithm HH ...... " , .... , ... ,.,,,. , .., ,,,,.,,,, ... ,,... , .. , .,., H" ...".,.H'''',,,,,.,.,',,,.,,,,,,, 25

ADi?lv!.np App,"oxima,tion .'.,., , ", ' ,., ' , ,,' ..',.. , ".', , ,..

PolYl1orrlial LalCU!a[J:on .,.... ,HH .... '.'•• H.' ......., H" .,H..., ... H" , ..."., ... , ....., .. , ...... 23

:alcci!ali,on .,.., ,." ..,,.,..",,',.,., "., ".,.., ,,." '." ,' , ''.'.'.. ,.. " , ,

,.,h~.~ n == 0 " " « , .

,.,hArp n;* 0 ." , " ,. " , ,..

Imllm!"e K,esp'H!se AmJmlXimati'JIl ,,,..""..H'H" ' HH'H •• ' ,,, ,,«,, 16

page

> •••••••••, , •••••••• , •••••••••••••••••• " , ••,.,•••••••• " ••••••• , ••••••••••••••••••••• 0,/

'7 ..,•••••••,.,••• , ••• , ••••••••••••••••••, " •••••••••••••••• I

crn~mOlC'!'v " ,..,., ', ,., "" , , ,., , , , ', 7

AL'rmOa,?nc,s 10 Focusing H .., , '''''•• ''••. H"".'''",,,,'H'.."".''' '.H''•• ''''H.'"•• '''.'''H" H 'H" 7

6.2.2

Fast f'DCILI:mQ

Prc£'rDcc.ssine ' , ""."",.",.".,."'.,, , ",.. ,." '".,.,..,.. ,.",'." ..""'.,,,'..""

2.1

24

Effi,:iellt lAlI,culanoll , , "..'.., ,..", , ,.. ,' ,.. , , , .

1.

2.

3.

4.

5.

6.

8. •"'''.'''.'." •• , .......,.,,,......', ,,,,', .'H, ..H,.H •• ,H'.",",..... " ......'.'.'.H."''''.''''''.'H'".,' .. " .."", 40

pfpppnpp., ••••• , •••••• ",••• , •• '"•••".,•••• ",••• , ••• , " •• ,.",•• , •••• '." •••••••,.,•• '.,., '" •• '. , ••• ",•• '. "", ." " ••••• , .'•• ' ,.'" ",. 41

Dist,'ibution ,.,., ,..""", ,,,,,,.., ,,., ,,..,.,,,' ,,,,." ,,, ,, ',..,,.,., ,,,,.,, ,,'.,.. ,,.', ..,,,. ,

L path and image area "" ....... H.' 'HHHH .."""".. '""",....,,, ""'.'H.."'''''... 7

2. cross a sphere .,,,«,.,,,..,,.. '"'''.'''".H , " " ...,.,,,,,H."'HH.H " .. ' H H.".. ,,,.. , ....., 11

3
chart 24

vie·w , , " , 32

b"'''''';' end 32

cIE;mllll~. above , 33

reflecteor, Hamrnirrg above axis .

'0''''''0' end view " .

reHectclf, Hammirlg end .

nE;lHHll~. above axis .

ICllCl;ror. fiarnnling above axis , 35

~.,;mw,s. end .

~.b.w."b. end

page

3. for error 17

4. as a aperture , .

5. as a function of f) = 2 .

6. as a of f) with =6 17

7. Error at end as a of m, \vhere r:= 0 " , 17

8. Error at end as a fnnction of m. where T = 4a 17

9. and 24

17.

13.

14.

15.

11.

2.

nomenclature 8

. 29

fJUlilllUlldl load versus for :;;:: 3 and ;;;: 2304 , .

3. SUbl'outine

lVlJ'JUle_l~UUP .

..........0' , , , , •••

0" £.,/

4
raobso

wide.

are ro,'atlng

of

bet\veen the sensor and a

bins

from the

',n,fc'n,"c observed

IH,'iUiS, subsurnnWITW ve"ULae:v, and Deonie scanned

treats the

the ree:en/eu

SnTIU:Hllell: an an,ertm'e that is

""'ULJIl, as the as!pel~t

thetic anorllm'o

a rotatirlg

to other sv;;te:m

excellent rerr:e'0!

a sonar or an

face

In the

,,,n[\)I'::\ resopr,ocesl,ir:g have been limited

the context microwave

in two

are iSDtroPlC

natIOn io work

the bJ~in"lUl:e must be

sensors.

fre:quler:cy in the sensol's The

the lowest

the wa'Vehll1gth

or less)

wide

wnioh'm,' curvature errors to the conventional

based must be relitrictc:d to small palClJeS

area.

row

width

rvrl!'< of aD rf

eral of

ho,wever. have

5
6

two are not is bandlwidth that 4Hv"r,

discriminaticn based on si~lnaltnJle 41141 ",n. and it is bandwidth that mllkcls

formation more is to examine

signatunls and to
a This

R;'''H'~ 1 shows a sketch cf

the

Image area

with polar grid

to form the

is to the center ofthe apparameter i. The k marks

lines. The points are marked off

dis,tarlce between the and the

area is denoted Both azimuthal

lines are to the center of the *' Table

the nomenclature used in this report

Propagation

path d . .=d

I,k,) -1,2,-2

1-1-1L1/-+-1-+-1-+-1-11---1

j",-3 j=-2 j",-t j"O j",1 j=2 1'=3

1 sumnl1a;

SA.R systems use a 'v'ACHEY'W'

of a are that for a

equally spaced samples the and these are optimally

fooused and on a single bearing line. These features make it for

postprooessors to look for ringing signatures.)

paradigm is used in discussions of SAR processing, or

focusing, Referring to figure 1, assume that the radar platform is movat velocity v as it collects data along the aperture. Therefore, the data

are spaced equally in occurring at a rate governed

v and the PRF. (This sampling across the aperture is sometimes referred to

i ",3

jot ::;

j", i

i", 0

1=-1

i "'-2

i"" --3

Figure 1. llasic I1igl1l

and image area

Flight path

* This grid is convenient for postpmcessing. An x-y grid can also be computed with the techniques described.

7
outputs

func1ion of time (secOflds from the

porr!t!,," in the aperture. The an'rlog-to-d

of the

Denotes a received

of the transmitted

reprerent this

Tuole L nomenclature.

Denotes that the function an estimate. The exrlmiple denotes an estimate for a received

porilt"," in the

like the

pascitlem in the acca_

Denotes the distance mewcS! between pmc!;!,m of the radar and the

area to be cmrli1Cn

Particularizes the function be al oarticlliar QCilmetries

aFk:fture, Of the linc. Of the

Denotes the

syllth;ellc aperture, to the

the radio energy to travel from

in the area, and back.

c The of

Time shift between range bin i and range bin i + 1 the center of the apenure

PRF ";"nCl;VH freque,m;y of the radar in hertz,

_u

Pulse

Relative bandwidth J1::::: and -+

UWB Ultra-wide bacnd'N"lt". where fl.- 1.

Wrrvclenolh in meters,

of

If the radar is at a frE;qtren,cy thcn the echo

H";U"_0 area will have a Dl>PIJ!er as the

Tne shift wili be UDW,lrd while the

to zero as the moves to a

be downward as the !,um'_"

at the

cornplJtincg a SAR adso that the new data set

as if the plactfc'rm \vith the circle at

the center the is a

center the unlqC!e L'oppl"r nmlilp of zero over the entire anfCr[rme

pOlm3 have other

A iSlypclCaJly

llI':0l'ie area

and the distance the radar to the center suffiThis addresses the case where none of these ret;tnictiorls

8
array:

identiof

the

one can see that

across

t", 0 .

patch. Nfllie:?

formatted data is

which is a ""nn,"

is identical to

+ t)

)

each tormattm2 makes a different

sum:mai!lt!l1 is used to calculate the

bcams are

and the

h,y,wver be looked at as a SliHl()n'lrY

stored and cornbined in a comsj

foeus,;s the

can

f

ncmn,)c.r has to a convenient ,,"ren,m_

its convenience breaks down at wide relative band\vidths.

of N antennas whose outp!ut,

the D()D1Jie:t and snllg)!lill

9

cal at

of the data pomts.

once

entire

beam width compare with that obtained from "conventionai"

antenna half-power

hpanwJirllh of a array is approximately where L is the of the

The heams formed the processing described above follow this role

and have a width proportional to frequencies have wide and

have narrow beams. has consethe time domain as a source moves through a beam. Although

response at the center of the beam is a narrow pulse, as one

moves from the the response time-domain broadening occurs because more and more high-frequency is

lost as the source moves out of the narruwing high-frequency beam.

from Doppler to the stationary array approach may lead to

"phased array" terms. Such an approach is a mistake when

bailJelwidth and/or geometry are not restricted. Whenever the is

not restricted to the far field of an aperture, plane-wave simplifications
Since a

Fourier techthe near field. In a

delfiniing element

one element

J then a

pUSHeu,"" or the network. To

with rC(iptrct to another element

down. This breakdown

Fourier forms beams

mrllle" becomes less and less useful as '"rap"

UWB becomes J!J("iljJlJE;IIC"

needed to a wide-bandwidth

several the best to use in the cquane,ns dc"rin'n

tenna are the time and distance: the time shift the lines that

the and distance between antenna elementso Thus it

is to think in terms. This ti:me-based framework results

clel';vrll;r1r\S that are freqwemiy and gersmietl'y

Cl2SSIccase is

that beam uU5'"O,

to form an endfire

In the S1nlnlest

el(oment, that waveform would be

that

in the opposite nm'c!!on

\vould say that the most critical aSlpe(ct of

nulls. A

antenna

desirable antenna

spacing twe elements at

beam in one direction and a

case the element WiiH'htl,na is +1 and

eould time-steer the

the elements hFf",·p

lo\-vs more treedons.

than the null weuld in the re'''Tier

If we bandwidth effects

a function of the + and

waveform is the

Ilene", to that waveform forms a main lobe in that

GratinlZ lobes are as lobes whose is to the

main beam, this leads to in the UWB case.

Are there lcbes? That If the response to the UWB IS

then the answer is no. Since the response on the

"'IS"'" than the at other the definition

the antenna is a Unear It behaves an

at a if the respOl1se

0'5,"U', the answer can be yes. If the elements are more

than A/2 at the in the UWB wavefnrnn

then there wiil be a lobe at that All

the cw antenna analysis holds and remains useful. One

however, be careful when applying terms like lobes that preSUIDPI)Se a narrow-band signal. For SAR, the element spacing (velocity!

needed a function of what sidelobes arc permissible at the

various frequency components the UWB

10
to

nu'mb,er. a.

11;;' huw·

is a

frequen<:y·domain c!haracteristi(;s can also be in the

lllj,m'g or resonant response. In case-time dOmtlin

the to as

hi,;torlcal SAR systems have not to respond to

nn'j!;ll]j!;, no was to

describ"s and analyzes a procedure to focus a over ultra·

wide bandwidths, such a way as to preserve the resonant response of tareven when are in near field.

2 10

2rrfr/c

/ I\rRe~nance ·1·

region I '

Optical / \ \ 1/\ I' r\~ion

Ra'l!·ig~7 \ I \ V fJ V v

regoo i

/ V! ,

/ ,

0.05

0.3

0.2

2

5

!2b 0.5

2. Radar cross

section of a ,pi,.....

11
is

SUililm'ilLiH must be done so

eqiwoclCiS, Freqiue'nC)I-lr,depollcient addassume that an

advai1tage of all the echo ~"~~I,J

all

at all

one must sum

is ac,~ornpilisfled as

+I) t 2: 0 '

the localed al I""V'lCi'm

term the 5; so that the

reiipC)WIS slarls al t " 0 at all pUB"" in the anen'uno, The

"lilll~lp t,lnr!p.racross the "",prlllrF

The abeve discussion assumes Ihat a

ered true,

HHIJUI'C re,ipomae 1S

not change

the

iSCilf(spic f(cqtllT,em,ent, and SUiPpi1se that a

H(V1FiC area, A horizontal UllAHC,

We could take ,rlclnb

scatterer

Ull'P"", is an aniisotronlc

behavior to eXitend the detectlO,n and

radar

Supp(sse we

In

each one matched tc the

anrri'llfp In order to

tOi:o:gnize that teal large",

seattSf(;rS; this fact should not be

12
ne',de,d. The imr'act

considers that the mass

reduces the ~N;hip~ case and ~n·cpntc

to traverse

M

can

words. suprl?cnihe and

to measure

the

and j = 0

it

def'oculses behind the

we have a

if there was

rcasel:j=O, 1 ,. s (T ,) for . ) i.m,,) lcase 2: m = 0, Vj, Vi, 'Ilk J

a=

+

a to be

on the

has been defined to be to the center

the i can be of as a

time t t is units of seconds, i is in of

and they are related by a--one range bin equals a seconds.

we can

Dr()olem is

that instead of ca"ct"aLlllg

one value is calclllate,],

the ringing can be retained in this

rc,juce,j. The aim this

Ual:l!lJ'Y the error bounds when a 2-D image h.k(r) is

But

the

one
We make an approximation to eUl,j"']()l!

over a limited

ilia inclucie

+ -s,(T k') for 'rIj,m = -1.L (5) J - l+m"J

The be said of the in

L It is at center of the U= m.

L.. It is at m = 0 regardless ofj.

3. It gets worse as m deviates further zero.

4, It is worst at the end

A solution is de,;ired to equation

stant. In a system,

the form where Y is a conbe mapped to ",,:nncre range bins, so let

y=na . (6)

Sul)stitutJingequations (5) and (6) into (1), we define a 2-D "image" f(i,k) as

(0) = 2:

j

= +na)E

(7)

If one of a ringing target, then equation (7) can be described as allowing the point of perfect focus to be adjusted to any depth n the ring.

For example, if n = 0, then the focus point would be at the leading

edge (the sample) of the response. n '" 0, say n " 3, then the

third sample the ringing response would be focused.

Next consider the The indexing is performed such that f(i,k) alrepresents the edge the response from a target located at

(i,k) regardless whether it is or not. is found,

we now wish to find the discrete of the target ringing. The samples

will be counted as m " 0 the sample, m " 1 for the second, and so

on. We these samples i The mth

value is just + which follows from equations and (7) as

$ +

+

or

14

perfect) when m = n.

name "short impulse response apiprc)ximallicm is used vel'"'l''' apprc}ximl,tic)fi needs to remain

accurate over the duration of a T"noef', ",.t'~'C'~
Examples ofApplying Approximation

To illustrate the use of equation (8), we follow these steps:

1. Fix n.

2. Place a target (for the purposes of the illustration) at say i " 237 in range on

the kth bearing.

3. Use equation (7) to calculate fti,k) for all (i,k).

The cases of interest are where n " 0 and where n '" O. Let us consider each

separately.

where n:: 0

Where n " 0, use equation (8) to find the ringing response of the target. The

response for the first three points of the focused impulse response is

h37,(O)-fm_Hm,(O) = fm,,(O) = [(237,k) (case for m=O),

f231'(a)- ,m.,cO) = /,36,,(0)= [(238,k) (casefor m = 1) ,

[237. ,(2a) = /'37_"_,(0) =[m.,cO) =[(239, k) (casefor m =2) .

Since n " 0, the amplitude of the leading edge (m " 0) of the impulse reo

sponse of that target is perfectly focused. As m increases, the approximation

gets worse. So the approximation is useful as long as the target resonance

dies before the approximation gets too bad.

4.2.2 Case where n '" 0

Where n '" 0, perfect focus is na seconds past the leading edge of the target

impulse response. Suppose, for this example, n " 2. The first four data

points for the impulse response are

/'37,,(0) - [m_ff+m,,(na) = [",,,(2a) = [(237, k) (case for m = 0) ,

h37,,(a)- fz37_"~.,(na)= h36.l2a) = [(238, k) (case for m = 1) ,

h37, ,(2a) =/'37_n_jna) =h37,,(2a) =[(239, k) (case for m =2) ,

h37, ,(3a) - fz37_"~.,(na) = h38,,(2a) = [(240, k) (case for m = 3) .

Note that the leading edge is not perfectly focused, as it was when n " O.

The important point here is that one can choose n " 0 to allow the leading

edge to defocus slightly for the sake of keeping later points in better focus.

15
eSIJOIlSe Approximation

and low frequen(:ies

the transient echo of a

cycles.

be collected. uencies damp

3 illustrates the of the The assumes at = (237,0), then R is

distance the center is the distance from the

end of the to the focused data

for the impulse = 1) in the

mit>,U'!" reSDonse IS - aT + or +

If £ is the difference (error) between the approximation and the actual,

£ =

+ ) (9) +ma. eose . a i

As an example of finding the approximation error, suppose R = 2 km, e=

90°, = 1 and m = 10. How degrees off (round trip) would the

end be at 1 these numbers equation (9), we find

£ = 0.0447 m. So the round phase error at 1 GHz is 107°. Figure 4 is a

of error as a of the position in the aperture for e=

50°, and 30e

. peculiar is that the error at 76°. This

peaking is a result of at a range of only the aperture length.

Figures 5 and 6 show the error as a function of the beam angle Ai m = 5,

and 20 at two ranges.

Figure 7 is a plot of the error at the right end point the aperture as a function m, with T::; O. Since the error at the end is greater than the error

at the left end for A below this is the worst case. 8 is the

same plot but with r: = na and n = 4. In case, the the

m = is out focus about

occurs when m = n = 4,

UUUiHJ> over which a

by the approximation

also show that making r: " 0 can double

larl'U'S The optimum T, depends

resonance.

16
, I

_~ I~.!:-9 90, , J l L L _

I ; I I

, , I ___ l L L _ , , I

I I , _J. l. L_

, , , , , I ____ 1. _

I

, oL:'=-2~~+_"~~~~-.J -400 -200 a 200 400

Position in aperture (m)

120

N

J:

(!J

- 80

1il

'5

I

20 "B

I ~L,/2------+

i~...;j j .. -'i!: j~-l j"O j~l j~2 j~3

I{ L, 1

Figure 3. Geometry for calculation of approxi~

mation error.

Figure 4~ Error as a function of position in

aperture.

Figure 5~ Error as a function of Bwith RILs =2.

9

Figure 6. Error as a function of {} wilh R/L,=6.

25

~: : I , 20 , 20 I

I _~_~L~:~~ ____ , , -!- - - - - +-- -- 20 - - - - -1-- , I N

liJ : : 15 J: , , (!J 15 , 15 10! I , 1il Z -;-----:----- , - - - -1--

]0 '5 I , 10

" I , , ----i--- 'T----r--- r- - - - - -!-- , , , 5 I , , Q 5 , ---r-- 5 ----l , ;-----;---1 I I

0

40 60 60 0 20 40 60 80

9

20

250 ,---c,r---;-,----,-----,--, I ,

ffi I RJLs ""2 j

N 200 20 4-----1---

I --- 1 ! o 15 r I

J-' , -W 150 ;22..-r1-----

15 171! r

:fi l±J I !

i 100 I - --- - -

5Or---- ;

j:!

'" 80

Parameter m Parameter m

7. Error at right """rl:lJreend as.

function where 1: Figure 8. Error at aperture end as a

function of m where r:::: 4u.

7
Fast IOc:usmg raw

where is ~a¥f0a~'0rl a set of polynomial coeffithat will be used and performing the foof eqlJation the coefficients found in stage 2 to

the index corresponding to the rm'n,-, time

1

A method to efficientiy time is needed, The data

are collected an converter that a vector of 1'1 numbers

at each aperture We ~all this vector Sj . A time shift

therefore, simply a shift in the index i,

, the time obtained indexing on the original N-point

vector is not fine enough, Finer resolution is gained a two-stage interpolator. a is used to produce a new K-point

It is implemented by insertion Z - 1 zeros between

the original after which the new sequence is

passed a low-pass FIR (finite impulse response) filter. The process

results in a new vector with the time-shift resolution, The

length, in this case, is K =ZN. We can extra fine resolution by using a

floating-point index with linear interpolation to find a value between

any two data points in the interpolated data vector. For example, if the

dex i were 6.3, then the interpolated value would just be (),7s/6) + 0.38/7).

The focusing algorithm that follows uses these techniques in the following

sequence, which is typically referred to as back projection.

L Read in one N-point vector s;(i) of raw data, ;

2, Do an Z-point interpolation, to form a new K-point vector Sj(i),

3, Iterate for all pixels:

a. Find the floating point index needed for a pixeL

b. Find the data value for that pixel either by rounding the index and grabbing the value, or by linearly interpolating between adjacent values.

c. Sum into that pixel the data value obtained.
Fast Index Calculation

Typically, the greatest computational load in back-projection focusing is in

finding the index. Let P(I,k,j) be the exact index needed. Then equation (7),

the 2-D focusing equation, becomes

fi.' = Sj(P(I,k, j))

j

(10)

Calculating P(i,k,j) exactly involves 3-D trigonometric solutions for every

pixel in the image at every position in the aperture. Such a calculation

would be prohibitively large. For practical implementation, a secondary approximation is used to speed the computations. Extremely efficient computational methods exist for finding evenly spaced solutions to polynomials.

Therefore, OUf approach is to define a polynomial in three variables G(I,k,j),

where G(I,k,j) - P(I,k,j), and use G to compute the index.

The first issue that arises is choosing the order of the polynomial needed for

each variable. To understand the method, suppose that a second-degree

polynomial is adequate for each of the three variables I,k,j. Now the problem can be restated as follows: for a given image pixel (i,k), and a given

aperture position (J), find the coefficients am for m =0...26 such that

G(i,k,j) - P(i,k,j)

= q", .+ q, .1 + q, k l' ., ,) ,K,j ..., ,J

= [c(j , +c, ,k+c,k']+[c3 · +c, k+cs k']I+[c6 . +c. k+cs k2 ]1 2

," '1 -,j ,j ,j ,j ,j I,J ,j

=[(a" + aj + a2 j') + (a3 + a,j + asj')k + (a, + + agj')k'J

+ [(a') + + aj + (a12 + a13 j + aJ4j')k + (a'5 + a16 j + a17 j')k 2 Ji

+ [(a,S + + + + + a2)')k + + +

the equation written in this 1t IS

index as nested three

as the middle and i as the inner

to see that one oan code

with j as the outer k
the exact

have

a solu~

the

G,

index needed

the width of tile

k, + + + + + + + +
which is

1 a a a ° a a a a p(a,a,a)

1 a a' a a a

° a

° P(O,a,O)

1 2a 4a' ° ° 0

° 0 0 p(a,2a,0)

1 3a 9a' 0 a 0

° 0

° P(O,3a,0)

1 4a 16a' 0 0

° 0

° ° P(O,4a,0)

1

° ° b

° ° b2

° ° P(b,O,O)

1 a a' b ab a2

b b2 ab' a2

b' P(b,a, a)

1 2a 4a' b 2ab 4a'b b' 2ab' 4a2

b2 P(b,2a,0)

1 3a 9a2 b 3ab 9a2

b b2 3ab2 9a2

b2

CO,D P(b,3a,0)

1 4a 16a2 b 4ab 16a2

b b2 4ab2 16a'b2 cI,o P(b,4a,0)

1

° ° 2b ° 0 4b2 0 0 c2,o P(2b,0,0)

1 a a

2 2b 2ab 2a2

b 4b2 4abz 4a2

b' c3,o P(2b,a,O)

1 2a 4a' 2b 4ab 8a'b 4b' 8ab' 16a2

b2

c4 ,o = P(2b,2a,0)

1 3a 9a2 2b 6ab 18a2

b 4b' 12ab2 36a2

b2

c5,o P(2b,3a,0)

1 4a 16a2 2b 8ab 32a2

b 4b2 16ab2 64a 2

b2

c6,o P(2b,4a,0)

1 0

° 3b 0 0 9b2

° ° c7,o P(3b, 0,0)

1 a a

2 3b 3ab 3a2

b 9b2 9ab2 9a2

b2

Ca,D P(3b,a, 0)

1 2a 4a2 3b 6ab 12a2

b 9b2 18ab2 36a2

b2 P(3b,2a,0)

1 3a 9a2 3b 9ab 27a2

b 9b2 27ab2 81a2

b2 P(3b,3a,0)

1 4a 16a2 3b 12ab 48a2

b 9b2 36ab' 144a2

b2 P(3b,4a,0)

1 0

° 4b 0

° 16b2° 0 p(4b,a,0)

1 a a

2 4b 4ab 4a2

b 16b2 16ab2 16a2

b2 P(4b,a,0)

1 2a 4a2 4b 8ab 16a2

b 16b' 32ab2 64a 2

b2 P(4b,2a,0)

1 3a 9a2 4b 12ab 36a2

b 16b2 48ab2 144a2

b2 P(4b,3a,O)

1 4a 16a2 4b 16ab 64a'b 16b' 64abz 256a'b2 P(4b,4a,0)

21
22
ture

Now Cis as C= and is a

dex into the data This index is either rounded,

so that the nearest IS ctJe)sen, or is used a linear between the two closest so that a data

Two for the The

method is to the same orocess as shown but for the problem"

That proce~s ' Cto hold the 27 co(:lllclenis

Cll"":~ill" B to hold the idea! values more than one position in the aperfive positions); and enlarging Ato match"

The second method is to solve vector C at a number of

the Then construct a polynomial in j for each coefficient

solution does not involve inverting the large A matrix but will result in

a less than optimum solution in the least-squares sense"

One advantage of this second method is it lends itself to correcting for

airplane motion" Since A is independent of the airplane position, it is inverI en once" The multiplication to find the index polynomial coefficients can be applied at every aperture position or short subaperture if desired" The algorithm thus allows real-time UWB motion compensation"

Po,lynomial Calculation

Now that we have a polynomial to find the index, we need a fast way to

compute the polynomial. Directly calculating an NIh degree polynomial

usually requires N adds and N multiplies" If, however, a sequence of soluis with the changed in increments (the case we

have here), more efficient means are available" An algorithm by Nuttall [8]

a method that can be applied to calculate the index recurwithout the multiplications" The procedure is as follows:

L XCi) = qo +

Xl (i) = XCi) -

+ be the polynomial to be solved, where i = 0, " 2,

3" heretore a recursion can be set up where

X: =Xi(i-l)+ and

XCi) = X,(i -1) + Xi (i)

starting values for the recursion are

X(O) = q" and

Xl (0) = q, - q, + 2q,i = q, - q,"

23
The same

a

can also be ex:plmljed

all routines

of aOllendix Buses lhis leclhni.aue dir.ecIJ]y

ynOlniallO

lhe is broken UW'Wll. names used

in the SJJhrnllti

chart is shO'Nn

'5 are calculated

the

notation,

Lboxes = 2

t

Hi. Coefficient

gel,er'at,n flow c",rt.

24

Output header

! fl, Degree[O].,Degree(n - i)

I", 0 (subapenure count)

m '" 0 (boxes across)

least squares fit

Degree[n]

L z.:n.m,h,'H

p",o

n "" n+1

no until an n done

h "" h+1

no until all h done

file

Pseudo-inverse

matrix

6x25
on the errors

IlUm'llJ rlearH' for the

same.

a lower rI"orr'p.

Dr!!OnlT" that OPlnr.1'M"" the fnicwdna

caused

fast focusing simply app]]es the polynomial solution

technique to the indexing and does signal summation lnto all the

pixels in the image. As outlined above, index is done

nested we displays of

inner_Loop, Middle_Loop, and Outer_Loop as pseudo-ooded examples of how the focusing routine is written using the recursive technique

with nesting, A second-degree polynomial is used throughout for illustration purposes, These subroutines assume that the image is broken into a

number of boxes where each box has its own set of coefficients,

inner_Loop (display 1) is the simplest subroutine and follows the derivation

of the recursive formuia directly, It essentially increments i to focus a single

line in a box,

Code Comments

Inner loop subroutine

float *f;

float *s;

POlmerto first pixel in a line; f(i_start,k)

Pointer to vector from jth aperture position

float Pointer to coefficients vector for index calculation

when index < 0 of actual

of the box along i axis is lyixes.

Perform

data),

~f+ Set up initial conditions.

T = q[2]+q[2];

Rl = q[1H[2];

RO = q[O];

If RO < --{l.S then repeat

{f++;

Rl==

RO = RO+Rl};
2. Subroutine

are

Set up initial conditIons for

Perform summatIon on filst line,

for rest of lines>

tty next line in bOlL

mcrernerlted re-

_Loop
to

recursive approach meaus

iucreulented re~

zero.

all boxes.

Read data for first aperture position.

Sel up to loop

read for j th

f::;;; fo - \U'O"._"'~_

box :::::-2;

for 010 k_'Do:(es-l;

box:= box + 1;

f = f + UVA_""U._~'

for =0 to U,oxes-l

box box + 1,

Initial condition for Cj fix current box.
o to kaOll,s-l t

box::: box + 1;

f:::: f + uU"_'"~_'''

for

box=box+ 1;

f:::;;f+

IS reresults:

nc,lvnr,mi"! order on the

worst-case DCtSlitlon '>"Prtem" (j "

error in the f]ctatin£-p,}!n

geerr'Otl'yptrotdwees the fnllmu:

In

\vith a record

was conducted to e1F.lp"minF the

and

1

2

:3

228

964

2191

27

105

315

4 657

the nested reeursive !etetJ11lClue as il1 the example subrouwe the load as shoWI1 il1 table 2,

28
Grouping terms, we get

L = (inner loop adds) + (middle loop adds) + (outer loop adds)

= IKJB(i' + l)+KJB(i'+ l)k'+JB(i'+ l)(k'+ 1)j',

From this equation, it is clear that a low-order polynomial is crucial in the

inner loop. Conversely, the order of the polynomial in the outer loop can be

high iittie impact on the overall speed, Table 3 shows computational load for various configurations with j' =3 and J =2304.

Table 2. Coml'ut2,tlonal Symbol Definition

load, ::!-:::;:-::.::-.-;:.:;.:.==,--;--,:-:-:--------------- Polynomial order for i index

k' Polynomial order for k index

r Polynomial order for j index

J Number of points in the aperture

J Number of range bins (pixels) In box (iylxes)

K Number of azimuth bins (pixels) in box (kyixes)

B Number of boxes

J(i' + 1); adds per Inner_Loop call

L1 KILo + (i' + l)k1; adds per Middle_loop call

L J[L1 + (i' + l)(k' + 1)}1; adds per Outer_Loop (adds per image)

513 515 512 512

k'i

Boxes acro~ I

Total pixels

across

Table 3. Matrix s!lowlng <omputatlon.llo.d versus partitioning forj'= 3 and J = 2304.

1 2 3 4

27 103 256 512

19 5 2 1

Tolal

Boxes pixels

i 1 down down

] 227 18 4086

2 817 5 4085

3 2043 2 4086

L = 9.711

I

,S = 21,888

B = 342

, L = 1451

Is = 9120

I B = 95 ,

IL=19.33

I

,S= 4864

B = 38

L = 9.786 L = 9.769 L = 9.810

S = 8640 S = 4608 S = 2880

8=90 B=36 8= 18

L = 1458 L = 14.51 L = 14.53

S = 3600 S = ]920 S = 1200

B = 25 B= 10 8=5

L= ]9.4J L= ]9.3J L = ]9.32

S = ]920 S = 1024 S= 640

8 = 10 B=4 B:;:;.2

L total number in giga·adds.

B::: lotal number ~n,~~."e in the image.

S = the coe,lj'icl'enttahles = " + ljli' +

29
30

6.5 Implementation Notes

The algorithm developed here requires no multiplication except in the preprocessing (interpolation) stage. There already exist DSP (digital signal

processor) chips whose architecture is ideal for the FIR interpolation task.

The bulk of the computations, however, occur in the summing and index

calculation stage. Two facts make the summing algorithm attractive. First,

adders take considerably less area to implement in a VLSI (very-large-scale

integration) chip than multipliers. Second, parallel operation is extremely

simple; the image can simply be broken into boxes with a separate processor working independently on each box. In this case, only the coefficient

table would be different between processors, and a broadcast mode would

be needed to pass the signal data to each processor. Therefore, design of a

custom LSI chip appears practical and could result in real-time speeds.

If an off-the-shelf DSP chip with a parallel adder and multiplier is used to

perform this algorithm, then other options become available. For example,

the multiplier can be used in the summing algorithm to do interpolation on

the indexing rather than rounding. The multiplication required can be done

during other add cycles so that it takes zero time. Another possibility is to

calculate the index polynomial directly instead ofrecursively. Finally, since

all the operations can be fixed point, the address-generator ALU (arithmetic

logic unit) can sometimes be used in parallel with the floating-point units.
•

7. Beam Patterns and Sidelobe Structure

To develop an intuitive understanding for the beam shape, we assembled 16

figures to display, in the time domain, the main-lobe and sidelobe beam patterns. We simulated a resonant target by generating a data record for every

position in the aperture. The simulated scene was a single-point target. The

target bearing (see fig. 3) was squinted 15° off broadside (8 = 105°). Range

to the target R'was 750 ft, the aperture length Ls was 385 ft, and the aperture

height was 60 ft. The point target had an impulse response of

set) -

sin(2.nft)[0.5 + 0.5cos(4.nft)]

Sin(2.nft)exP[(4/

1

_ t)O.23/]

1 for O<t<-

4/

1 fort;,:- 4/

(15)

The data simulated a 2-GHz sample rate. A record length of 2048 samples

was made for each aperture position. Each record was preprocessed with a

times-8 interpolator, producing 16K records. Interpolation was done by the

standard FIR filter method. A 255-tap Parks-McClellan low-pass filter with

a 950-MHz cutoff was used to do the interpolation. Equation (7) (with n =

0) was used to produce the focused beams. A Hilbert transform was used to

obtain the magnitude that is plotted in the figures. Plots were made on a

decibel scale. Four 3-D plots were made, showing two viewing angles (on

axis and above axis) and two aperture weighting functions (Hamming and

rectangular) for each of four targets with different resonant frequencies (50,

200, 400, and 900 MHz). These are shown in figures 11 to 26.

The on-axis plots were made so that amplitude values could be easily read

off the plots. The above-axis plots were made to reveal the sidelobe structure and the ring-down time of the target. The axis labels were shifted so

that 0 range was at the point target and 0° was the bearing centered on the

target. Notice that all plots are 3-0, even the on-axis plots. The various

horizontal lines in the on-axis plots are the beam pattern on the lih range

bin. These horizontal lines are identical to those shown in the above-axis

plots; they are just being viewed "end on."

These figures are unique in that they show how the sidelobes spread in time

as one moves off the main beam. Because of the sharp rise time of the target echo, the contribution from the near and far ends of the aperture can be

seen as the early and late peaks in the sidelobe structure. Hamming weighting was applied to the array so that one can see the effect of weighting on

the sidelobe structure. It is interesting to note that although the peak

sidelobe levels drop only marginally, the average or integrated sidelobe levels are significantly lower when tapered aperture weighting is used. The

weighting also reduces the near and far peaks in the sidelobes since the

weighting reduces the contribution of the array ends.

31
Since the antenna is a linear system, it is no surprise that the beam pattern

behaves basically as classic antenna theory predicts. The aperture beam pattern is a function of (1) how long the aperture is relative to wavelength, and

(2) what kind of weighting is used to sum the points in the aperture. If uniform aperture weighting is used (a straight summation), then the typical

sin(f31/J)/(fJlp) pattern occurs, where 1/J is the angle off the main beam, and (3

ex: Ls/A. (3 establishes the width of the main beam. As the wavelength gets

small, or as the aperture gets long, the beam gets narrow.

Figure 11. SO·MHz

point reflector, equal

weighting, end view.

o

5 4 3 2 I 0 -I -2 -3 -4

Azimuth (degree)

1-

- 5

Figure 12. SO·MHz

point reflector,

Hamming

weighting, end view.

32

o

,....,

l:Q

~o""'-

Q'

::l

....

.

-0

Q.N e'

-<

-3 -4 -5
Figure 13. 50-MHz

point reOector, equal

weighting, above axis.

o

. ....-......-

F1gure 14. 50-MHz

point reOector,

Hamming weighting,

above axis. .

"0

-g~

-

<~

~'

..

e

-

. . ~--..-

33
Figure 15. 200-MHz

point reflector, equal

weighting, end view.

o

---.

l:Q o "0-

'-' '

,

5 4 3 2 I 0 -I -2 -3 -4 -5

Azimuth (degree)

Figure 16. 200-MHz

point reflector,

Hamming weighting,

end view.

34

o
4

Figure 17. 200·MHz

point reOector, equal

weighting, above axis.

Figure 18. 200·MHz

point reDector,

Hamming weighting,

above axis.

'"

"g~ "'"

-:a

e

<~

fo'

..

e

-

35
Figure 19. 400-MHz

point reflector,

Hamming weighting,

end view.

Figure 20. 400-MHz

point reflector,

Hamming weighting,

end view.

36

o
Figure 21. 400-MHz

point reOectort equal

weighting, above axis.

"

Figure 22. 400-MHz

point reflector,

Hamming weighting,

above axis. =?

37
Figure 23. 900-MHz

point reflector, equal

weighting, end view.

Figure 24. 900-MHz

point reflector,

Hamming weighting,

end view.

o

o

"'0

;:l

...

.

_0-

c..'" 8 '

<

0 0 00,.., OJ ,

8

-i= )~'. __L'.+

2 I . 5

o

I .0 .5 0

Azimuth

i:

If·

. 5 1 . 0

(degree)

- 1 . 5 - 2 . 0

38

o

"'0

;:l

...

._0-

c..'" 8 '

<

0 0 00,.., OJ ,

8

- o

'"

,

2

I

t

1 .5 1.0 .5 0

Azimuth

I"

" f:!

.5 1. 0

(degree)

ill,

f "". I

-1.5 -2.0
Figure 25. 900·MHz

point reflector, equal

weighting, above axis.

Figure 26. 900-MHz

point renector,

Hamming weighting,

above axis.

o

o

..

~.e. "

'"

,.........t.

,.

o

39
8. Summary

40

This report identifies a frequency-independent processing algorithm to get a

perfectly focused impulse response from any object at any position from an

ultra-wide-bandwidth synthetic aperture radar. The report also presents an

approximation that reduces the computational complexity of the algorithm.

An error analysis of this approximation demonstrates its applicability to focus even high-Q objects in the near field of an aperture. An implementation

that is both computationally efficient and applicable to real-time motion

compensation is also presented. Finally, plots are presented demonstrating

the capability of the algorithm to focus ringing targets over an 18-to-l

bandwidth.
References

1. William M. Brown and Ronald J. Fredricks, Range-Doppler Imaging with

Motion through Resolution Cells, IEEE Trans. Aerosp. Electron. Syst.

AES-S, No.1 (January 1969), 98-102.

2. J. L. Bauck and W. K. Jenkins, Tomographic Processing ofSpotlight-Mode

Synthetic Aperture Radar Signals with Compensation for Wavefront Curvature, IEEE In!. Conf. Acoust. Speech Signal Process. (11-14 April 1988).

3. Edwin D. Banta, Limitations on SAR Image Area Due to Motion Through

Resolution Cells, Correspondence, IEEE Trans. Aerosp. Electron. Syst.

AES-22, No.6 (November 1986), 799-803.

4. D. Mensa and G. Heidbreder, Bistatic Synthetic-Aperture RadarImaging of

Rotating Objects, IEEE Trans. Aerosp. Electron. Syst. AES-18, No.4

(July 1982),423-431.

5. Dale A. Ausherman, Adam Kozma, Jack L. Walker, Harrison M. Jones, and

Enrico C. Poggio, Developments in Radar Imaging, IEEE Trans. Aerosp.

Electron. Syst. AES-20, No.5 (July 1984),363-400.

6. J. L. Walker, Range-Doppler Imaging ofRotating Objects, IEEE Trans.

Aerosp. Electron. Syst. AES-16 (January 1980),23-52.

7. J. A. Landt, E. K. Miller, and M. Van Blaricum, WT-MBAILLLIB: A Computer Program for the Time-Domain Electromagnetic Response of ThinWire Structures, Lawrence Livermore Laboratory (6 May 1974).

8. Albert H. Nuttall, Efficient Evaluation ofPolynomials and Exponentials of

Polynomials for Equispaced Arguments, IEEE Trans. Acoust. Speech Signal Process. ASSP-3S, No. 10 (October 1987), 1486-1487.

41
Appendix A. Coefficient Generator Program

43
Appendix A

Contents

page

A-I. Main Program to Calculate Coefficients (main.c) 45

A-2. Main Coefficient Generator Routine (coefgen.c) 46

A-3. Subroutine Find Ideal Index Vector (index.c) 48

A-4. Geometry File - Declare All Global Constants (coefgen.h) 49

A-5. Declare All Global Variables (coefgen.var) 50

A-6. Matrix Pseudo Inverse Coefficients (initmat.c) 51

A-7. Initialize All Variables (varinit.c) 55

A-S. Find Least Squares Polynomial Fit (poly_fit.c) 57

A-9. Matrix Inverter (inverse.c) 59

44
Appendix A

A-I. Main Program to Calculate Coefficients (main.c)

This is a listing of the code that calculates the coefficients needed by the

fast focusing algorithm. It takes as inputs the geometry of the synthetic aperture radar (SAR) and image area, and it outputs the coefficient vectors

required.

/***************************************************************************

Program: coefgen

Description: This is the main program to generate coefficients

for fast focusing algorithm.

*****************************************************************************/

#include <malloc.h>

#include <stdio.h>

#include <math.h>

#include "coefgen.const"

#include "coefgen.var"

mainO

{

long cacheset;

FILE "fp,"tstartjp;

char fn[80J;

long i;

ia=(BOX_SIZE_AZIMUTH-4)f4;

ib=(BOX_SIZE_RADIAL-3)f4;

f" initialize variables "f

coefgen_varinitO;

j" initialize pseudo inver matrix"j

initmatO;

printf("Enter coefficient a output file name ===> ");

scanf("%s",fn);

fp=fopen(fn,"w");

if(fp==NULL)

{

printf("Error open output file \n");

exit(!);

}

/*

45
I*geometry file*1

I*list of variables*1

Appendix A

printf("Enter data acquisition timing file name ===> ");

scanf("%s",fn);

*1

1*

tstart_fp=fopen("delaytime.dat"," r");

if(tstartJp==NULL)

{

printf("Error open input file \n");

exit(O);

}

read_delaytime(tstart_fp);

*1

coefgen(fp);

}

A-2. Main Coefficient Generator Routine (coefgen.c)

#include "coefgen.h"

#include "coefgen.var"

#include <stdio.h>

#include <math.h>

extern indexO;

extern mxmul_O;

extern poly-fitO;

1* Note that Reference point is now taken at coordinate kpixel= n_azimuth/2-1 *1

/* ipixel= n_radial/2 -I *1

1* At every position data were taken so that the reference point is at center *1

/* data buffer *1

void coefgen(fp)

FILE *fp;

{

float input[NPOINT_APER/4];

long i,j;

long section,kbox,ibox,position,position_start,posi tion_stop;

long ipoint,kpoint;

for(i=O;i<NPOINT_APER/n_section;i++)

{

input[i1=(f10a t)i;

}

for(section=O;section<n section;section++)

{

position_start=section*n_aper/n_section;

position_stop=position_start+n_aper/n_section;

46

/
Appendix A

for(kbox=O;kbox<NBOX_AZIMUTH;kbox++)

{

for(ibox=O;ibox<NBOX_RADIAL;ibox++)

{

printf("processing section %d ibox %d kbox %d\n",section,ibox,kbox);

for(position=position_start;position<position_stop;position++)

{

i******Calculating Actual index for all samples points in a box**********/

i=O;

for(ipoint=O; ipoint<NPOINT_BOXSAMPLE_RADIAL;ipoint++)

{

for(kpoint=O;kpoinl<NPOINT_BOXSAMPLE_AZIMUTH;kpoint++)

{

ipixel=ibox*BOX_SIZE_RADIAL+ipoint*ib;

jpixel=kbox*BOX_SIZE_AZIMUTH+kpoint*ia;

d=«float)position-«float)n_aper/2.-1.»*(aper_Iength/«float)n_aper-l.»; /* distance from radar

to center of aperture */

x=sqrt(rcenter_ref*rcenter_ref-radar_height2);

r_ref=sqrt(radar_height2+x*x*c_theta_center_ref*c_theta_centerJef+(dx*s_theta_centerJef)*(d-x*s_theta_center_ref);

rmin=r_ref·d_rcenter*«float)n_radiaI/2.-1.);

index(&ipixel,&jpixel,&findex[i]);

i++;

}

}

/* generate coef for this box at this position */

mxmuls(mat,&mat_c_stride,&stride,findex,&findex_c_stride,&stride,coef,&coef_c_stride,

&stride,&n_coef,&i_one,&n_boxsample);

/* save in coefc[i)[position) */

for(i=O;i<COEF_SIZE;i++)

{

coefc[i)[position-position_start)=coef[i);

}

/* for debug only */

/* printf("pos= %d tstart= %.3e\n",position,2.0*rmin/c); */

/* end debug */

} /* position */

for(i=O;i<COEF_SIZE;i++)

{

printf("Doing polyfit for coef %d\n",i);

poly_fit(input,&coefc[i)[O),n_aper/n_section,deg[i),&coefa[i)[0]);

47
Appendix A

for(j=O;j« deg[i]+ 1);j++)

{

fprintf(fp,"%e\n",coefa[i][j]); 1* save ali] to file *1

}

}

} 1* ibox *1

} 1* kbox *1

} 1* section *1

} 1* subroutine *1

A-3. Subroutine Find Ideal Index Vector (index.c)

/*************************************************************************/

Subroutine:

Input:

ipixel

jpixel

a_span

a ofset

d

d_rcenter

dr8

rmincenter

hgt

hgt2

length

Output:

findex

index.c

pixel radial coordinate

pixel angle coordinate

angle spanned by the patch

offset angle of the center line

distance from middle position

sampling range

(sampling range)/8

min range rom center position

height of building

square the height

length of the building

floating point index to ivalue of that pixel

************************************************************************/

#include "coefgen.const"

#include "coefgen.var"

#include <math.h>

index(ipixel,kpixel,findex)

int *ipixel,*kpixel;

float *findex;

{

theta=a_ofset-a_span/2.+(float)*kpixel *d_theta;

c_theta=cos(theta);

s_theta=sin(theta);

rcenter=rmincenter+(float)* ipixel *d_rcenter;

48

•
Appendix A

x=sqrt(rcenter* rcenter-radar_height2);

r=sqrt(radar_height2+x*x*c_theta*c_theta+(d-x*s_theta)*(d-x*s_theta));

*findex=(r-rmin)/dr8;

}

A-4. Geometry File - Declare All Global Constants

(coefgen.h)

#define NPOINT_AZIMUTH 600 j* number of bearing lines *j

#define NPOINT RADIAL 4095 j* number of radial lines *j

#define NPOINT APER 2304 j* # of positions in aperture *j

#define NPOINT_DATA 2048 j* number of original data points *j

#define NPOINT_DATA_INTER NPOINT_DATA*8 j* number of data points after

interpolated *j

#define PI 3.141592654

#define RADAR HEIGHT 60. j* radar height in feet *j

#define A OFSET -15.0 j* offset angle from center line *j

#define A_SPAN 54.0 j* spanning angle of the patch *j

#define RMINCENTER 550. j* range from center position to

nearest point on the patch *j

#define RCENTER_REF 802.0 j* range (ft) of ref. point from center pos. *j

#define THETA_CENTER_REF -15.0 j* angle (deg)of ref. point from center pos. *j

#define SAMPLING_RATE 2.0e09 j* sampling frequency ofsignal *j

#define SAMPLING]ERIOD 5.0e-1O j* ts=ljfs *j

#define BOX SIZE RADIAL 195 - - #define BOX SIZE AZIMUTH 100 - - #define NBOX_RADIAL NPOINT_RADIALlBOX_SIZE_RADIAL

#define NBOX_AZIMUTH NPOINT_AZIMUTH/BOX_SIZE_AZIMUTH

#define SECTION SIZE 4 j* # ofsections for one aperture *j

#define COEF SIZE 6 j* # of coeffs for curve fit *j

#define MAXDEG 3 j* maximum degree for poly. fit *j

#define NPOINT_BOXSAMPLE_RADIAL 5 j* # ofsamples in a box in radial

direction *j

#define NPOINT_BOXSAMPLE_AZIMUTH 5 j* # of samples in azimuth direction

for every box *j

#define NPOINT BOXSAMPLE

NPOINT_BOXSAMPLE_RADIAL*NPOINT_BOXSAMPLE_AZIMUTH

1* # ofsamples in a box for curve fit *j

49
Appendix A

A-5. Declare All Global Variables (coefgen.var)

struct complex { float r,i;}; 1* define a complex type *1

*1

float nyquist_filter;

float nyquist_data;

1* Data Variables *1

float pixel[NPOINT_AZIMUTH][NPOINT_RADIAL]; 1* array of image

float data[NPOINT_DATA]; 1* original data bufer *1

float data_inter[NPOINT_DATA_INTER]; 1* interpolated data buffer *1

struct complex data_inter_fft[NPOINT_DATA_INTER/2]; 1* Real->Complex Forward FIT

of dataJnter *1

float filter_coef[NPOINT_DATA_INTER]; 1* filter coefficients *1

struct complex filterjft[NPOINT_DATA_INTER/2]; 1* Real->Complex Forward FIT

offilter_coef *1

1* value of FIT of filter at Nyquist point *1

1* value of FIT of data at Nyquist Point *1

1* Geometry Variables *1

float a_ofset; 1* offset angle from the center line *1

float a_span; 1* spanning angle of the patch *1

float d_theta; 1* delta angle *1

float x,theta; /* coordinate of a pixel *1

float c_theta,s_theta; 1* cosine and sine of theha *1

float d; 1* distance from radar to center position

positive to the right, neg. to the left *1

float rcenter,rmincenter,rmaxcenter; 1* range from center position *1

float rcenterJef; 1* range from center pos. to ref point *1

float theta_center_ref; 1* angle ofref. point from center position *1

float r_ref; 1* range from any pos. to ref. point *1

float d_rcenter; 1* sampling distance from center position *1

float dr8; 1* (sampling distance)/8 *1

float r,rmin,rrnax; 1* range from any position *1

float aper_Iength; 1* length of aperture *1

float radar_height; 1* height of radar *1

float radar_height2; 1* square the height of radar *1

1* Radar Variables *1

float c; 1* speed of wave *1

float ts; 1* sampling period ofsignal *1

float fs; 1* sampling frequency of signal *1

long n_azimuth;

long n_radial;

long n_aper;

long pix_size;

1* # of points in azimuth direction *1

1* # of points in radial direction *1

1* # of positions in aperture *1

1* # of points in pixel array *1

50
long n_data;

long n_data_inter;

long n_data_inter_half;

long n_boxsample;

long n_coef;

long n_section;

1* number of original data points *1

1* number of interpolated data points

1* 1/2 # of interpolated data points

1* # ofsamples in a box for curve fit

1* # of coefficients curve fit *1

1* # of sections for one aperture *1

*1

*1

*1

Appendix A

1* SSL VAriables *1

float f_zero;

float Cone;

long i_one;

long stride;

1* floating point zero

1* floating point 1

1* integer 1

1* stride for supercard ssl

*1

*1

*1

*1

1* working variables *1

long n-position;

float e_index,a_index,error,maxerror,minerror;

long ierr_max,jerr_max,ierr_min,jerr_min;

long column_max,row_max,column_min,row_min;

long ia,ib;

long ipixel,jpixel;

float c_theta_centerJef,s_theta_center_ref;

float

mat[COEF_SIZE][NPOINT_BOXSAMPLE],findex[NPOINT_BOXSAMPLE],coeqCOEF_SIZE];

float coefc[COEF_SIZE][NPOINT_APER/4]; 1* c coef. for each section *1

float coefa[COEF_SIZE][MAXDEG+l]; 1* a coef. for each c *1

long deg[COEF_SIZE]; 1* degree for each coefc *1

long mat_c_stride,findex_c_stride,coef_c_stride;

float tstart[NPOINT_APER]; 1* time from trigger to start data acq. at *1

1* each position *1

A-6. Matrix Pseudo Inverse Coefficients (initmat.c)

#incJude <stdio.h>

#incJude <math.h>

#incJude "coefgen.const"

#incJude "coefgen.var"

initmatO

{

int i,j;

float a,b;

a=((float)BOX_SIZE_AZIMUTH-4.)/4.;

b=((float)BOX_SIZE_RADIAL-3.)/4.;

51
Appendix A

mat[0)[0]=93./175.;

mat[O][1 ]=27./175.;

mat[0)[2]=(-9.)/175.;

mat[0][3]=(-3.)/35.;

mat[0][4]=9./175.;

mat[0][5]=62./175.;

mat[0][6]=18./175.;

mat[0][7]=(-6.)/175.;

mat[0][8]=(-2.)135.;

mat[0)[9]=6./175.;

mat[0)[1O]=31./175.;

mat[0)[1l]=9./175.;

mat[0)[12]=(-3.)l175.;

mat[0)[13]=(-I.)/35.;

mat[0)[14]=3./175.;

mat[0)[15]=0.;

mat[0)[16]=0.;

mat[0][17]=0.;

mat[0)[18]=0.;

mat[0)[19]=0.;

mat[0)[20]=(-31.)/175.;

mat[0)[21]=(-9.)1175.;

mat[0)[22]=3./175.;

mat[0)[23]=1./35.;

mat[0)[24]=(-3.)/175.;

mat[1 )[0]=(-81.)/(175. *a);

mat[1)[1]=39./(350.*a);

mat[1 )[2]=12./(35. *a);

mat[1)[3]=81./(350.*a);

mat[1 ][4]=(-39.)/(175.*a);

mat[1 )[5]=(-54.)1(175. *a);

mat[1 ][6]=13./(175.*a);

mat[1)[7]=8./(35. *a);

mat[1 )[8]=27./(175. *a);

mat[1)[9]=(-26.)/(175 .*a);

mat[1 )[10]=(-27.)/(175.*a);

mat[1 )[11 ]=13./(350.*a);

mat[1)[12]=4./(35. *a);

mat[1 )[13]=27./(350.*a);

mat[1)[14]=(-13.)/(175. *a);

mat[1)[15]=0.;

mat[1)[16]=0.;

mat[1)[17]=0.;

mat[1][18]=0.;

52
mat[1](19]=0.;

mat[1](20]=27./(175.*a);

mat[l ](21]=(-13.)1(350. *a);

mat[l][22]=(-4.)/(35.*a);

mat[1 ][23]=(-27.)/(350.*a);

mat[l ](24]=13./(175.*a);

mat[2](0]=3./(35.*pow(a,2.»;

mat[2](1]=(-3.)/(70.*pow(a,2.»;

mat[2](2]=(-3.)1(35. *pow(a,2.»;

mat[2][3]=(-3.)/(70. *pow(a,2.»;

mat[2](4]=3./(35. *pow(a,2.»;

mat[2](5]=2./(35.*pow(a,2.»;

mat[2][6]=(-1.)/(35. *pow(a,2.»;

mat[2](7]=(-2.)I(35.*pow(a,2.»;

mat[2](8]=(-1.)/(35. *pow(a,2.»;

mat[2][9]=2./(35.*pow(a,2.»;

mat[2][10]=1./(35.*pow(a,2.»;

mat[2](11 ]=(-1.)/(70.*pow(a,2.»;

mat[2][l2]=(-1.)/(35. *pow(a,2.»;

mat[2][13]=(-1.)/(70.*pow(a,2.»;

mat[2][14]=1./(35.*pow(a,2.»;

mat[2](15]=0.;

mat[2][16]=0.;

mat[2](17]=0.;

mat[2](18]=0.;

mat[2][19]=0.;

mat[2](20]=(-1.)/(35. *pow(a,2.»;

mat[2](21 ]=1./(70.*pow(a,2.»;

mat[2](22]=1./(35.*pow(a,2.»;

mat[2][23]=1./(70. *pow(a,2.»;

mat[2](24]=(-1.)/(35. *pow(a,2.»;

mat[3](0]=(-31.)/(175.*b);

mat[3](1]=(-9.)/(175. *b);

mat[3][2]=3./(175. *b);

mat[3](3]=1./(35.*b);

mat[3](4]=(-3.)1(175.*b);

mat[3][5]=(-31.)/(350. *b);

mat[3][6]=(-9.)/(350. *b);

mat[3](7]=3./(350.*b);

mat[3](8]=1./(70.*b);

mat[3](9]=(-3.)I(350.*b);

mat[3](1O]=0.;

mat[3][ 11]=0.;

AppendixA

53
Appendix A

mal[3][12]=0.;

mal[3][13]=0.;

mal[3][14]=0.;

mal[3][15]=31./(350. *b);

mal[3][16]=9./(350. *b);

mal[3][17]=(-3.)/(350. *b);

mal[3][18]=(-1.)/(70. *b);

mal[3][19]=3./(350. *b);

mal[3][20]=31./(175. *b);

mal[3][21]=9./(175.*b);

mal[3][22]=(-3.)/(175.*b);

mal[3][23]=(-1.)/(35. *b);

mal[3][24]=3./(175.*b);

mall4][0]=27./(175.*a*b);

mal[4][l]=(-13.)/(350.*a*b);

mal[4][2]=(-4.)/(35.*a*b);

mal[4][3]=(-27.)/(350. *a*b);

malt4][4]=13./(175.*a*b);

malt4][5]=27./(350. *a*b);

malt4][6]=(-13.)/(700.*a*b);

mal[4][7]=(-2.)/(35.*a*b);

mal[4][8]=(-27.)/(700.*a*b);

malt4][9]=13.(350."a*b);

malt4][10]=0.;

mal[4][ll]=0.;

mal[4][12]=0.;

mal[4][13]=0.;

mal[4][14]=0.;

malt4][15]=(-27.)1(350.*a*b);

mal[4][16]=13./(700. *a*b);

mal[4][17]=2./(35. *a*b);

mal[4][18]=27./(700. *a*b);

malt4][19]=(-13.)/(350. *a*b);

mal[4][20]=(-27.)I(175.*a*b);

mal[4][21 ]=13./(350.*a*b);

mal[4][22]=4./(35. *a*b);

malt4][23]=27./(350.*a*b);

mall4][24]=(-13.)/(175.*a*b);

malt5][0]=(-1.)1(35.*pow(a,2.)*b);

mal[5][1]=1./(70.*pow(a,2.)*b);

mal[5][2]=1./(35.*pow(a,2.)*b);

mal[5][3]=1./(70. *pow(a,2.)*b);

malt5][4]=(-1.)1(35.*pow(a,2.)*b);

54
Appendix A

mat(5)[5]=(-1.)I(70. *pow(a,2.)*b);

mati5](6]=1./(140.*pow(a,2.)* b);

mat(5)[7]=1./(70. *pow(a,2.)*b);

mati5)[8]=1./(140.*pow(a,2.)*b);

mati5](9]=(-1.)/(70.*pow(a,2.)* b);

mat(5)[1O]=0.;

mat(5)[1l]=0.;

mat(5)[12]=0.;

mat[5][13]=0.;

mat[5][14]=0.;

mat[5)[ 15]=1./(70. *pow(a,2.)*b);

mat[5][16]=(-1.)I(140.*pow(a,2.)*b);

mat[5][17]=(-1.)1(70. *pow(a,2.)*b);

mat[5)[18]=(-1.)/(140.*pow(a,2.)*b);

mat(5][19]=1./(70.*pow(a,2.)*b);

mat[5)[20]=1./(35.*pow(a,2.)*b);

mat[5][21 ]=(-1.)1(70.*pow(a,2.)*b);

mat[5][22]=(-1.)/(35.*pow(a,2.)*b);

mat[5][23]=(-1.)/(70.*pow(a,2.)*b);

mat(5][24]=1./(35.*pow(a,2.)*b);

}

A-7. Initialize All Variables (varinit.c)

/***************************************************************************

Subroutine: coefgen_varinit

Description: initialize all neccessary variables

****************************************************************************/

#include <stdio.h>

#include <math.h>

#include "coefgen.const"

#include "coefgen.var"

coefgen_varinitO

{

n_azimuth=NPOINT_AZIMUTH; 1* # of points in azi. direction *1

n_radial=NPOINT_RADIAL; 1* # of points in rad. direction *1

pix_size=n_azimuth*nJadial; 1* Pixel array size *1

n_data=NPOINT_DATA; 1* # of orig. data points *1

n_data_inter=NPOINT_DATA_INTER; 1* # of interpolated. data points*1

n_data_inter_half=NPOINT_DATA_INTER/2; 1* lI2 # of inter. data points *1

55
Appendix A

n_aper=NPOINT_APER; /* # of points in the aperture *f

n_boxsample=NPOINT_BOXSAMPLE; f* # of samples in box for curve fit *f

n_coef=COEF_SIZE; f* # of coeffs for curve fit *f

n_section=SECTION_SIZE; /* # ofsections for one aperture*f

f* Radar Variables *f

fs=SAMPLING_RATE; 1* Sampling Frequency *1

ts=SAMPLING]ERIOD; 1* Sampling period *1

c=3.e8; 1* Speed of wave *1

1* Geometry variables *f

a_ofset=A_OFSET*PI/180.; 1* Offset angle from center line *1

a_span=A_SPAN*PI/180.; /* Spanning angle of the patch *f

d_theta=a_span/«float)n_azimuth-I.); 1* delta theta *f

aper_Iength=(n_aper-l)*2.0*.0254; 1* length of aperture *1

radar_height=RADAR_HEIGHT*12. *0.0254; /* height of radar *1

radar_height2=radar_height*radar_height; 1* square the height *1

rmincenter=RMINCENTER*12.*0.0254; 1* min range from center position

to reference point *1

d_rcenter=ts*c/(2.0*2.0); f* sampling range *1

1* project back to 2*n_data samples *1

dr8=ts*cf(2.0*8.0); /* interpolated 16K buffer *f

f*

theta_center=a_ofset-a_spanf2.+((float)n_azimuth/2.-1.)*d_theta;

c_theta_center=cos(theta_center);

s_theta_center=sin(theta_center);

rcenter_ref=rmincenter+dJcenter*«float)n_radial/2.-1.);

*f

rcenterJef=RCENTER_REF*12. *.0254; 1* range of ref. point from center pos. *1

theta_center_ref=THETA_CENTER_REF*PIf180.; f* angle of ref. point from center

position *f

c_theta_center_ref=cos(theta_centerJef);

s_theta_center_ref=sin(theta_centerJef);

f* SSL Variables *f

Czero=O.; 1* floating point zero *1

stride=l; f* stride for ssl *1

f_one=1.0; f* floating point 1 *1

i_one=l; 1* integer 1 *1

mat_c_stride=n_boxsample; /* column stride for mat *1

findex_c_stride=1; /* column stride for findex *f

coef_c_stride=l; 1* column stride for coeff *1

deg[O]=3; 1* degree for first coefc *1

deg[l]=3;

56
Appendix A

deg[2]=3;

deg[3]=3;

deg[4]=2;

deg[5]=2;

/* xgints_(pixel,&f_zero,&pix_size,&stride); OliO clear pixel[][] */

}

A-S. Find Least Squares Polynomial Fit (poly_fit.c)

1***************************************************** ********************

Subroutine: poly_fit.c

Description:

Perform data fit to polynomial

Input: x[n] input array

y[n] input array

n number of elements

deg degree of poly.

output coeff[deg+ l] coefficients of poly

**************************************************************************/

#include <stdio.h>

#include <malloc.h>

#include <math.h>

void poILfit(x,y,n,deg,coeff)

float x[],y[],coeff[];

long n,deg;

{

double *dx,*dy,*dcoeff;

double *dX,*dXtrans,*dA,*dB, ode;

long m,i,j,one;

one=l;

m=deg+l;

dx=malloc(n*sizeof(double»;

if(dx==NULL)

{

printf("Memory allocation Error!! !\n");

exil(l);

}

dy=malloc(n*sizeof(double»;

if(dy==NULL)

{

printf("Memory allocation Error !!!\n");

exit(1);

}

57
Appendix A

dcoeff=malloc(m'sizeof(double»;

if(dcoeff==NULL)

{

printf("Memory allocation Error!! !\n");

exit(l);

}

dX=malloc(n'm'sizeof(double»;

if(dX==NULL)

{

printf("Memory allocation Error !!!\n");

exit(l);

}

dXtrans=malloc(n'm'sizeof(double»;

if(dX==NULL)

{

printf("Memory allocation Error!! !\n");

exit(l);

}

dA=malloc(m'm'sizeof(double»;

if(dA==NULL)

{

printf("Memory allocation Error !!!\n");

exil(l);

}

dB=malloc(m'm'sizeof(double»;

if(dB==NULL)

{

printf("Memory allocation Error!!!\n");

exil(l);

}

dC=malloc(m'sizeof(double»;

if(dx==NULL)

{

printf("Memory allocation Error!!!\n");

exit(l);

}

for(i=O;i<n;i++)

{

dx[i]=(double)x[i];

dy[i]=(double)y[i];

}

for(i=O;i<n;i++)

{

dX[i·m]=l.O;

58
}

for(j=l;j<m;j++)

{

for(i=O;i<n;i++)

{

dX[j+i *m]=pow(dx[i],(double)j);

}

}

mxlrans(dX,n,m,dXlrans);

mxmuld(dXtrans,&n,&one,dX,&m,&one,dA,&m,&one,&m,&m,&n);

mat_inverse(dA,dB,m);

mxmuld(dXlrans,&n,&one,dy,&one,&one,dC,&one,&one,&m,&one,&n);

mxmuld(dB,&m,&one,dC,&one,&one,dcoeff,&one,&one,&m,&one,&m);

for(i=O;i<m;i++)

{

coeff[i]=(floal)dcoeff[i];

}

free(dx);

free(dy);

free(dA);

free(dB);

free(dC);

free(dX);

free(dXlrans);

free(dcoeff);

}

A-9. Matrix Inverter (inverse.c)

#include <sldio.h>

mat_inverse(source_mal,desl_mal,size_mat)

double source_mal[J;

double dest_mat[J;

long size_mal;

{

long n,i,j,k,ki,counl;

double b,b1;

double err=O.OOOl;

double a[lOOJ(lOO];

n=size_mal;

counl=O;

Appendix A

59
Appendix A

for(i=O;i<size_mat;i++)

{

for(j=O;j<size_mat;j++)

{

a[i+ l][j+1]=source_mat[count++];

}

}

for(i=l ;i<=n;i++)

{

for(j=n+ l;j<=2*n;j++)

{

if«j-n-i)==O)

{ a[i][j]=l.O; }

else

{a[i][j]=O.; }

}

}

for(k=l;k<=n-l;k++)

{

b=a[k][k];

ki=k;

for(i=k+ l;i<=n;i++)

{

if«abs(b)-abs(a[i][k]))<0)

{

b=a[i][k];

ki=i;

}

}

if«abs(b)-err)<O)

{

printf("Error matrix inverse, matrix is singular\n");

exit(l);

}

if«ki-k)!=O)

{

for(j=k;j<=2*n;j++)

{

60
•

bl=a[kJUJ;

arkJ[jJ=a[kiJ[jJ;

a[kiJUJ=bl;

}

}

for(j=k+ l;j<=Z*n;j++) {

arkJ[jJ=a[kJUJIb;

}

for(i=k+l;i<=n;i++)

{

for(j=k+ l;j<=Z*n;j++) {

a[iJUJ=a[iJUJ-a[iJ[kJ*arkJUJ; }

}

}

for(j=n+ l;j<=Z*n;j++) {

a[nJUJ=a[nJUJ/a[nJ[nJ;

}

for(k=n-l;k>=l;k=k-l) {

for(j=n+ l;j<=Z*n;j++) {

for(i=k+ l;i<=n;i++) {

arkJUJ=a[kJUJ-a[kJ[iJ*a[iJ[jJ;

}

}

}

count=O;

for(i=O;i<size_mat;i++) {

for(j=O;j <size_mat;j++)

{

dest_mat[count++J=a[i+1][size_mat+j+1J;

}

}

}

AppendixA

61
Appendix B. UWB SAR Focusing Program

63
Appendix B

Contents

page

B-1. Main Program for SUN Computer (focus.c) 65

B-2. Main Program for Multiple Array Processors (sc.c) 70

B-3. Routines Used to Interpolate (inter.c) 73

8-4. Initialize Interpolation Filter (filtinitc) 77

B-5. Main Back Projection Focusing Routing (bp.c) 78

:8-6. Declare All Global Constants (Focus.h) 82

B-7. Declare All Global Variables (Focus.var) 83

B-8. Initialize All Global Variables on Both Processors 85

64
-

Appendix B

B-1. Main Program for SUN Computer (focus.c)

This is a listing of the code that focuses the ultra-wideband (UWB) synthetic aperture radar (SAR) data. It takes as inputs the coefficient vectors

generated by the code listed in appendix A and the SAR data, and it outputs

a focused image.

1***************************************************** **************

program: focus.c

description:

this programs reads radar data from file, interpolates

data using convolution in freq. domain, and projects

data back to the polar grid on the ground. The indeces

used in back projection are computed from the file

which contains coefficients for a particular geometry

*******************************************************************/

#include <stdio.h>

#include "focus.h"

#include "focus.var"

float data[NPOINT_DATA); /* data buffer for host */

struct cstype *cs[NO_SUPERCARD);

main 0

{

float tstart_err[NPOINT_APER); 1* tstart-tstart_trunc for each position */

FILE *inputfile; 1* input file contains radar data */

FILE *outputfile; 1* output file contains focused image */

FILE *fiIterfile; /* input file contains filter coefficients */

FILE *coeffile; /* input file contains back projection */

/* coefficients */

FILE *tstart_err_file; /* input file contains tstart-tstart_trunc */

FILE *junkfile;

char inputname(80);

char outputname(80);

char filtername(80);

char coefname[80);

char tstart_err_name(80);

char temp_string(20);

long section,position,box,coefc_order,coefa_order;

long i,j; 1* just working variable */

65
Appendix B

float fJ'osition;

long data_ready=1; /* maibox to indicate data ready host---> SC */

long data_consumed=2; 1* mailbox to indicate data consumed host <--- SC */

long msg; 1* message read from mailbox */

long one=1; /* nonzero message to put in mailbox */

long cacheset=1; 1* cacheset=O turn off cache */

long numpar=1;

float pixel_zero[BOX_SIZE_AZIMUTH][NPOINT..:.RADIAL];

/**'* open supercards ***********.***************************Ift**Ift**/

for (i=O;i<NO_SUPERCARD;i++)

{

cs[i]=(struct cstype *)xlubgn_(O,&cacheset,"sc.lo");

}

/**'* initialize supercard variables '" '" *'* *'* '* **'* '* '* '* **'* '* ******** *'* '* *'*I

focus_varinitO;

/*** initialize supercards' id ***********************************/

for(i=O;i<NO_SUPERCARD;i++)

{

cs[i]->supercard_id=i;

}

/*** Enter Input ********** "'* ******* ******************************/

printf("Enter input file name ( .raw )===> ");

scanf("%s",inputname);

printf("Enter output file name ( .focus)===> ");

scanf("%s",outputname);

1*

printf("Enter back projection coefficient file name (coefa.dat)===> ");

scanf("%s",coefname);

printf("Enter start time difference file name (delaytime_diff.dat)===> ");

scanf("%s",tstart_err_name);

*/

strcpy(coefname,"coefa.dat");

strcpy(tstart_err_name,"delaytime_diff.dat");

printf("Do you want hamming weight accross the aperture (y or n) ===> ");

scanf("%s",temp_string);

for(j=O;j<NO_SUPERCARD;j++)

{

cs[j]->ham_flag=O;

66
if(ternp_ string[O] =='y')

{

es[j]->ham_flag= 1;

}

}

strepy(fiItername,"filter.dat");

if((inputfile=fopen(inputname,"rb"))==NULL)

{

printf("Error open input file\n");

eXil(l );

}

if((outputfile=fopen(outputname,"wb"))==NULL)

{

printf("Error open output file\n");

exit(1);

}

if((filterfile=fopen(filtername, "r"))==NULL)

{

printf("Error open filter file\n");

exit(l);

}

if((coeffile=fopen(coefname,"r"))==NULL)

{

printf("Error open back projection coefficient file\n");

exit(l);

}

if((tstart_errjile=fopen(tstart_err_name,"r"))==NULL)

{

printf("Error open tstart difference file\n");

exit(l);

}

/*** Read filter coefficients **********************************/

/* •• into 1st supercard and copy to others supercards *.*••*.*.*/

printf("»> Reading filter coefficients\n");

for(i=O;i<FILTER_LENGTH;i++)

{

fscanf(fil terfile," %f",&cs[O]->filter_coef[i]);

}

forG=l;j<NO_SUPERCARD;j++)

{

for(i=O;i<FILTER_LENGTH;i++)

{

Appendix B

67
Appendix B

csUl->filter_coef[i]=cs[O]->filter_coef[i];

}

}

1*** Read in tstart_err for all positions to first supercard *****1

1*** and then copy to other supercards ***************************1

printf("»> Reading tstart_err data \n");

for(i=O;i<NPOINT_APER;i++)

{

fscanf(tstart_err_file,"%d %f" ,&j,&(cs[O]->tstart_err[i]));

}

for(j=l;j<NO_SUPERCARD;j++)

{

for(i=O;i<NPOINT_APER;i++)

{

csUl->tstart_err[i]=cs[O]->tstart_err[i];

}

}

1*** Read in coefficients a for back projection ******************1

1*** to the first supercard and then copy to other supercards ****f

printf("»> Reading backprojection coefficients \n");

for(section=O;section<SECTION_SIZE;section++)

{

for(box=O;box<NBOX_RADIAL*NBOX_AZIMUTH;box++)

{

for(coefc_order=O;coefc_order<COEF_SIZE;coefc_order++)

{

for(coefa_order=O;coefa_order« cs[O]->deg[coefc_order]+1);coefa_order++)

{

fscanf(coeffile,"%f",&(cs[O]->coefa[section][box][coefc_order][coefa_order]));

for(j= 1;j<NO_SUPERCARD;j++)

{

csUl->coefa[section][box][coefc_order][coefa_order]=

cs[O]->coefa[section][box][coefc_order][coefa_order];

}

} /* coefa_order *1

} 1* coefc_order *1

} 1* box *1

} 1* section *1

1*** Start supercards ********************************************/

68

j

1

'$

j

,

\1
f* position *1

f* section *f

printf("»> Starting supercard programs \n");

for(j=O;j<NO_SUPERCARD;j++)

{

xrcall_("sc",&numpar,&cs[j]->dummy);

}

1*** For every position, the host computer reads data for that ***f

f*** position and copy data into each supercard memory. **********f

1*** There are two mail boxes used betwwen host and each *********f

f*** supercard to provide synchronization ************************f

for(section=O;section<SECTION_SIZE;section++)

{

for(position=O;position<NPOINT_APER/SECTION_SIZE;position++)

{

printf("»»>processing section %d pos %d «««<\n",section,position);

1*** Read in data for a position *********************************/

fread(data,sizeof(data),1,inputfile);

for(j=O;j<NO_SUPERCARD;j++)

{

1*** Copy data in each supercard memory **************************f

for(i=O;i<NPOINT_DATA;i++)

{

cs[jJ->data_tempti]=data[i];

}

f*** Send mail to supercard to inform data is ready **************f

xlnwxmt_(cs[jJ,&data_ready,&one);

}

f*** Wait until data is consumed by supercards *******************f

for(j=O;j <NO_SUPERCARD;j++)

{

xlwtrec_(cs[jJ,&data_consumed,&msg);

}

}

}

f*** Check for supercards to finish all processing ******************f

for(j=O;j<NO_SUPERCARD;j++)

{

xldone_(cs[jJ);

}

AppendixB

69
Appendix B

1*** Save resulting radar image *************************************/

for(j=O;j<BOX_BASE_START;j++)

{

printf("»>Prepad zero to output file \n");

fwrite(pixeIJero,sizeof(pixel_zero), 1,outputfile);

}

printf("»>Save image to output file \n");

for(j=O;j<NO_SUPERCARD;j++)

{

fwrite(cs[j]->pixel,

sizeof(float)*BOX_SIZE_AZIMUTH*NPOINT_RADIAL*NO_KBOX]ROCESS/

NO_SUPERCARD,

l,outputfile);

}

for(j=BOX_BASE_START+NO_KBOX_PROCESS;j<NBOX_AZIMUTH;j++)

{

printf("»>Postpad zero to output file \n");

fwrite(pixel_zero,sizeof(pixel_zero),1 ,outputfile);

}

fclose(inputfile);

fclose(outputfile);

/*** Closing all supercards ****************************************/

for(j=NO_SUPERCARD-l;j>=O;j--)

{

xlclos_(cs[jJ);

}

} /* end main */

B-2. Main Program for Multiple Array Processors (sc.c)

/*******************************************************************

Program: sC.c

Description: This is the main program to be executed by each of

the CSPI i860 array processor.

*******************************************************************/

#include "focus.h"

#include "focus.var"

struct cstype *cs;

70
AppendixB

void sc(dummy)

long *dummy;

{

void focus_varinitO;

void filter_initO;

void haminitO;

void hamwtO;

void eraseO;

void interO;

void fix_data"'pointerO;

void polyO;

void bpO;

void xwtrec_();

void xnwxmt_();

void xvmov_0;

void xvclr_();

float *dataJlointer; /* pointer to actual data */

long section,position,box,coefc_order,kbox,ibox;

long data_ready=1; /* maibox to indicate data ready host ---> SC */

long data_consumed=2; /* mailbox to indicate data consumed host <--- SC */

long msg; /* message read from mailbox */

long one=1; /* nonzero message to put in mailbox */

float fJlosition;

long boxbase;

/*** initialize supercard pointer ***********************************/

cs=O;

/*** initialize image with zeros ************************************/

xvclr_(cs->pixel,&cs->pix_size,&cs->i_one);

/*** initialize filter **************************************** ******/

filter initO;

/** * initialize hamming weight coefficients **** *** ***** *** ***** ** ***/

haminit(cs->ham_coef,NPOINT_APER);

/*** Start forming image ********************************************1

boxbase=BOX_BASE_START+cs->supercard_id*NO_KBOX_PROCESS/NO_SUPERCARD;

for(section=O;section<SECTION_SIZE;section++)

{

for(position=O;position<NPOINT_APER/SECTION_SIZE;positionH)

{

71
Appendix B

/*•• Wait for new data from host computer /

xwtrec_(&data_ready,&msg);

/*•• Copy data to working buffer •••••••••••••••••••••••••••••••••••/

xvmov_(cs->data,cs->data_temp,&cs->n_data,&cs->i_one,&cs->i_one);

/*•• Signal host computer that data are consumed /

xnwxmt_(&data_consumed,&one);

fyosition=(float)position;

/••• Hamming weight data if needed ..·······························/

if(cs->ham_flag==l)

{

hamwt(cs->data,cs->n_data,section'NPOINT_APER/SECTION_SIZE+position,

cs->ham_coef);

}

/••• zeros last portion of data for circular convolution /

erase(cs->data,cs->n_data,32);

/*'" '" Interpolate data"''' '" **'" '" III *'*'" '" '" *' '" '" *'" *'" **' '" *' '" '" '" '" *'" '" '" *'*'" III**'" '" *'" '" *'" */

inter(cs->data,cs->n_data,cs->data_inter,

cs->n_data_ inter,cs->filter_fft);

fix_datayointer(&datayointer,&cs->data_inter[O],

cS->lstart_err[NPOINT_APER/SECTION_SIZE'section+position],

cs->ts,8);

for(kbox=boxbase;kbox<(boxbase+NO_KBOX]ROCESS/NO_SUPERCARD);kbox++)

{

for(ibox=IBOX_START;ibox«IBOX_START+NO_IBOX_PROCESS);ibox++)

{

box=kbox'NBOX_RADIAL+ibox;

/*•• Generate coefficients for back projection /

forecoefc_order=O;coefc_order<COEF_SIZE;coefc_order++)

{

poly(&fyosition,&cs->coefc[coefc_order],l,

&cs->coefa[section][box][coefc_orderJ[OJ,

cs->deg[coefc_orderJ);

}1* coefc_order ./

/*** Perform back projection **************************************/

bp(cs->pixel,datayointer,cs->n_data)nter,cs->coefc,

72
AppendixB

boxbase,kbox,ibox,

cs->k--pix_size,cs->i--pix_size,cs->i_box_size);

} 1* i_box *1

} 1* k_box *1

} 1* position *1

} 1* section *1

} 1* end supercard program *1

B-3. Routines Used to Interpolate (inter.c)

#include <math.h>

#include "focus.h"

#include "focus.var"

1***************************************************** ***********************

Subroutine: haminit.c

Description:

this subroutine initialize array of hamming weighting coeffs

accross the aperture.

Input: float ham_coef[NPOINT_APER]

long npoint Number of points for hamming coeffs

Output: float ham_coef[NPOINT_APER] is initialized

****************************************************************************/

haminit(ham_coef,npoint)

float *ham_coef;

long npoint;

{

long i;

for(i=O;i<npoint;i++)

{

ham_coef[i]=.54-.46*cos(2. *3.1415927*(float)i/(float)npoint);

}

}

/****************************************************************************

Subroutine: hamwt.c

Description:

this subroutine takes the radar signal at a position and

multiplies the entire signal array with the hamming coef at

that position.

73
Appendix B

Input:

float data[NPOINT_DATA]

long npoint_data

long position

float ham_coef[];

Output:

float data[NPOINT_DATA]

****************************************************************************/

hamwt(data,npoint_data,position,ham_coe!)

float *data,*ham_coef;

long npoint_data,position;

{

long i;

for(i=O;i<npoint_data;i++)

{

datali]=data[i] *ham_coef(position];

}

}

/****************************************************************************

Subroutine: inter.c

Description:

This routine performs FIR interpolation by using convolution

in the frequency domain. The input buffer contains 2K of data

and is interpolated into 16K of data. The FIR filter has

breakpoints at .95 Ghz and 1.05 Ghz

# of taps = 255

name of filter coeff. file : filter.dat

Input: data(NPOINT_DATA]

complex filter_fft[NPOINT_DATA_INTER/2]

float nyquist_filter

Output: data_inter(NPOINT_DATA_INTER]

****************************************************************************/

interO

{

void xvclr_0;

void xfrU);

void xcvmls_0;

void xfrU);

74
Appendix B

extern struct cstype "cs;

int i;

j" clear data_inter buffer "j

xvclr_(cs->data_inter,&cs->n_data_inter,&cs->i_one);

j" interleave data into data-inter buffer" j

for(i=O;i<NPOINT_DATA;i++)

{

cs->data_inter[i"8j=cs->data[ij;

}

j" FFT of interleaved data" j

xfrf_(cs->data_inter_fft,&cs->nyquist_data,cs->data_inter,

&cs->n data inter half); - - -

j" FFT of interpolated data (multiply with filter in freq. domain)"j

xcvmls_(cs->data)nter_fft,&cs->f_one,cs->data_inter_fft,

cs->filterjft,&cs->n_data_inter_half);

cs->nyquist_data=cs->nyquist_data"cs->nyquistjilter;

j" inverse FFT to get interpolated data "j

xfri_(cs->data_inter,&cs->nyquist_data,cs->da ta_inter_fft,

cs->data)nter_fft,&cs->n_data_inter_half);

}

/*************************************************************************

Subroutine: fix_dataJlointer

Description: This subroutine fixes the pointer to the start of

data)nter buffer. The pointer needed to be adjusted

due to the following reasons:

(a) The linear FIR interpolation filter has phase

shift and the actual data point starts at bin 127

of the data_inter buffer ( FIR has 255 coeffs )

(b) The actual time to start data acquisition has to

be rounded of to 1 nsec resolution for the scope

DSA602. However the backprojection algorithm uses

the exact time since the indeces have to be smooth

for curve fit.

75
Appendix B

Input:

float 'data inter ( address of data_inter buffer)

float tstart err ( tstart-tstart_trunc )

float ts ( radar sampling period )

long inter_factor (interpolation factor )

Output:

float 'datayointer ( actual start pointer for data)

**************************************************************************/

fix_datayointer(pointer,data_inter,tstart_err,ts,inter_factor)

float "pointer;

float 'data_inter;

float tstart_err;

float ts;

long interjactor;

{

long i;

double floatl,float2;

unsigned long index_ofset;

float1=modf(tstart_err'inter_factorfts,&float2);

if(float1>=.5) float2=float2+ 1.;

index_ofset=(unsigned long)127+(unsigned long)float2;

'pointer=data)nter+index_ofset;

f' zeros fill first 128 points of data_inter since phase shift from linear filter 'f

for(i=0;i<128;i++)

{

data_inter[i)=O.;

}

f' zeros fill the last 128 points of data_inter plus 8 points for tstart_err 'f

for(i=0;i<136;i++)

{

data_inter[NPOINT_DATA_INTER+i)=O.;

}

/* first point and last point of actual data array are zeros for backprojection 'f

, 'pointer=O.;

'('pointer+NPOINT_DATA_INTER-1)=0.;

}

1***************************************************** ********************

76
AppendixB

Subroutine: erase

Description: Zero out the last nzero points of input buffer

***************************************************************************/

erase(buffer,ndata,nzero)

float *buffer;

long ndata,nzero;

{

long i;

for(i=ndata-nzero;i<ndata;i++)

{

buffer[i]=O.;

}

}

B-4. Initialize Interpolation Filter (filtinit.c)

/***************************************************************************

This subroutine performs the following:

1- Read filter coefficients from file to filter buffer

2- Zerro pad the filter buffer to the size of interpolated data

buffer size

3- Perform Real Forward FFT of filter buffer to prepare for

interpolation

/***************************************************************************/

#include <stdio.h>

#include "focus.h"

#include "focus.var"

extern struct cstype *cs;

void filter initO

{

void xfrU);

long i;

1* zero pad filter coeff *1

for(i=FILTER_LENGTH;i<NPOINT_DATA_INTER;i++)

{

cs->fiIter_coef[i]=O.;

77
Appendix B

}

1* take fft of filter coeffor each supercard *1

for(i=O;i<NO_SUPERCARD;i++)

{

xfrf_(cs->filterjft,&cs->nyquistjilter,

cs->fi1ter_coef,&cs->n_data_inter_half);

}

}

B-S. Main Back Projection Focusing Routing (bp.c)

#include <math.h>

/****************************************************************************

Subroutine: poly.c

DEscription:

Calculates values of polynomials

Input: x[] input array

n number of elements

coeff(] coefficients of poly

deg degree of poly

Output: y[] output array

****************************************************************************/

poly(x,y,n,coeff,deg)

float *x,*y,*coeff;

long n,deg;

{

long i,j;

for(i=O;i<n;i++)

{

y[i]=coeff[O];

for(j=l;j«deg+ 1);j++)

{

y[i]=y[i]+coeff[j]*pow(x[i],(float)j);

}

}

}

/***************************************************************************

Subroutine: poly2.c

Description: calculate y=cO+cl *x+c2*x A 2

where x=[O,1,2,...,n-l]

78
Appendix B

Input:

float c(3) coefficients

long n (max: 1000) number of points

Output:

float y[] output vector

***************************************************************************/

#define MAX ELEMENT 1000

void poly2(y,n,c)

float y[],c[);

long n;

{

void xvrmp_O;

void xdintg_O;

float temp;

float yl[MAX_ELEMENT);

float yl_init,yl_inc;

y1_init=c(1]-c[2);

yl_inc=2. 'c(2);

xvrmp_(y 1,&temp,&y l_init,&yl_inc,&n);

yl[O)=O.;

xdintg_(y,&c[O),yl,&temp,&n);

}

/****************************************************************************

Two-dimensional back projection subroutine

using fast algorithm by NUllalto calculates the index to data

array for each pixel on the ground in i_box,k_box positioned by i,k

k: azimuth ( 2nd order)

i: range (ist order)

The equation for index calculation is

index= cO+c1'k+c2'k'2 + (c3+c4'k+cS'k'2)'i

= dO + dl'i

where c(i) (i=O,S) is a set of coefficients for each box and

each position in the aperture

Input:

float 'pixel pointer to first point of the image

2-dimensional area

float 'data pointer to data array

Important: data[O)=O.O

data[dat_size-l)=O.O

long dat_size size of data buffer

79
AppendixB

float *c pointer to six coefficients for

index computation

long kJ>ix_size size of the patch (pixels) in k axis

long iJ>ix_size size of the patch (pixels) in i axis

long k_box patch number in k axis

long i_box patch number in i axis

long i_box_size number of patches in i axis

Output:

index to data array is calculated and pixel is updated

********.*.********************.*.*****************************************'

#define MAX_K]IX_SIZE 1000

#define MAX_I]IX_SIZE 1000

void bp(pixel,data,dat_size,c,k_box_base,k_box,i_box,kJ>ix_size,

iJ>ix_size,i_box_size)

float *pixel; f* array of pixels of the whole Z-dimentional area *f

float *data; f* data array *f

long dat_size; /* size of data array *f

float *c; f* pointer to six coefficients for index computation *f

long k_box_base; f* 0 for 1st SC, i*NBOX_AZIMUTH/NO_SUPERCARO for ith SC *f

long k_box; f* patch number in k axis *f

long i_box; f* patch number in i axis *j

long kJ>ix_size; f* size of the patch (pixels) in k axis *f

long iJ>ix_size; /* size of the patch (pixels) in i axis *f

long i_box_size; /* number of patches in i axis *f

{

void xVclip_0;

void vclip_0;

void xvfx4_0;

void fix4_0;

void xvrmp_O;

void vindex_0;

void vramp_O;

void vgathr_();

void vadd_O;

void vtabU);

float findex[MAX_I]IX_SIZE]; /* data index value *j

long lindex[MAX_I]IX_SIZE]; /* data index value (round to integer) *f

float pix_temp[MAX_I]IX_SlZE]; 1* temp buffer for back projection *f

float dO[MAX_K]IX_SIZE]; f* dO= cO+c1*k+cZ*kA Z *f

float dl[MAX_K]IX_SIZE]; f* dl= c3+c4*k+c5*k A Z *f

80
float *pix_index; /* pointer to current pixel */

long pix_indexjnc; /* each time k is incremented, pixel pointer is jumped */

long k; /* for k and i loops control */

float maxindex; /* maximum value for data index */

float zero=O.O;

float one=l.O;

long i_one=l;

float temp;

maxindex=(float)(dat_size-I);

pix_index=pixel+(k_box-k_box_base)*k.J'ix_size*i_box_size*

i.J'ix_size+i_box*i.J'ix_size;

/* index of first point of the patch */

/* with respect to pixel */

pix_index_inc=i.J'ix_size*i_box_size; /* index increment along k axis */

Appendix B

poly2(dO,k.J'ix_size,c); /* generate array of dO

poly2(d1,k.J'ix_size,c+3); /* generate array of d1

for(k=O;k<k.J'ix_size;k++)

{

/* generate floating point index vector */

vramp_(&dO[k],&d1[k],findex,&i_one,&i.J'ix_size);

*/

*/

1* table look up and interpolate */

/* this function replaces xvcliPO,xvfx40,vgathrO */

/*

vtabi_(findex,&i_one,&one,&zero,data,pix_temp,&i_one,&dat_size,&i.J'ix_size);

*/

/* clip index */

vclip_(findex,&i_one,&zero,&maxindex,findex,&tone,&i.J'ix_size);

/* convert to integer index */

fix4_(findex,&i_one,lindex,&i_one,&i.J'ix_size);

/* gather data into temporary buffer */

vgathr_(data,Jindex,&i_one,pix_temp,&i_one,&i.J'ix_size);

/* update pixel array with data from temporary buffer */

vadd_(pix_index,&i_one,pix_temp,&i_one,pix_index,&i_one,&i.J'ix_size);

/* pix_index jumps along k axis */

pix_index=pix~index+pix_index_inc;

81
Appendix B

} /* k loop */

} /* subroutine */

B-6. Declare All Global Constants (Focus.h)

#define NO SUPERCARD 3 /* number of supercards */

#define NPOINT_AZIMUTH 600 /* number of bearing lines */

#define NPOINT_RADIAL 4095 /* number of radial lines */

#define NPOINT_APER 2304 /* # of positions in aperture *f

#define NPOINT DATA 2048 f* number of original data points *f

#define NPOINT_DATA_INTER NPOINT_DATA*8/* number of data points after

interpolated */

#define FILTER_LENGTH 255 /* length of FIR filter */

#define PI 3.141592654

#define RADAR HEIGHT 60. /* radar height in feet *f

#define A_OFSET -15.0 /* offset angle from center line */

#define A_SPAN 54.0 f* spanning angle of the patch */

#define RMINCENTER 550. /* range from center position to

reference point on tha patch */

#define RCENTER_REF 802.0 f* range (ft) of ref. point from center pos. */

#define THETA_CENTER_REF -15.0 /* angle (deg)ofref. point from center pos. */

#define SAMPLING_RATE 2.0e09 f* sampling frequency of signal */

#define SAMPLING]ERIOD 5.0e-1O /* ts=1/fs *f

#define BOX_SIZE_RADIAL 195

#define BOX_SIZE_AZIMUTH 100

#define NBOX_RADIAL NPOINT_RADIALlBOX_SIZE_RADIAL

#define NBOX_AZIMUTH NPOINT_AZIMUTH/BOX_SIZE_AZIMUTH

#define BOX_BASE_START 2

#define NO_KBOX]ROCESS 3

#define !BOX_START 10

#define NO_IBOX]ROCESS 1

#define SECTION SIZE 4 /* # of sections for one aperture */

#define COEF_SIZE 6 /* # of coeffs for curve fit *f

#define MAXDEG 3 /* maximum degree for poly. fit */

#define NPOINT_BOXSAMPLE_RADIAL 5 f* # of samples in a box in radial

direction *f

#define NPOINT_BOXSAMPLE_AZIMUTH 5 /* # ofsamples in azimuth direction

for every box */

#define NPOINT_BOXSAMPLE

82
Appendix B

NPOINT_BOXSAMPLE_RADIAL*NPOINT_BOXSAMPLE_AZIMUTIi

/* # of samples in a box for curve fit */

B-7. Declare All Global Variables (Focus.var)

struct complex { float r,i;};

struct cstype {

/* define a complex type */

/* Data Variables */

float pixel[NPOINT_AZIMUTIi/NO_SUPERCARD][NPOINT_RADIAL]; /* array of image*/

float data_temp[NPOINT_DATA]; /* temp buffer for data */

float data[NPOINT_DATA]; /* original data bufer */

float filter_coef[NPOINT_DATA_INTER]; /* filter coefficients */

float data_inter[NPOINT_DATA_INTER+136]; /* interpolated data buffer */

float tstart_err[NPOINT_APER]; /* tstart.tstarUrunc for each position */

struct complex data)nterjft[NPOINT_DATA_INTERl2]; /* Real->Complex Forward FFT

of data)nter */

struct complex filter_fft[NPOINT_DATA_INTER/2]; /* Real·>Complex Forward FFT

of filter_coef */

float nyquist_filter; /* value of FFT of filter at Nyquist point */

float nyquist_data; /* value of FFT of data at Nyquist Point */

long ham_flag; /* to indicate wheter to use hamming or not */

float ham_coef[NPOINT_APER]; /* hamming weight coefficients */

/* Geometry Variables */

float a_ofset; /* offset angle from the center line */

float a_span; /* spanning angle of the patch */

float d_theta; /* delta angle */

float x,theta; /* coordinate of a pixel */

float c_theta,s_theta; /* cosine and sine of theha */

float d; /* distance from radar to center position

positive to the right, neg. to the left */

float rcenter,rmincenter,rmaxeenter; /* range from center position */

float reenter_ref; /* range from center pos. to ref point */

float theta_center_ref; /* angle of ref. point from center position */

float r_ref; /* range from any pos. to ref. point */

float dJcenter; /* sampling distance from center position */

float dr8; /* (sampling distance)/8 */

float r,rmin,rmax; /* range from any position */

float aper)ength; /* length of aperture */

float radar_height; /* height ofradar */

float radar_height2; /* square the height of radar */

83
Appendix B

f* Radar Variables *f

float c; f* speed of wave *f

floatts; f* sampling period ofsignal *f

float fs; f* sampling frequency ofsignal *f

long n_azimuth;

long nJadial;

long n_aper;

long pix_size;

long n_data;

long n_data)nter;

long n_data)nter_half;

long n_boxsample;

long n_coef;

long n_section;

long k.Jlix_size;

long i.Jlix_size;

long k_box_size;

long i_box_size;

f* # of points in azimuth direction *f

f* # of points in radial direction •f

f* # of positions in aperture *f

f* # of points in pixel array *f

f* number of original data points *f

f* number of interpolated data points *f

f* 1/2 # of interpolated data points */

f* # ofsamples in a box for curve fit */

/* # of coefficients curve fit *f

/* # of sections for one aperture */

/* # of pixels of a box in azimuth direction*/

f* # of pixels of a box in radial dirction */

1* # of boxes in azimuth direction *f

f* # of boxes in radial direction */

*f

*/

*f

/* to identify board number

f* floating point zero */

/* floating point 1 *f

/* integer 1 *f

f* stride for supercard ssl *f

f* error message from lib call *f

1* just a dummy argument pass to SC program *f

/* SSL VAriables *f

long supercard_id;

float f_zero;

float Cone;

long i_one;

long stride;

long ierr;

long dummy;

f* working variables */

long n.Jl0sition;

float e_index,a_index,error,maxerror,minerror;

long ierr_max,jerr_max,ierr_min,jerr_min;

long column_max,row_max,column_min,row_min;

long ia,ib;

long ipixel,jpixel;

float coefc[COEF_SIZE]; f* c coefficients

float

coefa[SECTION_SIZEJ(NBOX_RADIAL*NBOX_AZIMUTHJ(COEF_SIZE][MAXDEG+1];/*

a coef. for each c *f

long deg[COEF_SIZE]; f* degree for each coefc

long mat_c_stride,findex_c_stride,coeCc_stride;

float tstart_diff[NPOINT_APER]; f* time difference between quantized and *f

1* unquantized values from trigger to *f

1* start data acq. at each position *f

84
Appendix B

} ;

B-8. Initialize All Global Variables on Both Processors

(varinit.c)

;***************************************************************************./

/* This subroutine performs the following; */

/* Initialize both host and Supercard Variables */

/* Output: */

/* All variables */

/****************************************************************************/

#include "focus.h"

#include "focus.var"

extern struct cstype *cs[NO_SUPERCARD];

focus_varinitO

{

long j;

for(j=O;j<NO_SUPERCARD;j++)

{

cs[j]->n_azimuth=NPOINT_AZIMUTH; /* # of points in azi. direction */

cs[j]->n_radial=NPOINT_RADIAL; /* # of points in rad. direction */

cs[j]->pix_size=cs[j]->n_azimuth*cs[j]->nJadial/NO_SUPERCARD;

/* Pixel array size */

cs[j]->n_data=NPOINT_DATA; /* # of orig. data points */

cs[j]->n_dataJnter=NPOINT_DATA_lNTER;1* # of interpolated. data points*/

cs[j]->n_dataJnter_half=NPOINT_DATA_INTER/2;

/* 1/2 # of inter. data points */

cs[j]->n_aper=NPOINT_APER; /* # of points in the aperture */

cs[j]->n_coef=COEF_SIZE; /* # of coeffs for curve fit */

cs[j]->n_section=SECTION_SlZE; /* # of sections for one aperture*/

cs[j]->iyix_size=BOX_SIZE_RADIAL; /* # of pixels of a box in rad. dir.*/

cs[j]->kyix_size=BOX_SIZE_AZlMUTH; /* # of pixels of a box in az. dir. */

cs[j]->i_box_size=NBOX_RADIAL; /* # of boxes in radial direction *1

cs[j]->k_box_size=NBOX_AZlMUTH; /* # of boxes in azimuth direction */

/* Radar Variables */

cs[j]->fs=SAMPLING_RATE; /* Sampling Frequency */

cs[j]->ts=SAMPLING]ERIOD; /* Sampling period */

cs[j]->c=3.e8; /* Speed of wave */

85
Appendix B

/* SSL Variables */

cs[j)->f_zero=O.; 1* floating point zero */

cs[j)->stride=l; /* stride for ssl */

cs[j)->f_one=1.0; /* floating point 1 */

cs[j)->i_one=l; /* integer 1 */

cs[j)_>mat_c_stride=cs[j)->n_boxsample; /* column stride for mat */

cs[j)->findex_c_stride=l; /* column stride for findex */

cs[j)->coef_c_stride=l; /* column stride for coeff */

cs[j)->deg[O]=3; /* degree for first coefc */

cs[j)->deg[1]=3;

cs[j)->deg[2]=3;

cs[j)->deg[3]=3;

cs[j)->deg[4]=2;

cs[j)->deg[5]=2;

}

} /* end focus_varinit */

86
Admnstr

Defns Techl Info Ctr

Attn DTlC-DDA (2 copies)

Cameron Sta Bldg 5

Alexandria VA 22304-6145

Defns Advncd Rsrch Proj Agcy

Attn ASTO D Giglio

3701 N Fairfax Dr

Arlington VA 22203-1714

Defns Intllgnc Agcy

Attn CMO-4 G Andreiev

Attn E Thompson

Central MASINT Ofc

Washington DC 20340-5100

Defns Spply Agcy

Attn P Tomlinsen

1110 N Glebe Rd Ste 400

Arlington VA 22201

DoD

Attn J B Dobsa

9800 Savage Rd

IT Meade MD 20755-6000

Director

DoD-BTl

Attn Dr J R Transue

1901 N Beauregard Ste 380

Alexandria VA 22311

Inst for Defns Anlys

Attn B Crane

Attn J Ralston

1801 N Beauregard Stret

Alexandria VA 22311

Dept Army NVESD

Attn AMSEL-RD-NV-R A Tarbell

Attn AMSEL-RD-NV-RPPO K Willey

IT Monmouth NJ 07703

Distribution

Belvoir RDE Ctr

Dept Army NVESD

Attn SATBE-N-T B Bernard

Attn SATBE-N-T D Franklin

Attn SATBE-N-T T Broach

10101 Gridley Rd Ste 104

IT Belvoir VA 22060-5806

Dept Army NVESD

Attn AMSEL-RD-NV-GSID T Watts

10221 Burbeck Rd Ste 430

IT Belvoir VA 22060-5806

Hdqtrs

Dept of the Army

Army Spc Prog

Attn SARDSO C Keisar

103 Pentagon

Washington DC 20310-0103

ECAC

Attn M Aasen 11TRl/DQT

Attn C Madison

Attn D Quasny

185 Admiral Cochrane Dr

Annapolis MD 21401

Sp & Terrestrial Comm Dirctrt CECOM

RDEC

Attn AMSEL-RD-ST-SE-S J Deewall

IT Monmouth NJ 07703-5208

US Army CECOM IntllgnclElect Warfare

Dirctrt

Attn AMSEL-RD-IEW-SSP B Bennett

Attn AMSEL-RD-IEW-SSP J Cummins

Attn AMSEL-RD-IEW-SSP R Scruppa

Vint Hill Farm Sta

Warrenton VA 22186-5100

87
Distribution (cont'd)

Commander

US Army MICOM

Attn AMSMI-RD-WS-UB D Holder

Attn AMSMI-RD-AS-RA C Krolinger

Attn AMSMI-RD-AS-RA J Loomis

Attn AMSMI-RD-AS-RA R R Smith

Redstone Arsenal AL 35898-8000

US Army Rsrch Ofc

Attn J Harvey

PO Box 12211

Research Triangle Park NJ 27709-2211

Nav Air Warfare Ctr

Attn Code 2154 M Frishbee

Attn Code C27731A M Henderson

Attn Code C29504 D Schriener

1 Administrative Circle

China Lake CA 93555-6001

Nav Postgraduate Schl

Attn Code EC/GL G S Gill

Attn ECE Dept Code EC M Morgan

833 Dryer Rd Rm 437

Monterey CA 93942-5121

Nav Rsrch Lab

Attn Code 5348 P Hansens

Attn Code 5340 E L Mokole

Attn Code 5340 M Steiner

4555 Overlook Ave SW

Washington DC 20375-5336

Naval Rsrch Lab

Attn M Sletten

7204 13th PI

Takoma Park MD 20912

Naval Rsrch Lab

Attn S N Samaddar

Washington DC 22375

Cmdr

Nav Surfc Weapons Ctr

Attn Code F42 S Leong

Dahlgren VA 22448-5000

88

NRAD Nav Cmand Cntrl & Ocean

Surveillance Ctr

Attn B Dinger

Attn M Pollac

Attn TTice

San Diego CA 92152

CmdrOfcr

NSWC

Attn G Gaunaurd

Attn P Winters

10901 New Hampshire Ave

Silver Spring MD 20904

CmdrOfcr

NSWC

Attn F40 J Cavenaugh

Attn F40 D Kirkpatrick

Dahlgrin VA 22448

Ofc of Nav Rsrch

Attn G D Roy

Arlington VA 22217

Air Force Inst of Techlgy

Attn D Dunn

Attn A J Terzuoli

PO Box 3402

Dayton OH 45401-3402

Air Force Inst of Techlgy

Attn LT D J Wolstenholme

Box 43198 (ENG) 2950 P Stret

Wright Patterson AFB OH 45433-7765

Armstrong Lab

Attn P G Petropoulos AL-OES

8103 15th Stret

Brooks AFB TX 78235

CMTCO

Attn M Douglas

Attn C Gardner

Attn MAJ K Reichl

Attn COL S Williams

1030 S Hwy AlA

Patrick AFB OH 32925-3002
Distribution (cont'd)

Phillips Lab

Attn PL/WSR C Baum

Attn PL/WSR J Berger

Attn PL/WSR S A Blocher

Attn T S Bowen

Attn C J Buchenauer

Attn R K Marek

Attn S C Mason

3550 Aberdeen Ave SE

Albuquerque NM 87109

Rome Lab

Attn R A Shore RUERAS

Attn B Tomasic RLIERA

Hanscom AFB MA 01731-3010

Rome Lab

Attn F Welker

Attn MWicks

26 Electronic Pky

Griffis AFB NY 13441-4514

Wright Lab

Attn WUMNMF K Min

Attn A Sullivan

101 W Eglin Blvd

Eglin AFB FL 32542-6810

Wright Rsrch Dev Ctr

Attn WL/AARM R Koesel

Attn WL/AARM K McCoin

Attn WL/AARM D Muki

Attn WL/AARM J Roman

Attn WL/AARM G Urban

2690 C Stret Bldg 22 Ste 1

Wright Patterson AFB OH 45422-7408

Director

Marine Corps Intllgnc Actvty

Attn MCIAD M Howard

2033 Barnet Ave

Quantico VA 22134-5011

Sandia Nat! Lab

Attn B Brock

Attn D Cress

Radar Antenna Dev Code 2343

Albuquerque NM 87185-5800

Sandia Nat! Lab

Attn Code 2345 R Hurley

PO Box 5800

Albuquerque NM 87185

Sandia Nat! Lab

Attn M Buttram

1153 Sandia Nat! Lab

Albuquerque NM 87185-5800

Sandia Nat! Lab High Power Electromag Dept

Attn G M Loubriel MS 1153

PO Box 5800

Albuquerque NM 87185-1153

NASA-Goddard.

Attn R Wallace Code 480

Greenbelt MD 20771

Nat! Inst of Stand & Techlgy

Attn J Horst

Bldg 220 Rm B124

Gaithersburg MD 20399

Nat! Inst of Stand & Techlgy

Attn M Kanda

Attn 81307 A Ondrejka

325 Broadway

Boulder CO 80303

Boston Univ Dept of ECS Eng

Attn P R Kotiuga

44 Cummington Stret

Boston MA 02215

Catholic Univ Physics Depart

Attn H Uberall

Washington DC 20064

89
Distribution (cont'd)

FAMU/FSU Colg of Engrg

Attn F Gross

PO Box 2175

Tallahassee FL 32316-21785

Univ ofFL

Elect Commctn Lab

Attn M Barlett

Attn J Bevington

PO Box 140245

Gainesville FL 32614-0245

GA Institute of Tech

Attn GTRI/ESL/CAD H Engler

Atlanta GA 30332

GA Tech

Attn M P Kesler CRB-600

Attn J G Maloney Centenial Rsrch Bldg/STL

Atlanta GA 30332

GA Tech Schl of Mathematics

Attn a P Bruno

Atlanta GA 30332-0160

Howard Univ

Attn P Alakananda

2300 Sixth St Dept EE

Washington DC 20059

MI State Univ Dept of Electrd Engrg

Attn Kun-Mu Chen

East Lansing MI 48824

Northeastern Univ ECE Dept

Attn S McKnight

Attn D J McLaughlin

Boston MA 02115

OH State Univ

Attn R Moses

Attn J Young

2015 Neil Ave

Columbus OH 43210-1272

90

OH State Univ OSU/ESL

Attn E K Walton

1320 Kinnear Rd

Columbus OH 43212-1191

Polytech Univ

Attn L Carin

6 Metrotech Center

Brooklyn NY 11201

Polytechnic Univ Electrd Engrg Dept/WR1

Attn D M Bolle

Attn S U Pillai

6 Metrotech Center

Brooklyn NY 11201

Polytechnic Univ WRI & Dept of Physics

Attn Mok-Ming Leung

6 Metrotech Center

Brooklyn NY 11201

Purdue Univ

Attn M Melloch

1285 Electrical Eng Bldg

West Lafayette IN 47907-1285

TX A&M Univ Dept of Electrd Engrg

Attn J C Goswami

College Station TX 77843-3128

Univ of AZ Dept of Electrd & Cmptr Engrg

Attn D G Dudley

Attn S L Dvorak

Tucson AZ 85721

Univ of CA at Santa Barbara Electrd & Cmptr

Engrg Dept

Attn M Rodwell

Santa Barbara CA 93106

Univ of CA Electrd Engrg Dept

Attn T !toh

405 Hilgard Ave 56-125B Engr IV Bldg

Los Angeles CA 90024
Distribution (cont'd)

Univ of FL Elect Commctn Lab

Attn M Bartlett

Attn J Bevington

Attn J Kurtz

PO Box 140245

Gainesville FL 32614-0245

Univ ofIL

Attn WCChew

1406 W Green Stret

Urbana IL 61801

Univ of MD Dept of Electrcl Engrg

Attn E Funk

Attn CHLee

College Park MD 20742

Univ of MI Ctr for Ultrafast Optic Sci 2200

Attn J Whitaker

Bonisteel Blvd Rm 1006

Ann Arbor MI 48109-2099

Univ of NM CHTM

Attn KAgi

EECE Bldg Rm 125

Albuquerque NM 87131

Univ of PA Electrcl Engrg Depart

Attn R Bose

Attn D Carlson

Attn B D Steinberg

200 S 33rd Stret Rm 202

Moore Philadelphia PA 19104

Univ ofTX

Attn W Nunnely

PO Box 19380

Arlington TX 76019

Univ of TX at Austin Dept of Electrcl &

CmptrEngrg

Attn H Ling

Austin TX 78712-1084

Univ of VT Dept of Cmptr Sci & Elec Engrg

Attn K E Oughston

Attn P Smith

Burlington VT 05405-0156

Univ of Wash Dept ofElectrcl Engrg FT-IO

Attn A Ishimaru

Seattle WA 98195

ANRO Engrg Inc

Attn G FRoss

1800 Second Stret Ste 878

Sarasota FL 34236

AT&T Bell Labs

Attn H Lenzing

40 New Stret

Colts Neck NJ 07722

Barth Elect Inc

Attn J E Barth

1300 Wyomiqg Stret

Boulder City NY 89005

Battell

AttnG Ruck

505 King Ave

Columbus OH 43201

Battelle

Attn MSIN K2-31 D Sheen

PO Box 999

Richland WA 99352

BDMFed

Attn G R Salo

1801 Randolph Rd SE

Albuquerque NM 87106

Boeing Defns & Sp Grp

Attn D Iverson

Attn B Merle

PO Box 3999 MS 82-36

Seattle WA 98124-2499

91
Consulant

Attn V Van Lint

1032 Skylark Dr

La Jolla CA 92037

Dynamics Techlgy Inc

Attn S Borchrdt

1555 Wilson Blvd #320

Arlington VA 22209-2405

ESys

Attn CBN 177 K Robinett

PO Box 6065

Greenville TX 75403-6056

Electromag Capability Anlys Ctr

Attn J Widner

Attn J Word

185 Admiral Cochrane Dr

Annapolis MD 21401

EMA

Attn R Parella

Attn D Steffen

7655 W Mississippi Ave #300

Lakewood CA 80226-4332

Ensco Inc

Attn J Faist

5400 Port Royal Rd

Springfield VA 22151

Ensco Inc

Attn G Beasley

Attn R Kemerait

445 Pineda Ct

Melbourne FL 32940

ERlM

Attn P Lembo

1101 Wilson Blvd #1100

Arlington VA 22209-2043

92

Distribution (cont'd)

ERIM

Attn D Ausherman

Attn D Herrick

Attn D Sheen

Attn J Gorman

Attn R Heimiller

Attn S Degraf

Attn T Lewis

PO Box 134001

Ann Arbor MI 48113-4001

Farr Rsrch

Attn E Farr

614 Paseo Delmar NE

Albuquerque NM 87123

GORCA

Attn KAbend

Attn B Fell

PO Box 2325

Cherry Hill NJ 08034-0181

Group

Attn D Sego

Attn B Merele

Box 3999 MS 82-36

Seattle WA 98124-2499

Grumman Aircraft Sys

Attn S Boles

Attn B29-035 D Cerrnignian

Bethpage NY 11714-3582

HARC

Attn A Blanchard

Attn J Glazner

Attn B Krenek

Attn B Williams

4800 Research Forrest Dr

The Woodlands TX 77381
Distribution (cont'd)

HP-Hewlett Packard

Attn K Pastel

29 Burlington Mall Rd

Burlington MA 01803

HP-Hewlett Packard

Attn K McMenamin

3701 Koppers Stret

Baltimore MD 21227

HTB Intrnt!

Attn J W Luguire

1840 Wilson Blvd #206

Arlington VA 22201

Hughes Mis Comp

Attn G Cooper

Attn L Frazier

AET Ctr Box 1973

Rancho Cucamonga CA 91729-1973

Hughes Aircraft Co

Attn A Wang 600/CISI

PO Box 3310

Los Angeles CA

IBM Rsrch

Attn A Ruehli

PO Box 218

Yorktown Heights NY 10598

ITT Rsrch Inst

Attn H Riggins

1875 Admiral Cochrane Dr

Annapolis MD 21401

Kaman Sci Corp

Attn J Demarest Dikewood Sect

6400 Uptown Blvd NE Ste 300E

Albuquerque NM 87110

Lincoln Lab

Attn S Ayasli

Attn D Blejer

Attn T Bryant

Attn C Frost

Attn CLee

Attn TGross

Attn A K McIntosh

Attn M Mirkin

Attn G Morse

Attn LNovak

244 Wood Stret

Lexington MA 02173

Lockheed Arntel Sys Comp

Attn H B Lorber

Dept 73-E6 Bldg L-8

86 South Cobb Dr

Marietta GA 30063-0649

Loral Defens,e Sys

Attn B Woody

PO Box 85

Litchfield Park AZ 85340

Soft Machine Resources Inc

Attn M Rofheart

2140 L Stret NW Ste 1007

Washington DC 20037

Mirage Sys

Attn D Barrick

Attn J Erwin

Attn G Mousally

Attn M Rosowski

Attn P Failer

Attn D Venters

425 Lakeside Dr

Sunnyvale CA 94086

93
Distribution (cont'd)

Modem Technologies Corp

Attn B Williams

494 Sycamore Ave

Shrewsbury NJ 07702

Mssn Rsrch Corp

Attn E K English

3975 Research Blvd

Dayton OH 45430

Phys RPI

Attn Xi-Cheng Zhang

Troy NY 12180

Power Spectra Inc

Attn M Gamble

Attn J Grant

Attn JOides

919 Hermosa Ct

Sunnyvale CA 94086-4103

Novel Technologies & Concepts

Attn S Davis

PO Box 726

Almeda CA 94501

Sci Applctn Intrntl Corp

Attn L Manning

1710 Goodridge Dr MS 1-5

McLean VA 22102

Schlumberger-Doll Rsrch

Attn R Gaylor

Attn D R Mariani

Old Quarry Rd

Ridgefield CT 06877

Southwest Rsrch Inst

Attn B Duff

Attn K Stevens

6220 Culebra Rd PO Drawer 28510

San Antonio TX 78228-0510

94

SRI Intrntl

Attn M Baron

Attn D Bender

Attn D Buseck

Attn K A Dreyer

Attn R Vickers

333 Ravenswood Ave

Menlo Park CA 94025-3493

Technisa

Attn P Nelson

1840 Wilson Blvd #206

Arlington VA 22201

Techlgy Svc Corp

Attn R LeFeure

2950 31st Stret

Santa Monica CA 09405-3093

Texas Instr

Attn G Burnham

Attn R Vos

PO Box 405 MIS 3451

Lewisville TX 75067

The Boeing Comp

Attn B H Merle MS-8721

Attn D Iverson

Attn D Sego

PO Box 3999 MS 82-36

Seattle WA 98124-2499

CSPI

Attn J Warther

40 Linnell Circle

Billerica MA 01821

Thermo Trex Corp

Attn C C Phillips

9550 Distribution Blvd

San Diego CA 92121-2306
Distribution (cont'd)

Toyon

Attn M Vanblaricum

75 Aero Camino Ste A

Goleta CA 93117-3139

Unisys Corp Gov Sys Grp

Attn A Kerdock

Attn K S Lee MIS H16

365 Lakeville Rd

Great Neck NY 11020-1696

United Technologies Norden Sys

Attn M Greenspan

Norden PI Box 5300

Norwalk CT 06856

Army Rsrch Lab

Attn AMSRL-EP-ED W R Buchwald

Attn M Weiner

FT Monmouth NJ 07703

Army Rsrch Lab

Attn J Arthur

Attn AMSRL-SL-EP J B Henderson

White Sands Missile Range NM 88002-5513

Army Rsrch Lab/EPSD

Attn AMSRL-EP-EC A A Kim

Attn E Lenzing

FT Monmouth NJ 07703

Army Rsrch Lab

Attn AMSRL-EP-EC L Kingsley

Pulse Power Center

FT Monmouth NJ 07703-5601

US Army Rsrch Lab

Attn AMSRL-EP-MC A Paolella

FT Monmouth NJ 07703-5601

US Army Rsrch Lab

Attn AMSRL-OP-SD-TA Mail & Records

Mgmt

Attn AMSRL-OP-SD-TL Tech Library

(3 copies)

Attn AMSRL-OP-SD-TP Tech Pub

Attn AMSRL-SS J Sattler

Attn AMSRL-SS V DeMonte

Attn AMSRL-SS-FG R Tobin

Attn AMSRL-SS-IB E Adler

Attn AMSRL-SS-S J Miller

Attn AMSRL-SS-SA M Barnes

Attn AMSRL-SS-SA F H Le

Attn AMSRL-SS-SD C N Tran

Attn AMSRL-SS-SG P Alexander

Attn AMSRL-SS-SG A A Bencivenga

Attn AMSRL-SS-SG M Bennett

Attn AMSRL-SS-SG L Happ

Attn AMSRL-SS-SG R Innocenti

Attn AMSRL,SS-SG K Kappra

Attn AMSRL-SS-SG H Kliatri

Attn AMSRL-SS-SG L Nguyen (10 copies)

Attn AMSRL-SS-SG M Ressler

Attn AMSRL-SS-SG V Sabio

Attn AMSRL-SS-SG J Sichina (10 copies)

Attn AMSRL-SS-SG T Ton

Attn AMSRL-SS-SJ G H Stolovy

Attn AMSRL-SS-SM R Kapoor

Attn AMSRL-WT-NF L Jasper

Attn AMSRL-WT-NH L Libelo

Attn AMSRL-SS-SG J McCorkle

(30 copies)

95

u.s. GOVERNMENT PRINTING OFFiCE: 1994··379·161
; , poe, - k'1i VV'.'" mil ..-... /\ I J010 {L7

)( '51.fJ.7 ,

'. Quality Assurance and OPSEC Review

This form is an approval record for AAL generated information to be presented or disseminated external to AAL Note: Submit al/ manuscripts

In electronic format or camera ready copy. See attached Instructlons. If mora space is needed, use reverse ollorm (include block numbers).

A. GenerallnformatJon 1. Present Date (rnmJdd/yyyy) 2. Unclassified Title: ~),<L '/,('-3,:,5

ol/29/20 10 Focusing of Dispersive Targets Using Synthetic Aperture Radar

3. Author(s): (Last, First, MI): 4. Office Symbol(s): 5. Telephone Nr(s):

John McCorkle, Lam Nguyen RDRL-SER-U (301) 394 - 0847

(LAM rJGVlc~)

6. Contractor generated c><;J No [J Yes 7. Type: ~Report 'LJAbstract "0 Publication [] Presentation (speech, briefing, video

Ifyes, enter Contract No. and ARL COR clip, poster, etc) []Book U Book Chapter OWeb

8. Key Words: UWB, Synthetic Paerture Radar (SAR), Back Projection

9. Distribution Statement (reqUired) is manuscript Check appropriate letter and number(see instructions for statement text 10. Security

DNo DYes A B C D E F X , 2 3 4 5 6 7 6 9 '0 11 Classification

subject to export control?

~OOOOOO DO 0 00000 0 0 0 UNCLASSIFIE

B. Reports 11. Series 12. Type 13. No. of pages 14. Project No. 15. Period Covered 16. Sponsor

--r1ZJ

c. Publications

17. Is MS an invited paper? ~NO LJ Yes 19. Material will be submitted for publication in

18. Publication Is a refereed journal? , Change DistdJl:Wion to Public Release ARLTR

~NO DYes Journal Country

D. Presentations 20. Conference Name I Location 21. Sponsor

ARLTR ARL

22. Conference Date 23. Due Date 24. Conference is n Open to general public LJ Unclassified I Controlled access

D Classified

25. For nonpubllc meetings: Will foreign nationals be attending? 26. Material will be

DNo [J Ves (Ifyes, list countries and identify International

Oral presented only [J Oral presented and pUblished in Agreement{s))

[J Don't know

(If published, complete block 18 and 19, Section C).

E. Authors Statement: 27. All authors have concurred In the technical content and the sequence of authors. All authors have made a

substantial contribution to the manuscript and all authors who have made a substantial contribution are identified in Block 3.

o //~/4..--- J! 'Z '1!U)O

ARL Lead ~thor r COR Date (mm/ddlyyyy)

F. Approvals

28. First line Supervisor of Senior ARL Author 29. Revlewer(s) C!!:..Chn~~ditori81/ NA) O'COlltfff "ylzy;;.. N~#e Ol/d<jPtJ/O

Name (Las, lr. t, MI) Date (mm/dd/yyyy Date (mm/dd/yyyy)

30. limited distribution information for release to 31. Classified Information

foreign nationals. Classified by:

Declassified on:

Foreign Disclosure Date (mmiddlyyyy Command Security Manager Date (mm/ddlyyyy)

ARL Form 1

October 2003
OPSEC REVIEW CHECKLIST

OPSEC poc: Complete and explain any positive responses in block 9.

Note: ARL must be the proponent of the proposed information for release.

1. Does this material contain Sensitive Information? DYES iI NO 8. Does this material contain:

2. Does this information contain state-of-the~art, a. Any contract proposals, bids, and/or proprietary

breakthrough technology? DYES iI NO

information? DYES ilNO

3. Does the United States hold a significant lead b. Any information on inventions/patent application

time in this technology? DYES iI NO

for which patent secrecy orders have been issued? DYES ilNO

4. Does this information reveal aspects of reverse c. Any weapon systems/component test results? DYES ilNO

engineering? DYES iI NO d. Any ARl-originated studies or after actlon reports

containing advice and recommendations? DYES ilNO

5. Does this material reveal any security practices

or procedures? DYES iI NO e. Weakness andlor vulnerability information? DYES iI NO

6. Does this information reveal any security f. Any information on countermeasures? DYES ilNO

practices or procedures? DYES iI NO g. Any fleldingltest schedule information? DYES ilNO

7. Would release of this information be of economic h. Any Force Protection, Homeland Defense

benefit to a foreign entity, adversary, or alloW for the (security) information? DYES ilNO

development of countermeasures to the system or i. Information on subjects of potential controversy technology? DYES iI NO among military services or other federal agencies? DYES ilNO

j. Information on military applications in space,

nuclear chemical or biological efforts: high energy

laser information; particle beam technology; etc? DYES iI NO

k. Contain information with foreign policy or foreign

relations implications? DYES iI NO

OPSEC Approval Statement

I, the undersigned, am aware of the adversary's interest in 000 publications and in the subject matter of this material and that. to the best of my

knowledge, the net benefit of this release out weighJtthe potential damage to the essential security of all ARL. AMC. Army, or other DOD programs

of which I am aware. h . '/5ld"'" John Costanza • J I- ~p£... A ")

/ ;1PSEC Reviewer (Printed nam~signature) Date

(I 9. Sr.l«for exnl.na'ions/continualinns/nPSEC reviewenmmen'"

Since this report~as published 16 years ago, the technology described herein has become routine and is no longer critical

technology.

Final Release Clearances

32. Public/Limited release information

a. Material has been reviewed for OPSEC policy.

0. J i. A u~ A A 2..) . }£-f j ,~ Ie?

. I !~L OPSEC Oliicer Date

b.

The Inrorma:i A ~~:ned ,;;;er,al Is [2' I is not D approved for public release/ has received appropriate tech/editorial review.

C) m", 10

p v \ Division CIT A"'~ (.}h..r ~' Date

c. This inform~ion is accepted for public release.

Public Affairs Office Date

ARL Form 1

October 2003

Page 2 014