25.12.2012 Views

Fundamentals of Radar Signal Processing Some MATLAB Tutorials

Fundamentals of Radar Signal Processing Some MATLAB Tutorials

Fundamentals of Radar Signal Processing Some MATLAB Tutorials

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

<strong>Fundamentals</strong> <strong>of</strong> <strong>Radar</strong> <strong>Signal</strong> <strong>Processing</strong><br />

© 2009 Mark A. Richards, All Rights Reserved<br />

<strong>Fundamentals</strong> <strong>of</strong> <strong>Radar</strong> <strong>Signal</strong> <strong>Processing</strong><br />

<strong>Some</strong> <strong>MATLAB</strong> <strong>Tutorials</strong><br />

Dr Dr. Mark AA. Richards<br />

School <strong>of</strong> Electrical & Computer Engineering<br />

Georgia g Institute <strong>of</strong> Technology gy<br />

Atlanta, Georgia 30332-0250<br />

mark.richards@ece.gatech.edu


LICENSE<br />

• Permission to use, copy, modify and<br />

distribute, including the right to grant others<br />

rights to distribute at any tier, this s<strong>of</strong>tware<br />

and its documentation for any purpose and<br />

without fee or royalty is hereby granted,<br />

provided that the following copyright and<br />

attribution tt ib ti and d the th disclaimer di l i (see ( next t two t<br />

pages) are retained in ALL copies and<br />

derivative works <strong>of</strong> the s<strong>of</strong>tware and<br />

documentation, including modifications that<br />

you y<br />

make for internal use or for distribution.<br />

<strong>Fundamentals</strong> <strong>of</strong> <strong>Radar</strong> <strong>Signal</strong> <strong>Processing</strong><br />

© 2009 Mark A. Richards, All Rights Reserved<br />

2


COPYRIGHT AND ATTRIBUTION<br />

• Except as otherwise noted, this s<strong>of</strong>tware was<br />

developed by Dr. Mark A. Richards and/or Gregory<br />

Heim <strong>of</strong> the Georgia Institute <strong>of</strong> Technology, and was<br />

provided by the Georgia Institute <strong>of</strong> Technology as<br />

part <strong>of</strong> the pr<strong>of</strong>essional education course<br />

“<strong>Fundamentals</strong> <strong>of</strong> <strong>Radar</strong> <strong>Signal</strong> <strong>Processing</strong>”, 2006<br />

and subsequent <strong>of</strong>ferings, or by Dr. Mark A.<br />

Richards to accompany the book <strong>Fundamentals</strong> <strong>of</strong><br />

<strong>Radar</strong> <strong>Signal</strong> <strong>Processing</strong> (McGraw-Hill, New York,<br />

2005).<br />

• Copyright 2006-2009, Mark A. Richards and/or<br />

Gregory Heim. All Rights Reserved.<br />

<strong>Fundamentals</strong> <strong>of</strong> <strong>Radar</strong> <strong>Signal</strong> <strong>Processing</strong><br />

© 2009 Mark A. Richards, All Rights Reserved<br />

3


DISCLAIMER<br />

• All s<strong>of</strong>tware is provided "as is". It is intended for<br />

tutorial and demonstration use only and is provided<br />

as a convenience i and d courtesy t to t the th user. No N user<br />

support is available.<br />

• The developer, developer the Georgia Institute <strong>of</strong> Technology,<br />

Technology<br />

and the Distance Learning and Pr<strong>of</strong>essional<br />

Education division <strong>of</strong> the Georgia Institute <strong>of</strong><br />

Technology make absolutely no warranty <strong>of</strong><br />

merchantability or fitness for any use for any<br />

particular purpose purpose, or that the use <strong>of</strong> the s<strong>of</strong>tware<br />

will not infringe on any third party patents,<br />

copyrights, py g , trademarks, , or other rights. g<br />

<strong>Fundamentals</strong> <strong>of</strong> <strong>Radar</strong> <strong>Signal</strong> <strong>Processing</strong><br />

© 2009 Mark A. Richards, All Rights Reserved<br />

4


<strong>Fundamentals</strong> <strong>of</strong> <strong>Radar</strong> <strong>Signal</strong> <strong>Processing</strong><br />

(FRSP) Tutorial <strong>MATLAB</strong> S<strong>of</strong>tware - 1<br />

• S<strong>of</strong>tware is available …<br />

– On FRSP textbook support web site at www www.radarsp.com<br />

radarsp com<br />

– On CD-ROM for FRSP pr<strong>of</strong>essional education course<br />

(“short course”)<br />

• S<strong>of</strong>tware is provided as a WinZip file titled<br />

FRSP_Demos.zip<br />

• Assumes <strong>MATLAB</strong> 6 and <strong>Signal</strong> <strong>Processing</strong><br />

Toolbox<br />

– mainly for hamming, db functions, but may be<br />

others<br />

– Used with version 7.8 (R2009a)<br />

<strong>Fundamentals</strong> <strong>of</strong> <strong>Radar</strong> <strong>Signal</strong> <strong>Processing</strong><br />

© 2009 Mark A. Richards, All Rights Reserved<br />

5


<strong>Fundamentals</strong> <strong>of</strong> <strong>Radar</strong> <strong>Signal</strong> <strong>Processing</strong><br />

(FRSP) Tutorial <strong>MATLAB</strong> S<strong>of</strong>tware - 2<br />

• S<strong>of</strong>tware contains the following GUI-based <strong>MATLAB</strong><br />

demonstrations:<br />

– RCS <strong>of</strong> Complex Targets<br />

– LFM Pulse Compression<br />

– Multi-PRF Blind Zone Calculation<br />

• … and the following non-GUI-based demonstrations<br />

– Pulse Doppler <strong>Processing</strong><br />

– Detection Calculator<br />

– Doppler Beam Sharpening<br />

– Adaptive Beamformer<br />

• … and the following g student project p j assignments g<br />

– Pulse Doppler <strong>Processing</strong> (similar to above, in project form)<br />

– RCS (similar to above, in project form)<br />

– LFM waveform and matched filtering g( (similar to above, , in project p j form) )<br />

– Threshold detection<br />

<strong>Fundamentals</strong> <strong>of</strong> <strong>Radar</strong> <strong>Signal</strong> <strong>Processing</strong><br />

© 2009 Mark A. Richards, All Rights Reserved<br />

6


S<strong>of</strong>tware Installation<br />

• Unzip FRSP_Demos.zip in the directory <strong>of</strong> your<br />

choice<br />

• This will create a new directory called FRSP_Demos<br />

• Start <strong>MATLAB</strong> and choose the Set Path command<br />

under the File menu<br />

• Navigate to the FRSP FRSP_Demos Demos directory and click the<br />

Add with Subfolders button<br />

• Click the Save button, and then Close<br />

• All <strong>of</strong> the FRSP demo s<strong>of</strong>tware should now be in<br />

your y <strong>MATLAB</strong> ppath<br />

<strong>Fundamentals</strong> <strong>of</strong> <strong>Radar</strong> <strong>Signal</strong> <strong>Processing</strong><br />

© 2009 Mark A. Richards, All Rights Reserved<br />

7


<strong>Fundamentals</strong> <strong>of</strong> <strong>Radar</strong> <strong>Signal</strong> <strong>Processing</strong><br />

© 2009 Mark A. Richards, All Rights Reserved<br />

GUI-Based Demos<br />

8


RCS:<br />

GUI-Based RCS <strong>of</strong> Complex Targets<br />

• Angle variation <strong>of</strong> RCS <strong>of</strong> “complex target”<br />

composed <strong>of</strong> “many” scatterers<br />

– With or without “dominant scatterer”<br />

• RReproduces d thi this experiment: i t<br />

– Can vary # <strong>of</strong> scatterers, box size,<br />

presence/absence <strong>of</strong> dominant scatterer and<br />

relative strength<br />

– CCompare tto various i pdfs df<br />

– Compute autocorrelation<br />

lengths<br />

• >> RCS<br />

– Select/change target<br />

characteristics, then<br />

click on<br />

‘New Scatterers’<br />

– Select/change plot<br />

options, then click on<br />

‘Compute RCS<br />

and Plot Results’<br />

<strong>Fundamentals</strong> <strong>of</strong> <strong>Radar</strong> <strong>Signal</strong> <strong>Processing</strong><br />

© 2009 Mark A. Richards, All Rights Reserved<br />

9<br />

Fluctuating Target Model<br />

Collection <strong>of</strong> Equal Size Scatterers<br />

1<br />

0.9<br />

0.8<br />

0.7<br />

0.6<br />

γ γ = 1<br />

0.5<br />

0.4<br />

Fluctuation model follows from 0.3<br />

Fluctuating Target Model<br />

Central Limit Theorem<br />

0.2<br />

0.1<br />

Collection <strong>of</strong> Scatterers with One Dominant Scatterer<br />

p(γ ) =<br />

<strong>Radar</strong> <strong>Signal</strong> <strong>Processing</strong><br />

© 2005 Mark A. Richards<br />

1<br />

0<br />

Swerling Cases 1 and 2<br />

γ<br />

γ<br />

p(γ ) = e− , γ ≥ 0<br />

γ<br />

0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5<br />

γ<br />

• Exponential RCS pdf<br />

• chi-square with k=1<br />

• <strong>Some</strong>times called Rayleigh<br />

because corresponding voltage<br />

<strong>Radar</strong> <strong>Signal</strong> <strong>Processing</strong><br />

© 2005 Mark A. Richards<br />

(not power) pdf is Rayleigh<br />

1<br />

0<br />

Swerling Cases 1 and 2<br />

γ<br />

γ<br />

e− , γ ≥ 0<br />

γ<br />

0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5<br />

γ<br />

• Exponential RCS pdf<br />

• chi-square with k=1<br />

• <strong>Some</strong>times called Rayleigh<br />

because corresponding voltage<br />

(not power) pdf is Rayleigh<br />

p(γ ) = 4γ −<br />

e<br />

2<br />

γ 2γ<br />

0.8<br />

0.7<br />

Swerling Cases 3 and 4<br />

γ<br />

p(γ ) = , γ ≥ 0<br />

0.6<br />

0.5<br />

0.4<br />

0.3<br />

0.2<br />

γ = 1<br />

• Chi-square with k=2<br />

0.1<br />

pdf for RCS<br />

0<br />

0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5<br />

γ<br />

4γ −<br />

e<br />

2<br />

γ 2γ<br />

0.8<br />

0.7<br />

Swerling Cases 3 and 4<br />

γ<br />

, γ ≥ 0<br />

0.6<br />

0.5<br />

0.4<br />

0.3<br />

0.2<br />

γ = 1<br />

• Chi-square with k=2<br />

0.1<br />

pdf for RCS<br />

0<br />

0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5<br />

γ<br />

p(γ)<br />

<strong>Radar</strong> <strong>Signal</strong> <strong>Processing</strong><br />

© 2005 Mark A. Richards<br />

p(γ)


LFM:<br />

GUI-Based LFM Waveform Characteristics<br />

• Generates and analyzes LFM<br />

waveforms and corresponding<br />

matched filter outputs<br />

– Can vary pulse duration,<br />

bandwidth, sampling rate<br />

– Effects <strong>of</strong> windows<br />

– Two Two-scatterer scatterer resolution<br />

>> LFM<br />

– Select/change waveform, window,<br />

plot pot<br />

characteristics<br />

• Plots should update<br />

automatically<br />

– Click on<br />

‘View Additional Plots’ for<br />

two-scatterer and ambiguity plots<br />

• Caution: ambiguity function<br />

can be VERY slow and/or<br />

exhaust memory!<br />

<strong>Fundamentals</strong> <strong>of</strong> <strong>Radar</strong> <strong>Signal</strong> <strong>Processing</strong><br />

© 2009 Mark A. Richards, All Rights Reserved<br />

10


BlindZone:<br />

GUI-Based Multi-PRF Blind Zone Calculator<br />

• Computes range-Doppler<br />

blind zones for multiple<br />

PRIs and “M-<strong>of</strong>-N”<br />

detection<br />

– Can vary # and value <strong>of</strong><br />

PRIs, and the threshold (M)<br />

for M-<strong>of</strong>-N detection<br />

– Allows for clutter spectrum<br />

width, near-in clutter<br />

eclipsing<br />

>> BlindZone li d<br />

– Enter PRIs and detection<br />

threshold<br />

– Other parameters as desired<br />

– Click “Plot Blind Zones”<br />

<strong>Fundamentals</strong> <strong>of</strong> <strong>Radar</strong> <strong>Signal</strong> <strong>Processing</strong><br />

© 2009 Mark A. Richards, All Rights Reserved<br />

2-<strong>of</strong>-5 example<br />

Single PRI Grayscale Display Mode<br />

11


<strong>Fundamentals</strong> <strong>of</strong> <strong>Radar</strong> <strong>Signal</strong> <strong>Processing</strong><br />

© 2009 Mark A. Richards, All Rights Reserved<br />

Non-GUI-Based Demos<br />

12<br />

0<br />

-10<br />

-20<br />

-30<br />

-40<br />

-50<br />

-60<br />

-70<br />

-80<br />

7<br />

6<br />

range relative to CRP (km) (<br />

5<br />

-1.5<br />

-1<br />

-0.5<br />

0<br />

0.5<br />

1<br />

1.5<br />

2<br />

4<br />

range (km)<br />

After Range Compression, Before Cross-Range Compression<br />

-15 -10 -5 0 5 10 15<br />

aperture position (m)<br />

RANGE-DOPPLER PLOT OF UNPROCESSED DATA<br />

3<br />

2<br />

1<br />

-80<br />

-60<br />

-40 40<br />

-20<br />

0<br />

20<br />

velocity (m/s)<br />

40<br />

60<br />

80


Detection Calculator Pd_calc<br />

• DDetection t ti calculator l l t that th t computes t Pd for non-coherent square-law<br />

integration <strong>of</strong> Swerling target models in Gaussian I/Q noise with a<br />

square-law detector<br />

– Implements equations in the appendix <strong>of</strong> <strong>Radar</strong> Target Detection- Detection<br />

Handbook <strong>of</strong> Theory and Practice by Daniel P. Meyer and Herbert A.<br />

Mayer, (Academic Press, 1973) (“M&M”)<br />

– Computes the threshold and probability <strong>of</strong> detection for the four<br />

standard t d d SSwerling li cases and d the th nonfluctuating fl t ti case<br />

– Also included is the Albersheim approximation to the nonfluctuating<br />

case.<br />

• To use: write a main program to call Pd Pd.m m<br />

– See examples on next two slides<br />

• Based on meyerfun.m, version 1.2 (by Douglas Dougherty,<br />

NSWC DD Code T45, T45 4/14/99)<br />

– meyerfun.m and a controlling GUI, meyer.m, available on MathWorks’<br />

<strong>MATLAB</strong> Central file exchange,<br />

http://www.mathworks.com/matlabcentral/fileexchange/1569<br />

• Modified significantly<br />

– Additional cases, vectorization, numerical issues<br />

<strong>Fundamentals</strong> <strong>of</strong> <strong>Radar</strong> <strong>Signal</strong> <strong>Processing</strong><br />

© 2009 Mark A. Richards, All Rights Reserved<br />

13


Example Calling Program #1:<br />

Pd_as_a_function_<strong>of</strong>_N.m<br />

_ _ _ _ _<br />

% M file for computing a figure to illustrate the effect <strong>of</strong><br />

% noncoherent integration on Pd vs. SNR for Swerling 0,<br />

% for Pfa = 1e-8, SNR from -2 to+15 dB, and N=1 to 100.<br />

%<br />

% Mark Richards<br />

% July 2002<br />

SNR_dB = linspace(0,15);<br />

Pfa = 1e-8*ones(size(SNR 1e 8 ones(size(SNR_dB)); dB));<br />

% Step through the cases:<br />

Pd0 = Pd(1*ones(size(SNR_dB)),Pfa,SNR_dB,0);<br />

Pd1 = Pd(2*ones(size(SNR_dB)),Pfa,SNR_dB,0);<br />

Pd(2* ( i (SNR dB)) Pf SNR dB 0)<br />

Pd2 = Pd(5*ones(size(SNR_dB)),Pfa,SNR_dB,0);<br />

Pd3 = Pd(10*ones(size(SNR_dB)),Pfa,SNR_dB,0);<br />

Pd4 = Pd(20*ones(size(SNR_dB)),Pfa,SNR_dB,0);<br />

% OK, now draw the results<br />

plot(SNR_dB,[Pd0; Pd1; Pd2; Pd3; Pd4])<br />

axis([0,15,0,1]);<br />

xlabel('SNR xlabel(SNR (dB)'); (dB) ); ylabel('Pd'); ylabel(Pd); grid;<br />

legend('N=1','N=2','N=5','N=10','N=20','Location','SouthEast');<br />

<strong>Fundamentals</strong> <strong>of</strong> <strong>Radar</strong> <strong>Signal</strong> <strong>Processing</strong><br />

© 2009 Mark A. Richards, All Rights Reserved<br />

Pd<br />

1<br />

0.9<br />

0.8<br />

0.7<br />

0.6<br />

0.5<br />

0.4<br />

0.3<br />

0.2<br />

N=1<br />

N=2<br />

N=5<br />

01 0.1<br />

NN=10 10<br />

N=20<br />

0<br />

0 5 10 15<br />

SNR (dB)<br />

14


Example Calling Program #1:<br />

Swerling_compare.m<br />

_<br />

% M file for computing a figure to compare the 5 swerling cases + Albersheim<br />

% for N=10 pulses, Pfa = 1e-8, and SNR from -2 to+15 dB<br />

%<br />

% Mark Richards<br />

% July 2002<br />

1<br />

SNR_dB = linspace(-2,15);<br />

Pfa = 1e-8*ones(size(SNR_dB));<br />

0.8<br />

N = 10*ones(size(SNR_dB)); ( ( _ ));<br />

0.7<br />

% Step through the cases:<br />

Pd0 = Pd(N,Pfa,SNR_dB,0); % nonfluctuating; also<br />

called Swerling 0 or 5 in some cases<br />

Pd1 = Pd(N,Pfa,SNR_dB,1);<br />

Pd(N Pfa SNR dB 1);<br />

Pd2 = Pd(N,Pfa,SNR_dB,2);<br />

Pd3 = Pd(N,Pfa,SNR_dB,3);<br />

Pd4 = Pd(N,Pfa,SNR_dB,4);<br />

Pd6 d6 = Pd(N,Pfa,SNR d( , a,S _d dB,6); ,6); % Albersheim's be s e s equation equat o<br />

% OK, now draw the results<br />

plot(SNR_dB,[Pd0; Pd1; Pd2; Pd3; Pd4]; Pd6)<br />

axis([-2,15,0,1]);<br />

xlabel('SNR (dB)'); ylabel('Pd'); grid;<br />

legend('Nonfluctuating','Swerling 1','Swerling 2','Swerling 3', ...<br />

'Swerling 4','Albersheim','Location','Southeast');<br />

<strong>Fundamentals</strong> <strong>of</strong> <strong>Radar</strong> <strong>Signal</strong> <strong>Processing</strong><br />

© 2009 Mark A. Richards, All Rights Reserved<br />

Pd<br />

15<br />

0.9<br />

0.6<br />

0.5<br />

0.4<br />

0.3 Nonfluctuating<br />

Swerling 1<br />

0.2<br />

Swerling 2<br />

Swerling 3<br />

0.1<br />

Swerling 4<br />

0<br />

-2 0 2 4 6<br />

SNR (dB)<br />

8 10<br />

Albersheim<br />

12 14


Pulse Doppler <strong>Processing</strong> Demonstration<br />

• Formation <strong>of</strong> a fast-time/slow-time (range/pulse #)<br />

data matrix for moving targets in noise and clutter<br />

– LFM chirp hi waveform f<br />

• Pulse Doppler processing for target detection; and<br />

range, velocity, and relative RCS estimation<br />

– Formation <strong>of</strong> range-Doppler matrix<br />

– Pulse compression<br />

– MTI filter compensation<br />

– R4 correction<br />

– Threshold detection<br />

– Peak interpolation<br />

<strong>Fundamentals</strong> <strong>of</strong> <strong>Radar</strong> <strong>Signal</strong> <strong>Processing</strong><br />

© 2009 Mark A. Richards, All Rights Reserved<br />

16


Pulse Doppler <strong>Processing</strong> Procedure<br />

• Two stages<br />

– makePDdata creates a fast-time/slow-time data matrix that will<br />

support the desired scenario<br />

– procPDdata performs the processing<br />

• Stage 1: Data Creation<br />

– >> edit dit makePDdata k PDd t<br />

• Set all simulation parameters by editing input section <strong>of</strong><br />

makePDdata.m<br />

– >> makePDdata<br />

• To create data set for processing<br />

• Output in file.mat<br />

– Where file is the “root file name” you y specify p y<br />

– Parameters logged in file.lis<br />

• Stage 2: <strong>Processing</strong><br />

– >> procPDdata<br />

<strong>Fundamentals</strong> <strong>of</strong> <strong>Radar</strong> <strong>Signal</strong> <strong>Processing</strong><br />

© 2009 Mark A. Richards, All Rights Reserved<br />

17


Pulse Doppler <strong>Processing</strong> Inputs<br />

makePDdata user input section:<br />

% User Input Section ###############################<br />

% ###############################################<br />

% Get root file name for saving results<br />

file=input('Enter root file name for data and listing files: ','s');<br />

T = 10e-6; 10e 6 % ppulse lse length length, seconds<br />

W = 10e6; % chirp bandwidth, Hz<br />

fs = 12e6; % chirp sampling rate, Hz; oversample by a little<br />

Np = 20; % # <strong>of</strong> pulses<br />

jkl = 0:(Np-1); % pulse index array<br />

PRF = 25.0e3; % PRF in Hz<br />

PRI = (1/PRF); % PRI in sec<br />

T_0 = PRI*jkl; % relative start times <strong>of</strong> pulses, in sec<br />

g = ones(1,Np); % gains <strong>of</strong> pulses<br />

T_out = [12 38]*1e-6; % start and end times <strong>of</strong> range window<br />

in sec<br />

T_ref = 0; % system reference time in usec<br />

fc = 10e9; % RF frequency in Hz; 10 GHz is X-band<br />

<strong>Fundamentals</strong> <strong>of</strong> <strong>Radar</strong> <strong>Signal</strong> <strong>Processing</strong><br />

© 2009 Mark A. Richards, All Rights Reserved<br />

18<br />

% Compute unambiguous Doppler interval in m/sec<br />

% Compute unambiguous range interval in meters<br />

vua = 3e8*PRF/(2*fc);<br />

rmin = 3e8*T_out(1)/2;<br />

rmax = 3e8*T_out(2)/2;<br />

rua = rmax-rmin;<br />

% Define number <strong>of</strong> targets, then range, amplitude, and<br />

% radial velocity <strong>of</strong> each<br />

Ntargets = 44;<br />

del_R = (3e8/2)*( 1/fs )/1e3; % in km<br />

ranges = [2.3 2.7 3.1 3.5]*1e3; % in km<br />

SNR = [10 20 15 20]; % dB<br />

vels = [-0.3 -0.15 +0.1 +0.25]*vua; % in m/sec<br />

% End User Input Section #########################<br />

% ############################################


power<br />

40<br />

35<br />

30<br />

25<br />

20<br />

Pulse Doppler <strong>Processing</strong> Outputs - 1<br />

NONCOHERENTLY INTEGRATED RANGE TRACE<br />

15<br />

1.5 2 2.5 3 3.5 4 4.5 5<br />

-30<br />

5.5 6<br />

range bin<br />

-40<br />

<strong>Fundamentals</strong> <strong>of</strong> <strong>Radar</strong> <strong>Signal</strong> <strong>Processing</strong><br />

© 2009 Mark A. Richards, All Rights Reserved<br />

0<br />

-10<br />

-20<br />

-50<br />

-60<br />

-70<br />

-80 80<br />

6<br />

5<br />

4<br />

range (km)<br />

3<br />

RANGE-DOPPLER PLOT OF UNPROCESSED DATA<br />

2<br />

1<br />

-200<br />

-150<br />

19<br />

-100<br />

-50<br />

0<br />

velocity (m/s)<br />

rangee<br />

(km)<br />

5.5<br />

5<br />

50<br />

4.5<br />

4<br />

3.5<br />

3<br />

2.5<br />

2<br />

100<br />

150<br />

RANGE-DOPPLER CONTOUR PLOT OF UNPROCESSED DATA<br />

200<br />

-150 -100 -50 0<br />

velocity (m/s)<br />

50 100 150


0<br />

-10<br />

-20 20<br />

-30<br />

-40<br />

-50<br />

-60<br />

-70<br />

-80<br />

-90<br />

6<br />

Pulse Doppler <strong>Processing</strong> Outputs - 2<br />

5<br />

4<br />

range (km)<br />

RANGE-DOPPLER PLOT OF CLUTTER-CANCELLED DATA RANGE-DOPPLER CONTOUR PLOT OF CLUTTER-CANCELLED DATA<br />

-200<br />

<strong>Fundamentals</strong> <strong>of</strong> <strong>Radar</strong> <strong>Signal</strong> <strong>Processing</strong><br />

© 2009 Mark A. Richards, All Rights Reserved<br />

3<br />

2<br />

1<br />

-150<br />

-100<br />

-50<br />

0<br />

50<br />

velocity (m/s)<br />

100<br />

150<br />

200<br />

20<br />

range (km)<br />

5.5<br />

5<br />

45 4.5<br />

4<br />

3.5<br />

3<br />

2.5<br />

2<br />

-150 -100 -50 0<br />

velocity (m/s)<br />

50 100 150


ange (km)<br />

5.5<br />

5<br />

4.5<br />

4<br />

3.5<br />

3<br />

2.5<br />

2<br />

Pulse Doppler <strong>Processing</strong> Outputs - 3<br />

RANGE-DOPPLER CONTOUR PLOT OF CLUTTER-CANCELLED DATA<br />

range (km)<br />

4<br />

3.5<br />

3<br />

2.5<br />

2<br />

RANGE-DOPPLER CONTOUR PLOT OF FULLY-PROCESSED DATA<br />

-150 -100 -50 0 50 100 150<br />

-150 -100 -50 0 50 100 150<br />

velocity (m/s) velocity (m/s)<br />

<strong>Fundamentals</strong> <strong>of</strong> <strong>Radar</strong> <strong>Signal</strong> <strong>Processing</strong><br />

© 2009 Mark A. Richards, All Rights Reserved<br />

power (dB)<br />

0<br />

-20<br />

-40<br />

-60<br />

-80<br />

-100<br />

MAXIMUM DOPPLER RESPONSE VS. RANGE<br />

0 0.5 1 1.5 2 2.5 3 3.5 4 4.5<br />

-120<br />

range (km)<br />

21<br />

1.5<br />

1<br />

0.5


Doppler Beam Sharpening Imaging - 1<br />

• Closely related to the pulse Doppler demonstration and project<br />

• Imaging <strong>of</strong> a user-specified array <strong>of</strong> point scatterers<br />

• TTwo stages t<br />

– makeSARdata_DBS creates a fast-time/slow-time data matrix that<br />

will support the desired scenario<br />

– procSARdata procSARdata_DBS DBS performs the DBS imaging algorithm<br />

• Stage 1: Data Creation<br />

>> edit makeSARdata makeSARdata_DBS DBS<br />

– Set all simulation parameters by editing input section <strong>of</strong><br />

makeSARdata_DBS.m<br />

>> makeSARdata_DBS<br />

– To create data set for processing<br />

– Output in file.mat<br />

• Where file is the “root file name” you specify<br />

• Parameters logged in file.lis<br />

<strong>Fundamentals</strong> <strong>of</strong> <strong>Radar</strong> <strong>Signal</strong> <strong>Processing</strong><br />

© 2009 Mark A. Richards, All Rights Reserved<br />

22


Doppler Beam Sharpening Imaging - 2<br />

• Stage 2: Image Formation<br />

>> edit procSARdata_DBS<br />

– Set image formation option switches by editing input<br />

section <strong>of</strong> procSARdata_DBS.m _<br />

>> procSARdata_DBS to generate DBS image<br />

– Range Range-compressed compressed only in Fig Fig. 1 window<br />

– Fully-formed image in Fig. 2 window<br />

– If geometric corrections selected, then<br />

• CCross-range resampled l d iimage iin Fi Fig. 3 window i d<br />

• Range curvature-corrected image in Fig. 4 window<br />

<strong>Fundamentals</strong> <strong>of</strong> <strong>Radar</strong> <strong>Signal</strong> <strong>Processing</strong><br />

© 2009 Mark A. Richards, All Rights Reserved<br />

23


DBS Demonstration: makesardata_DBS<br />

% User input section #################################<br />

% need a file name to store data, e.g. 'myfile' or 'temp' or 'sardata'.<br />

% Data will then be in 'myfile.dat', y , etc.<br />

file=input('Enter root file name for data and listing files: ','s');<br />

DCR = 20; % cross-range resolution, m<br />

DR = 20; % range resolution, m<br />

Rcrp = 40000; % range to swath center<br />

v = 150; % platform velocity, m/s<br />

fc = 10e9; % RF frequency in Hz<br />

lambda = c/fc; % wavelength, m<br />

tau = 5e-6; % pulse length, seconds (bandwidth set by<br />

resolution)<br />

Daz = 0.2; % antenna azimuth size, m<br />

thetaaz = lambda/Daz; % azimuth beamwidth, radians<br />

BWdopp = 2*v/lambda*thetaaz; % slow time Doppler bandwidth, Hz<br />

Ls = 3000; % swath depth, m<br />

oversample oversample_st st = 2; % slow time oversample factor; higher makes<br />

% prettier pictures but larger data sets<br />

oversample_ft = 2; % fast time oversample factor, similar to slow<br />

time<br />

<strong>Fundamentals</strong> <strong>of</strong> <strong>Radar</strong> <strong>Signal</strong> <strong>Processing</strong><br />

© 2009 Mark A. Richards, All Rights Reserved<br />

24<br />

% Define target locations, one row <strong>of</strong> (x,R) coordinates per<br />

target<br />

% Ranges are relative to the CRP range (Rcrp) above.<br />

% coords = [0,0]; % a single point target at the CRP<br />

coords = ... % a grid <strong>of</strong> 9 point targets<br />

[-1000,-1000;<br />

-1000,0; , ;<br />

-1000,+1000;<br />

0,-1000;<br />

0,0;<br />

0,+1000;<br />

+1000,-1000; 1000, 1000;<br />

+1000,0;<br />

+1000,+1000];<br />

% End user input section<br />

#####################################<br />

% ###################################################


Sample Makesardata_DBS Output<br />

faast<br />

time (sec)<br />

2.6<br />

265 2.65<br />

2.7<br />

2.75<br />

2.8<br />

x 10 -4<br />

<strong>Fundamentals</strong> <strong>of</strong> <strong>Radar</strong> <strong>Signal</strong> <strong>Processing</strong><br />

© 2009 Mark A. Richards, All Rights Reserved<br />

Real Part <strong>of</strong> Data Matrix<br />

100 200 300<br />

pulse number<br />

400 500 600<br />

25


DBS Demonstration: procsardata_DBS<br />

• %#######################################################<br />

• % User input section ###################################<br />

• % algorithm control parameters<br />

• dechirp = false; % use azimuth dechirp step or not<br />

• oversample_freq l f = 2 2; % oversampling li iin DDoppler; l bi bigger makes k bbetter tt<br />

• % picture but needs more memory and time<br />

• fix_geometry = false; % perform geometric corrections or not<br />

• % Get data file name<br />

• file=input('Enter root file name for data file: ','s');<br />

• % End user input section ###############################<br />

• % ######################################################<br />

<strong>Fundamentals</strong> <strong>of</strong> <strong>Radar</strong> <strong>Signal</strong> <strong>Processing</strong><br />

© 2009 Mark A. Richards, All Rights Reserved<br />

26


angee<br />

relative to CRP (km)<br />

-1.5<br />

-1<br />

-0.5<br />

0<br />

0.5<br />

1<br />

1.5<br />

2<br />

Sample Makesardata_DBS Output,<br />

No Geometric Corrections<br />

After Range Compression, Before Cross-Range Compression<br />

range relativve<br />

to CRP (km)<br />

-1.5<br />

-1<br />

-0.5<br />

0<br />

05 0.5<br />

-15 -10 -5 0<br />

aperture position (m)<br />

5 10 15<br />

<strong>Fundamentals</strong> <strong>of</strong> <strong>Radar</strong> <strong>Signal</strong> <strong>Processing</strong><br />

© 2009 Mark A. Richards, All Rights Reserved<br />

1<br />

15 1.5<br />

2<br />

Fully y Compressed p Image g<br />

-6 -4 -2 0<br />

cross-range g ( (km) )<br />

2 4<br />

27


Sample Makesardata_DBS Output<br />

with Geometric Corrections<br />

range rellative<br />

to CRP (km)<br />

-1.5<br />

-1<br />

-0.5<br />

0<br />

0.5<br />

1<br />

1.5<br />

<strong>Fundamentals</strong> <strong>of</strong> <strong>Radar</strong> <strong>Signal</strong> <strong>Processing</strong><br />

© 2009 Mark A. Richards, All Rights Reserved<br />

2<br />

Resampled and Range-Shifted Image<br />

-6 -4 -2 0<br />

cross cross-range range (km)<br />

2 4 6<br />

28


Sample procSARdata_DBS Images,<br />

with t aand d without t out Azimuth ut Dechirp ec p<br />

ΔCR ≥ λR<br />

• Azimuth dechirp not needed if<br />

• Consider R = 40 km, λ = 3 cm, ΔCR = rm<br />

– Violates limit limit, which is about 17 m in this case<br />

• Generate new data with ΔCR = 5 m, etc.<br />

– Process with requency oversample = 4 for good mainlobe definition<br />

range relative to CRP (kmm)<br />

-1.04<br />

-1.02<br />

-1<br />

-0.98<br />

-0.96<br />

-0.94<br />

-0.92<br />

Fully Compressed Image<br />

-1.15 -1.1 -1.05 -1 -0.95 -0.9 -0.85<br />

cross-range (km)<br />

NNo AAzimuth i th DDechirp: hi<br />

Cross-Range Smearing<br />

<strong>Fundamentals</strong> <strong>of</strong> <strong>Radar</strong> <strong>Signal</strong> <strong>Processing</strong><br />

© 2009 Mark A. Richards, All Rights Reserved<br />

29<br />

range relative to CRP (kmm)<br />

-1.04<br />

-1.02<br />

-1<br />

-0.98<br />

-0.96<br />

-0.94 094<br />

-0.92<br />

2<br />

FFully ll CCompressed d IImage<br />

-1.1 -1.05 -1<br />

cross-range (km)<br />

-0.95 -0.9<br />

With Azimuth Dechirp:<br />

Cross-Range Resolution Goal Met


Adaptive Beamformer<br />

• Simple demonstration <strong>of</strong> four different beamformer patterns in<br />

an environment with two jammers<br />

– NNon-adaptive d ti (fixed) (fi d) beamformer<br />

b f<br />

– fully-adaptive beamformer using weights<br />

– “distortionless” beamformer<br />

– PPost-DFT t DFT (beamspace) (b ) beamformer<br />

b f<br />

>> edit beamform<br />

-1 *<br />

h=SI t<br />

– Set all parameters by editing input section <strong>of</strong> beamform.m<br />

– RF, jammer AOAs, powers<br />

– Array parameters<br />

– Use -30 dB Taylor weighting (or not)<br />

>> beamform<br />

– Four different patterns in four figure windows<br />

<strong>Fundamentals</strong> <strong>of</strong> <strong>Radar</strong> <strong>Signal</strong> <strong>Processing</strong><br />

© 2009 Mark A. Richards, All Rights Reserved<br />

30


Adaptive Beamformer beamform<br />

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%<br />

% User Input Section<br />

lambda = 0.03; % wavelength g<br />

d = lambda/2; % element spacing<br />

dl = d/lambda;<br />

N = 16; % # <strong>of</strong> array elements<br />

aoa_max = asin(1/2/dl); % maximum "real space" AOA (radians)<br />

window_on i d = ffalse; l % true t or false f l<br />

Nangle = 1000; % # <strong>of</strong> angles for evaluating beam pattern<br />

Nm1 = Nangle-1;<br />

t_aoa = pi/180*(0); % target AOA (radians)<br />

j_aoa1 = pi/180*(18); % jammer #1 AOA (radians)<br />

j_aoa2 = pi/180*(-33); % jammer #2 AOA (radians)<br />

SNR = 0; % signal to noise ratio (dB)<br />

JSR1 = +50; % jammer #1 to noise ratio (dB)<br />

JSR2 = +30; % jammer #2 to noise ratio (dB)<br />

% End user input section<br />

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%<br />

<strong>Fundamentals</strong> <strong>of</strong> <strong>Radar</strong> <strong>Signal</strong> <strong>Processing</strong><br />

© 2009 Mark A. Richards, All Rights Reserved<br />

31


Outputs from beamform, Both Jammers<br />

in the Sidelobes, Sidelobes No Weighting<br />

Normalized Array Response (dBB)<br />

Response (dB)<br />

Normalized Array<br />

0<br />

-10<br />

-20<br />

-30<br />

-40<br />

-50<br />

-60<br />

0<br />

-10<br />

-20<br />

-30<br />

-40<br />

-50<br />

-60<br />

Unadapted Array Pattern<br />

-80 -60 -40 -20 0 20 40 60 80<br />

Angle <strong>of</strong> Arrival (degrees)<br />

Di Distortionless t ti l BBeamformer f AArray PPattern tt<br />

-80 80 -60 60 -40 40 -20 20 0 20 40 60 80<br />

Angle <strong>of</strong> Arrival (degrees)<br />

<strong>Fundamentals</strong> <strong>of</strong> <strong>Radar</strong> <strong>Signal</strong> <strong>Processing</strong><br />

© 2009 Mark A. Richards, All Rights Reserved<br />

32<br />

Normalized Array Response (dBB)<br />

Response (dB)<br />

Normalized Array<br />

0<br />

-10<br />

-20<br />

-30<br />

-40<br />

-50<br />

-60<br />

0<br />

-10<br />

-20<br />

-30 30<br />

-40<br />

-50<br />

-60<br />

Fully Adaptive Array Pattern<br />

-80 -60 -40 -20 0 20 40 60 80<br />

Angle <strong>of</strong> Arrival (degrees)<br />

Post-DFT (Beamspace) Array Pattern<br />

-80 80 -60 60 -40 40 -20 20 0 20 40 60 80<br />

Angle <strong>of</strong> Arrival (degrees)


Outputs from beamform, One Jammer in<br />

the Mainlobe , No Weighting<br />

Normalized Array Response (dB) )<br />

Normalized Arrayy<br />

Response (dB)<br />

0<br />

-10<br />

-20<br />

-30<br />

-40<br />

-50 50<br />

-60<br />

0<br />

-10<br />

-20<br />

-30 30<br />

-40<br />

-50<br />

-60<br />

Unadapted Array Pattern<br />

-80 -60 -40 -20 0 20 40 60 80<br />

Angle <strong>of</strong> Arrival (degrees)<br />

Normalized Array Response (dB) )<br />

