Main Content

phased.RangeDopplerResponse

Range-Doppler response

Description

The phased.RangeDopplerResponse System object™ calculates the filtered response to fast-time and slow-time data. or equivalently, range data, using either a matched filter or an FFT.

The input to the Doppler response object is a data cube. The organization of the data cube follows the Phased Array System Toolbox™ convention. The first dimension of the cube represents the fast-time samples or ranges of the received signals. The second dimension represents multiple channels such as sensors or beams. The third dimension, slow time, represent pulses. If the data contains only one channel or pulse, the data cube can contain fewer than three dimensions. Range processing operates along the first dimension of the cube. Doppler processing operates along the last dimension.

The output of the object is also a data cube with the same number of dimensions as the input. The first dimension contains range-processed data but its length can differ from the first dimension of the input. The last dimension contains Doppler processed data. Its length can differ from the last dimension of the input.

To compute the range-Doppler response:

  1. Define and set up your phased.RangeDopplerResponse System object. See Construction.

  2. Call step to compute the range-Doppler response of the input signal according to the properties of phased.RangeDopplerResponse. The behavior of step is specific to each object in the toolbox.

Note

Starting in R2016b, instead of using the step method to perform the operation defined by the System object, you can call the object with arguments, as if it were a function. For example, y = step(obj,x) and y = obj(x) perform equivalent operations.

Construction

H = phased.RangeDopplerResponse creates a range-Doppler response System object, H. The object calculates the range-Doppler response of the input data.

H = phased.RangeDopplerResponse(Name,Value) creates a range-Doppler response object, H, with additional options specified by one or more Name,Value pair arguments. Name is a property name, and Value is the corresponding value. Name must appear inside single quotes (''). You can specify several name-value pair arguments in any order as Name1,Value1,…,NameN,ValueN.

Properties

RangeMethod

Range processing method

Specify the method of range processing as 'Matched filter' or 'FFT'.

'Matched filter'Algorithm applies a matched filter to the incoming signal. This approach is common with pulsed signals, where the matched filter is the time reverse of the transmitted signal.
'FFT'Algorithm performs range processing by applying an FFT to the input signal. This approach is commonly used with FMCW and linear FM pulsed signals.

Default: 'Matched filter'

PropagationSpeed

Signal propagation speed

Specify the propagation speed of the signal, in meters per second, as a positive scalar. You can specify this property as single or double precision.

Default: Speed of light

SampleRate

Sample rate

Specify the sample rate, in hertz, as a positive scalar. This property can be specified as single or double precision. The default value corresponds to 1 MHz.

Default: 1e6

SweepSlope

FM sweep slope

Specify the slope of the linear FM sweeping, in hertz per second, as a scalar. The x data you provide to step or plotResponse must correspond to sweeps having this slope. This property can be specified as single or double precision.

To enable this property, set the RangeMethod property to 'FFT'.

Default: 1e9

DechirpInput

Option to dechirp input signal

Set this property to true to have the range-Doppler response object dechirp the input signal. Set this property to false to indicate that the input signal is already dechirped and no dechirp operation is necessary.

To enable this property, set the RangeMethod property to 'FFT'.

Default: false

DecimationFactor

Decimation factor for dechirped signal

Specify the decimation factor for the dechirped signal as a positive integer. When processing FMCW signals, you can often decimate the dechirped signal to reduce the requirements on the analog-to-digital converter.

To enable this property, set the RangeMethod property to 'FFT' and the DechirpInput property to true. This property can be specified as single or double precision. The default value indicates no decimation.

Default: 1

RangeFFTLengthSource

Source of FFT length used in range processing

Specify how the object determines the FFT length used in range processing. Values of this property are:

'Auto'The FFT length equals the number of rows of the input signal.
'Property'The RangeFFTLength property of this object specifies the FFT length.

To enable this property, set the RangeMethod property to 'FFT'.

Default: 'Auto'

RangeFFTLength

FFT length in range processing

Specify the FFT length in the range domain as a positive integer. This property can be specified as single or double precision.

To enable this property, set the RangeMethod property to 'FFT' and the RangeFFTLengthSource property to 'Property'.

Default: 1024

RangeWindow

Window for range weighting

