System object: phased.RangeDopplerResponse
Calculate range-Doppler response
Starting in R2016b, instead of using the
to perform the operation defined by the System object™, you can
call the object with arguments, as if it were a function. For example,
= step(obj,x) and
y = obj(x) perform
the range-Doppler response of the input signal,
the complex range-Doppler response.
the range samples and Doppler samples, respectively, at which the
range-Doppler response is evaluated. This syntax is available when
you set the
RangeMethod property to
DechirpInput property to
This syntax is most commonly used with FMCW signals.
the reference signal to dechirp
x. This syntax
is available when you set the
'FFT' and the
true. This syntax is most commonly used with
FMCW signals, where the reference signal is typically the transmitted
The object performs an initialization the first time the object is executed. This
initialization locks nontunable properties
and input specifications, such as dimensions, complexity, and data type of the input data.
If you change a nontunable property or an input specification, the System object issues an error. To change nontunable properties or inputs, you must first
release method to unlock the object.
Range-Doppler response System object
Input data, specified as a complex-valued K-by-L matrix or K-by-N-by-L array where
Specific requirements depend on the syntax:
In the case of an FMCW waveform with a triangle sweep, the sweeps
alternate between positive and negative slopes. However,
You can specify this argument as single or double precision.
Reference signal, specified as a column vector having the same number of rows as
Matched filter coefficients, specified as a column vector. You can specify this argument as single or double precision.
Pulse repetition frequency, specified as a positive scalar.
To enable this argument, set the
Range-Doppler response of
Range samples at which the range-Doppler response is evaluated.
Doppler samples or speed samples at which the range-Doppler
response is evaluated.
Compute the range-doppler response of a pulsed radar signal using a matched filter.
Load data for a pulsed radar signal. The signal includes three target returns. Two targets are approximately 2000 m away, while the third is approximately 3500 m away. In addition, two of the targets are stationary relative to the radar. The third is moving away from the radar at about 100 m/s.
Create a range-Doppler response object.
response = phased.RangeDopplerResponse('DopplerFFTLengthSource','Property', ... 'DopplerFFTLength',RangeDopplerEx_MF_NFFTDOP, ... 'SampleRate',RangeDopplerEx_MF_Fs,'DopplerOutput','Speed', ... 'OperatingFrequency',RangeDopplerEx_MF_Fc);
Calculate the range-Doppler response.
[resp,rng_grid,dop_grid] = response(RangeDopplerEx_MF_X, ... RangeDopplerEx_MF_Coeff);
Plot the range-Doppler response.
imagesc(dop_grid,rng_grid,mag2db(abs(resp))); xlabel('Speed (m/s)'); ylabel('Range (m)'); title('Range-Doppler Map');
Estimate the Doppler and range values of a single target from the range-Doppler response.
Load data for an FMCW signal that has not yet been dechirped. The signal contains the return from one target.
Create a range-Doppler response object.
hrdresp = phased.RangeDopplerResponse(... 'RangeMethod','FFT',... 'PropagationSpeed',RangeDopplerEx_Dechirp_PropSpeed,... 'SampleRate',RangeDopplerEx_Dechirp_Fs,... 'DechirpInput',true,... 'SweepSlope',RangeDopplerEx_Dechirp_SweepSlope);
Obtain the range-Doppler response data.
[resp,rng_grid,dop_grid] = step(hrdresp,... RangeDopplerEx_Dechirp_X,RangeDopplerEx_Dechirp_Xref);
Estimate the range and Doppler by finding the location of the maximum response.
[x_temp,idx_temp] = max(abs(resp)); [~,dop_idx] = max(x_temp); rng_idx = idx_temp(dop_idx); dop_est = dop_grid(dop_idx)
dop_est = -712.8906
rng_est = rng_grid(rng_idx)
rng_est = 2250
The target is approximately 2250 meters away, and is moving fast enough to cause a Doppler shift of approximately -713 Hz.