0<br />

-10<br />

-20<br />

-30<br />

-40<br />

-50 50<br />

-60<br />

Fully Adaptive Array Pattern<br />

-80 -60 -40 -20 0 20 40 60 80<br />

Angle <strong>of</strong> Arrival (degrees)<br />

Di Distortionless t ti l BBeamformer f AArray PPattern tt PPost-DFT t DFT (Beamspace) (B ) Array A Pattern P tt<br />

0<br />

-80 80 -60 60 -400 -200 0 200 400 60 80<br />

Angle <strong>of</strong> Arrival (degrees)<br />

<strong>Fundamentals</strong> <strong>of</strong> <strong>Radar</strong> <strong>Signal</strong> <strong>Processing</strong><br />

© 2009 Mark A. Richards, All Rights Reserved<br />

33<br />

Normalized Arrayy<br />

Response (dB)<br />

-10<br />

-20<br />

-30 30<br />

-40<br />

-50<br />

-60<br />

-80 80 -60 60 -400 -200 0 200 400 60 80<br />

Angle <strong>of</strong> Arrival (degrees)


elative probabilitty<br />

poower<br />

3<br />

x 10-3<br />

2.5<br />

2<br />

1.5<br />

1<br />

0.5<br />

60<br />

50<br />

40<br />