Specify the window used for range processing using one of 'None', 'Hamming', 'Chebyshev', 'Hann', 'Kaiser', 'Taylor', or 'Custom'. If you set this property to 'Taylor', the generated Taylor window has four nearly constant sidelobes adjacent to the mainlobe.

To enable this property, set the RangeMethod property to 'FFT'.

Default: 'None'

RangeSidelobeAttenuation

Sidelobe attenuation level for range processing

Specify the sidelobe attenuation level of a Kaiser, Chebyshev, or Taylor window in range processing as a positive scalar, in decibels. This property can be specified as single or double precision.

To enable this property, set the RangeMethod property to 'FFT' and the RangeWindow property to 'Kaiser', 'Chebyshev', or 'Taylor'.

Default: 30

CustomRangeWindow

User-defined window for range processing

Specify the user-defined window for range processing using a function handle or a cell array.

To enable this property, set the RangeMethod property to 'FFT' and the RangeWindow property to 'Custom'.

If CustomRangeWindow is a function handle, the specified function takes the window length as the input and generates appropriate window coefficients.

If CustomRangeWindow is a cell array, then the first cell must be a function handle. The specified function takes the window length as the first input argument, with other additional input arguments, if necessary. The function then generates appropriate window coefficients. The remaining entries in the cell array are the additional input arguments to the function, if any.

Default: @hamming

ReferenceRangeCentered

Set reference range at center of range grid, specified as true or false. Setting this property to true enables you to set the reference range at the center of the range grid. Setting this property to false sets the reference range to the beginning of the range grid.

Dependencies

To enable this property, set the RangeMethod to 'FFT'.

Default: true

ReferenceRange

Reference range of the range grid, specified as a nonnegative scalar.

  • If you set the RangeMethod property to 'Matched filter', the reference range is set to the start of the range grid.

  • If you set the RangeMethod property to 'FFT', the reference range is determined by the ReferenceRangeCentered property.

    • When you set the ReferenceRangeCentered property to true, the reference range is set to the center of the range grid.

    • When you set the ReferenceRangeCentered property to false, the reference range is set to the start of the range grid.

    This property can be specified as single or double precision. Units are in meters.

This property is tunable.

Example: 1000.0

Default: 0.0

PRFSource

Source of pulse repetition frequency

Source of pulse repetition frequency, specified as

  • 'Auto' — You assume that the pulse repetition frequency (PRF) is the inverse of the duration of the input signal to the step method. Then the PRF equals the sample rate of the signal divided by the number of rows in the input signal.

  • 'Property'— specify the pulse repetition frequency using the PRF property.

  • 'Input port'— specify the PRF using an input argument of the step method.

Use the 'Property' or 'Input port' option when the pulse repetition frequency cannot be determined by the signal duration, as is the case with range-gated data.

Default: 'Auto'

PRF

Pulse repetition frequency of input signal

Pulse repetition frequency of the input signal, specified as a positive scalar. PRF must be less than or equal to the sample rate divided by the number of rows of the input signal to the step method. When the signal length is variable, use the maximum possible number of rows of the input signal instead. This property can be specified as single or double precision.

To enable this property, set the PRFSource property to 'Property'.

Default: 10e3

DopplerFFTLengthSource

Source of FFT length in Doppler processing

Specify how the object determines the FFT length in Doppler processing. Values of this property are:

'Auto'The FFT length is equal to the number of rows of the input signal.
'Property'The DopplerFFTLength property of this object specifies the FFT length.

To enable this property, set the RangeMethod property to 'FFT'.

Default: 'Auto'

DopplerFFTLength

FFT length for Doppler processing

FFT length for Doppler processing, specified as a positive integer. This property can be specified as single or double precision.

To enable this property, set the RangeMethod property to 'FFT' and the DopplerFFTLengthSource property to 'Property'.

Default: 1024

DopplerWindow

Window for Doppler weighting

Specify the window used for Doppler processing using one of 'None', 'Hamming', 'Chebyshev', 'Hann', 'Kaiser', 'Taylor', or 'Custom'. If you set this property to 'Taylor', the generated Taylor window has four nearly constant sidelobes adjacent to the mainlobe.

To enable this property, set the RangeMethod property to 'FFT'.

Default: 'None'

DopplerSidelobeAttenuation

