Range-Doppler Response
Benefits of Producing Range-Doppler Response
Visualizing a signal in the range-Doppler domain can help you intuitively understand connections among targets. From a range-Doppler map, you can:
See how far away the targets are and how quickly they are approaching or receding.
Distinguish among targets moving at various speeds at various ranges, in particular:
If a transmitter platform is stationary, a range-Doppler map shows a response from stationary targets at zero Doppler.
For targets that are moving relative to the transmitter platform, the range-Doppler map shows a response at nonzero Doppler values.
You can also use the range-Doppler response in nonvisual ways. For example, you can perform peak detection in the range-Doppler domain and use the information to resolve the range-Doppler coupling of an FMCW radar system.
Support for Range-Doppler Processing
You can use the phased.RangeDopplerResponse
object
to compute and visualize the range-Doppler response of input data. This object
performs range processing in fast time, followed by Doppler processing in slow time.
The object configuration and syntax typically depend on the kind of radar
system.
Pulsed Radar Systems
This procedure is used typically to produce a range-Doppler response for a pulsed radar system. (In the special case of linear FM pulses, the procedure in FMCW Radar Systems is an alternative option.)
Create a
phased.RangeDopplerResponse
object, setting theRangeMethod
property to'Matched Filter'
.Customize these characteristics, or accept default values for any of them:
Signal propagation speed
Sample rate
Length of the FFT for Doppler processing
Characteristics of the window for Doppler weighting, if any
Doppler domain output preference in terms of radial speed or Doppler shift frequency. (If you select radial speed, also specify the signal carrier frequency.)
Organize your data,
x
, into a matrix. The columns in this matrix correspond to separate, consecutive pulses.Use
plotResponse
to plot the range-Doppler response orstep
to obtain data representing the range-Doppler response. Includex
and matched filter coefficients in your syntax when you callplotResponse
orstep
.
For examples, see the step
reference page or
Range-Speed Response Pattern of Target.
FMCW Radar Systems
This procedure is used typically to produce a range-Doppler response for an FMCW radar system. You can also use this procedure for a system that uses linear FM pulsed signals. In the case of pulsed signals, you typically use stretch processing to dechirp the signal.
Create a
phased.RangeDopplerResponse
object, setting theRangeMethod
property to'Dechirp'
.Customize these characteristics, or accept default values for any of them:
Signal propagation speed
Sample rate
FM sweep slope
Whether the processor should dechirp or decimate your signal
Length of the FFT for range processing. The algorithm performs an FFT to translate the dechirped data into the beat frequency domain, which provides range information.
Characteristics of the window for range weighting, if any
Length of the FFT for Doppler processing
Characteristics of the window for Doppler weighting, if any
Doppler domain output preference in terms of radial speed or Doppler shift frequency. (If you select radial speed, also specify the signal carrier frequency.)
Organize your data,
x
, into a matrix in which the columns correspond to sweeps or pulses that are separate and consecutive.In the case of an FMCW waveform with a triangle sweep, the sweeps alternate between positive and negative slopes. However,
phased.RangeDopplerResponse
is designed to process consecutive sweeps of the same slope. To applyphased.RangeDopplerResponse
for a triangle-sweep system, use one of the following approaches:Specify a positive
SweepSlope
property value, withx
corresponding to upsweeps only. The true values of Doppler or speed are half of whatstep
returns orplotResponse
plots.Specify a negative
SweepSlope
property value, withx
corresponding to downsweeps only. The true values of Doppler or speed are half of whatstep
returns orplotResponse
plots.
Use
plotResponse
to plot the range-Doppler response orstep
to obtain data representing the range-Doppler response. Includex
in the syntax when you callplotResponse
orstep
. If your data is not already dechirped, also include a reference signal in the syntax.
For an example, see the plotResponse
reference
page.
Range-Speed Response Pattern of Target
This example shows how to visualize the speed and range of a target in a pulsed radar system that uses a rectangular waveform.
Place an isotropic antenna element at the global origin (0,0,0). Then, place a target with a nonfluctuating RCS of 1 square meter at (5000,5000,10), which is approximately 7 km from the transmitter. Set the operating (carrier) frequency to 10 GHz. To simulate a monostatic radar, set the InUseOutputPort
property on the transmitter to true
. Calculate the range and angle from the transmitter to the target.
antenna = phased.IsotropicAntennaElement(... 'FrequencyRange',[5e9 15e9]); transmitter = phased.Transmitter('Gain',20,'InUseOutputPort',true); fc = 10e9; target = phased.RadarTarget('Model','Nonfluctuating',... 'MeanRCS',1,'OperatingFrequency',fc); txloc = [0;0;0]; tgtloc = [5000;5000;10]; antennaplatform = phased.Platform('InitialPosition',txloc); targetplatform = phased.Platform('InitialPosition',tgtloc); [tgtrng,tgtang] = rangeangle(targetplatform.InitialPosition,... antennaplatform.InitialPosition);
Create a rectangular pulse waveform 2μs in duration with a PRF of 10 kHz. Determine the maximum unambiguous range for the given PRF. Use the radar equation to determine the peak power required to detect a target. This target has an RCS of 1 square meter at the maximum unambiguous range for the transmitter operating frequency and gain. The SNR is based on a desired false-alarm rate of for a noncoherent detector.
waveform = phased.RectangularWaveform('PulseWidth',2e-6,... 'OutputFormat','Pulses','PRF',1e4,'NumPulses',1); c = physconst('LightSpeed'); maxrange = c/(2*waveform.PRF); SNR = npwgnthresh(1e-6,1,'noncoherent'); lambda = c/target.OperatingFrequency; maxrange = c/(2*waveform.PRF); tau = waveform.PulseWidth; Ts = 290; dbterm = db2pow(SNR - 2*transmitter.Gain); Pt = (4*pi)^3*physconst('Boltzmann')*Ts/tau/target.MeanRCS/lambda^2*maxrange^4*dbterm;
Set the peak transmit power to the value obtained from the radar equation.
transmitter.PeakPower = Pt;
Create radiator and collector objects that operate at 10 GHz. Create a free space path for the propagation of the pulse to and from the target. Then, create a receiver.
radiator = phased.Radiator(... 'PropagationSpeed',c,... 'OperatingFrequency',fc,'Sensor',antenna); channel = phased.FreeSpace(... 'PropagationSpeed',c,... 'OperatingFrequency',fc,'TwoWayPropagation',false); collector = phased.Collector(... 'PropagationSpeed',c,... 'OperatingFrequency',fc,'Sensor',antenna); receiver = phased.ReceiverPreamp('NoiseFigure',0,... 'EnableInputPort',true,'SeedSource','Property','Seed',2e3);
Propagate 25 pulses to and from the target. Collect the echoes at the receiver, and store them in a 25-column matrix named rx_puls
.
numPulses = 25; rx_puls = zeros(100,numPulses);
Simulation loop
for n = 1:numPulses
Generate waveform
wf = waveform();
Transmit waveform
[wf,txstatus] = transmitter(wf);
Radiate pulse toward the target
wf = radiator(wf,tgtang);
Propagate pulse toward the target
wf = channel(wf,txloc,tgtloc,[0;0;0],[0;0;0]);
Reflect it off the target
wf = target(wf);
Propagate the pulse back to transmitter
wf = channel(wf,tgtloc,txloc,[0;0;0],[0;0;0]);
Collect the echo
wf = collector(wf,tgtang);
Receive the target echo
rx_puls(:,n) = receiver(wf,~txstatus);
end
Create a range-Doppler response object that uses the matched filter approach. Configure this object to show radial speed rather than Doppler frequency. Use plotResponse
to plot the range versus speed.
rangedoppler = phased.RangeDopplerResponse(... 'RangeMethod','Matched Filter',... 'PropagationSpeed',c,... 'DopplerOutput','Speed','OperatingFrequency',fc); plotResponse(rangedoppler,rx_puls,getMatchedFilter(waveform))
The plot shows the stationary target at a range of approximately 7000 m.
See Also
Related Topics
- Automotive Adaptive Cruise Control Using FMCW Technology (Radar Toolbox)