30<br />

20<br />

10<br />

PDF <strong>of</strong> RCS vs. Aspect, Large Dominant+Many Case<br />

0<br />

0 200 400 600 800 1000 1200 1400 1600 1800 2000<br />

radar cross section (m 2 )<br />

0<br />

0 50 100 150 200 250 300 350 400<br />

<strong>Fundamentals</strong> <strong>of</strong> <strong>Radar</strong> <strong>Signal</strong> <strong>Processing</strong><br />

© 2009 Mark A. Richards, All Rights Reserved<br />

Student Projects<br />

34<br />

amplitudee<br />

1<br />

0.9<br />

0.8<br />

0.7<br />

0.6<br />

0.5<br />

0.4<br />

0.3<br />

0.2<br />

01 0.1<br />

0<br />

sample -0.5 -0.4 -0.3 -0.2 -0.1 0 0.1<br />

normalized frequency (cycles)<br />

0.2 0.3 0.4 0.5


Student Projects - 1<br />

• “Student projects” are simulation projects intended to illustrate<br />

radar signal behavior and/or teach students to implement<br />

simple signal processing algorithms<br />

• Included are four project topics<br />

– RCS statistics<br />

– Linear FM waveform properties and matched filtering<br />

– Pulse Doppler processing and detection<br />