Sidelobe attenuation level for Doppler processing

Specify the sidelobe attenuation level of a Kaiser, Chebyshev, or Taylor window in Doppler processing as a positive scalar, in decibels. This property can be specified as single or double precision.

To enable this property, set the RangeMethod property to 'FFT' and the DopplerWindow property to 'Kaiser', 'Chebyshev', or 'Taylor'.

Default: 30

CustomDopplerWindow

User-defined window for Doppler processing

Specify the user-defined window for Doppler processing using a function handle or a cell array..

If CustomDopplerWindow is a function handle, the specified function takes the window length as the input and generates appropriate window coefficients.

If CustomDopplerWindow is a cell array, then the first cell must be a function handle. The specified function takes the window length as the first input argument, with other additional input arguments, if necessary. The function then generates appropriate window coefficients. The remaining entries in the cell array are the additional input arguments to the function, if any.

To enable this property, set the RangeMethod property to 'FFT' and the DopplerWindow property to 'Custom'

Default: @hamming

DopplerOutput

Doppler domain output

Specify the Doppler domain output as 'Frequency' or 'Speed'. The Doppler domain output is the DOP_GRID argument of step.

'Frequency'DOP_GRID is the Doppler shift, in hertz.
'Speed'DOP_GRID is the radial speed corresponding to the Doppler shift, in meters per second.

Default: 'Frequency'

OperatingFrequency

Signal carrier frequency

Specify the carrier frequency, in hertz, as a scalar. The default value of this property corresponds to 300 MHz. This property can be specified as single or double precision.

To enable this property, set the DopplerOutput property to 'Speed'

Default: 3e8

MaximumNumInputSamplesSource

Source of maximum number of samples

The source of the maximum number of samples of the input signal, specified as 'Auto' or 'Property'. When you set this property to 'Auto', the object automatically allocates enough memory to buffer the first input signal. When you set this property to 'Property', specify the maximum number of samples in the input signal using the MaximumNumInputSamples property. Any input signal longer than that value is truncated.

Default: 'Auto'

MaximumNumInputSamples

Maximum number of input signal samples

Maximum number of samples in the input signal, specified as a positive integer. This property limits the size of the input signal. Any input signal longer than this value is truncated. The input signal is the first argument to the step method. The number of samples is the number of rows in the input. This property can be specified as single or double precision.

To enable this property, set the RangeMethod property to 'Matched filter' and set the MaximumNumInputSamplesSource property to 'Property'.

Default: 100

Methods

plotResponsePlot range-Doppler response
stepCalculate range-Doppler response
Common to All System Objects
release

Allow System object property value changes

Examples

collapse all

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.

load RangeDopplerExampleData;

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');

Compute the range-Doppler response of an FMCW signal using an FFT.

Load data for an FMCW signal that has not been dechirped. The signal contains the return from a target about 2200 m away. The signal has a normalized Doppler frequency of approximately -0.36 relative to the radar.

load RangeDopplerExampleData;

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);

Plot the range-Doppler response.

plotResponse(hrdresp,...
   RangeDopplerEx_Dechirp_X,RangeDopplerEx_Dechirp_Xref,...
   'Unit','db','NormalizeDoppler',true)

Estimate the Doppler and range responses for three targets. 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. Specify the pulse repetition frequency.

Load data for a pulsed radar signal.

load RangeDopplerExampleData;

Create a range-Doppler response object. Set the PRF to 25 kHz.

response = phased.RangeDopplerResponse('DopplerFFTLengthSource','Property', ...
   'DopplerFFTLength',RangeDopplerEx_MF_NFFTDOP,'SampleRate', ...
   RangeDopplerEx_MF_Fs,'DopplerOutput','Speed','OperatingFrequency', ...
   RangeDopplerEx_MF_Fc,'PRFSource','Property','PRF',25.0e3);

Calculate the range-Doppler response.

[resp,rng_grid,dop_grid] = response(RangeDopplerEx_MF_X, ...
    RangeDopplerEx_MF_Coeff);

Plot the range-Doppler response.

plotResponse(response,RangeDopplerEx_MF_X,RangeDopplerEx_MF_Coeff,'Unit','db')

Algorithms

expand all

Extended Capabilities

Version History

Introduced in R2012b