– CFAR detection<br />

• For each project, p j the following g are provided: p<br />

– Example problem assignment in Micros<strong>of</strong>t Word format<br />

– Example problem solution consisting <strong>of</strong><br />

• Sample <strong>MATLAB</strong> code<br />

• Micros<strong>of</strong>t Word document describing the solution<br />

<strong>Fundamentals</strong> <strong>of</strong> <strong>Radar</strong> <strong>Signal</strong> <strong>Processing</strong><br />

© 2009 Mark A. Richards, All Rights Reserved<br />

35


Student Projects - 2<br />

• Document note for all projects: Equations in the<br />

problem assignment and solution documents were<br />

created in MathType. MathType is an upgrade to<br />

Micros<strong>of</strong>t’s Equation Editor. It can edit equations<br />

created in Equation Editor, however, the converse is<br />

not true. In addition, MathType may use some fonts or<br />

characters not available on machines on which it is not<br />

installed installed. Consequently, Consequently it is recommended that the<br />

user install MathType if it is desired to work with the<br />

student project assignment and solution documents.<br />

MathType is available at<br />

www.dessci.com/en/products/mathtype/.<br />

<strong>Fundamentals</strong> <strong>of</strong> <strong>Radar</strong> <strong>Signal</strong> <strong>Processing</strong><br />

© 2009 Mark A. Richards, All Rights Reserved<br />

36


Student Projects - 3<br />

• All projects are self-contained and self-explanatory<br />

using the problem assignment document, except for<br />

the pulse Doppler project<br />

• Th The pulse l Doppler D l project j t requires i that th t data d t be b<br />

generated by the instructor, to be analyzed by the<br />

students.<br />

• The following charts provide some additional detail<br />

on creating ti data d t for f the th pulse l Doppler D l project j t and d<br />

then using that data in the sample solution.<br />

<strong>Fundamentals</strong> <strong>of</strong> <strong>Radar</strong> <strong>Signal</strong> <strong>Processing</strong><br />

© 2009 Mark A. Richards, All Rights Reserved<br />

37


MTI + Pulse Doppler <strong>Processing</strong><br />

• Place all files in the Pulse Doppler directory in the <strong>MATLAB</strong><br />

work directory<br />

– Or anywhere on the <strong>MATLAB</strong> path<br />

>> edit makedata<br />

– Set all parameters by editing input section <strong>of</strong> makedata.m<br />

– Includes noise, clutter, moving targets, and R4 • R<strong>Radar</strong> d parameters: RF RF, PRF PRF, range window i d<br />

• Target SNR, ranges, velocities, #<strong>of</strong> targets<br />

• CNR<br />

>> makedata<br />

– To create data set for processing<br />

– Output data in file.mat<br />

• Where file is the “root file name” you specify<br />

• PParameters t logged l d iin<br />

file.lis<br />

>> procdata<br />

– To perform MTI + pulse Doppler processing, generate displays<br />

• Input is in same file file.mat mat specified in makedata<br />

• Program pauses at every graph; hit any key to continue<br />

<strong>Fundamentals</strong> <strong>of</strong> <strong>Radar</strong> <strong>Signal</strong> <strong>Processing</strong><br />

© 2009 Mark A. Richards, All Rights Reserved<br />

38


Create PD Data: makedata<br />

% User Input Section ####################################<br />

% ####################################################<br />

% Get root file name for saving results<br />

file=input('Enter root file name for data and listing files: ','s');<br />

T = 10e-6; % pulse length, seconds<br />

W = 10e6; % chirp bandwidth, Hz<br />

fs = 12e6; % chirp sampling rate, Hz; oversample by a little<br />

Np = 20; % # <strong>of</strong> pulses<br />

jkl = 0:(Np 0:(Np-1); 1); % pulse index array<br />

PRF = 25.0e3; % PRF in Hz<br />

PRI = (1/PRF); % PRI in sec<br />

T_0 = PRI*jkl; % relative start times <strong>of</strong> pulses, in sec<br />

g = ones(1,Np); ( p) % gains g <strong>of</strong> pulses p<br />

T_out = [12 38]*1e-6; % start and end times <strong>of</strong> range window in<br />

sec<br />

T_ref = 0; % system reference time in usec<br />

fc = 10e9; % RF frequency in Hz; 10 GHz is X-band<br />

<strong>Fundamentals</strong> <strong>of</strong> <strong>Radar</strong> <strong>Signal</strong> <strong>Processing</strong><br />

© 2009 Mark A. Richards, All Rights Reserved<br />

39<br />

% Compute unambiguous Doppler interval in m/sec<br />

% Compute unambiguous range interval in meters<br />

vua = 3e8*PRF/(2*fc);<br />

rmin = 3e8*T_out(1)/2;<br />

rmax = 3e8*T_out(2)/2;<br />

rua = rmax-rmin;<br />

% Define number <strong>of</strong> targets, then range, amplitude, and<br />

% radial velocity <strong>of</strong> each<br />

Ntargets = 4;<br />

del del_R R = (3e8/2)*( 1/fs )/1e3; % in km<br />

ranges = [2.3 2.7 3.1 3.5]*1e3; % in km<br />

SNR = [10 20 15 20]; % dB<br />

vels = [-0.3 -0.15 +0.1 +0.25]*vua; % in m/sec<br />

% End User Input Section ###############################<br />

% #############################################


amplitude (dBB)<br />

30<br />

20<br />

10<br />

-10<br />

Final Output from makedata<br />

0<br />

-20<br />

-30 30<br />

<strong>Fundamentals</strong> <strong>of</strong> <strong>Radar</strong> <strong>Signal</strong> <strong>Processing</strong><br />

© 2009 Mark A. Richards, All Rights Reserved<br />

-40<br />

1.5 2 2.5 3 3.5 4 4.5 5 5.5 6<br />

distance (km)<br />

40


Process PD Data: procdata<br />

• No parameters to set<br />

• <strong>Some</strong> sample figures:<br />

<strong>Fundamentals</strong> <strong>of</strong> <strong>Radar</strong> <strong>Signal</strong> <strong>Processing</strong><br />

© 2009 Mark A. Richards, All Rights Reserved<br />

power (dB)<br />

0<br />

-10<br />

-20<br />

-30<br />

-40 40<br />

-50<br />

-60<br />

-70<br />

-80<br />

-90<br />

41<br />

MAXIMUM DOPPLER RESPONSE VS VS. RANGE<br />

-100<br />

0 0.5 1 1.5 2 2.5 3 3.5 4 4.5<br />

range (km)


<strong>Fundamentals</strong> <strong>of</strong> <strong>Radar</strong> <strong>Signal</strong> <strong>Processing</strong><br />

© 2009 Mark A. Richards, All Rights Reserved<br />

Missing Pieces?<br />

• Contact Mark Richards by ee-mail, mail,<br />

mark.richards@ece.gatech.edu<br />

42

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!