Main Content

phased.RangeDopplerScope

Range-Doppler scope

Description

The phased.RangeDopplerScope System object™ creates a scope for viewing a range- response map. The map is a 2-D image of response intensity as a function of range and (or speed). You can input two types of data - in-phase and quadrature (I/Q) data and response data.

  • I/Q data – The data consists of fast-time and slow-time I/Q samples of pulses or sweeps. The scope computes and displays the response map. To use I/Q data, set the IQDataInput property to true. In this mode, you can set the properties shown in Properties Applicable to I/Q Data.

  • Response data – The data consists of the range- response itself. The scope displays the range- response map. For example, you can obtain range- response from phased.RangeDopplerResponse object. To use response data, set the IQDataInput property to false. In this mode, you can set the properties shown in Properties Applicable to Response Data.

To display a range-Doppler response map using the scope,

  1. Create the phased.RangeDopplerScope object and set its properties.

  2. Call the object with arguments, as if it were a function.

To learn more about how System objects work, see What Are System Objects?.

Creation

Description

scope = phased.RangeDopplerScope creates a range-Doppler scope System object, scope. This object displays the range-Doppler response of the input data.

example

scope = phased.phased.RangeDopplerScope(Name,Value) creates a range-Doppler scope object, scope, with each specified property set to the specified value. You can specify additional name-value pair arguments in any order as (Name1,Value1,...,NameN,ValueN). Enclose property names in quotes. For example,

scope = phased.RangeDopplerScope('IQInputData',true,'RangeMethod', ...
        'FFT','SampleRate',1e6,'DopplerOutput','Speed', ...
        'OperatingFrequency',10e6,'SpeedUnits','km/h');
creates a scope object that uses FFT-based range processing for I/Q data having a sample rate of 1 MHz. The Doppler output units are speed in kilometers per hour.

Properties

expand all

Unless otherwise indicated, properties are nontunable, which means you cannot change their values after calling the object. Objects lock when you call them, and the release function unlocks them.

If a property is tunable, you can change its value at any time.

For more information on changing property values, see System Design in MATLAB Using System Objects.

Display caption, specified as a character vector. The caption appears in the title bar of the window.

Example: 'Aircraft Range-Doppler Response'

Tunable: Yes

Data Types: char

Location and size of the intensity scope window, specified as a 1-by-4 vector having the form [left bottom width height].

  • left and bottom specify the location of the bottom-left corner of the window.

  • width and height specify the width and height of the window.

Units are in pixels.

The default value of this property depends on the resolution of your display. By default, the window is positioned in the center of the screen, with a width and height of 800 and 450 pixels, respectively.

Example: [100 100 500 400]

Tunable: Yes

Data Types: double

Type of input data, specified as true or false. When true, the object assumes that the input consists of I/Q sample data and further processing is required in the range and Doppler domains. When false, the object assumes that the data is response data that has already been processed.

Data Types: logical

Response units, specified as 'db', 'magnitude', or 'power'.

Data Types: char

Range-axis label, specified as a character vector.

Example: 'Range (km)'

Tunable: Yes

Dependencies

To enable this property, set the IQDataInput to false.

Data Types: char

Doppler-axis label, specified as a character vector.

Example: 'Doppler Frequency (kHz)'

Tunable: Yes

Dependencies

To enable this property, set the IQDataInput to false.

Data Types: char

Range-processing method, specified as 'Matched filter' or 'FFT'.

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

Dependencies

To enable this property, set the IQDataInput property to true.

Range units, specified as:

  • 'm' – meters

  • 'km' – kilometers

  • 'mi' – miles

  • 'nmi' – nautical miles

Example: 'mi'

Dependencies

To enable this property, set the IQDataInput property to true.

Data Types: char

Signal propagation speed, specified as a positive scalar. The default value of this property is the speed of light. See physconst. Units are in meters/second.

Example: 3e8

Dependencies

To enable this property, set the IQDataInput property to true.

Data Types: double

Sample rate, specified as a positive scalar. Units are in Hz.

Example: 10e3

Dependencies

To enable this property, set the IQDataInput property to true.

Data Types: double

Slope of the linear FM sweep, specified as a scalar. Units are in Hz/sec.

Dependencies

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

Data Types: double

Set this property to true to dechirp the input signal before performing range processing. false indicates that the input signal is already dechirped and no dechirp operation is necessary.

Dependencies

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

Data Types: logical

FFT length used for range processing, specified as a positive integer.

Example: 128

Dependencies

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

Data Types: double

Set this property to true to set the reference range to the center of the range span. Set this property to false to set the reference range to the beginning of the range span.

Dependencies

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

Data Types: logical

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

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

  • If you set the RangeMethod property to 'FFT', the position of the reference range depends on the ReferenceRangeCentered property.

    • If you set the ReferenceRangeCentered property to true, the reference range marks the center of the range span.

    • If you set the ReferenceRangeCentered property to false, the reference range marks the start of the range span.

    Units are in meters.

Example: 1000.0

Tunable: Yes

Dependencies

To enable this property, set the IQDataInput property to true.

Data Types: double

Source of the pulse repetition frequency (PRF) of the input signal, specified as 'Auto' or 'Property'. When you set this property to 'Auto', the PRF is a function of the number of rows in the input signal and the value of the SampleRate property. When you set this property to 'Property', you can specify the PRF using the PRF property.

Dependencies

To enable this property, set the IQDataInput property to true.

Data Types: char

Pulse repetition frequency of input signal, specified as a positive scalar. Units are in Hz.

Example: 1.4e3

Dependencies

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

Data Types: double

FFT length used in Doppler processing, specified as a positive integer.

Example: 67

Dependencies

To enable this property, set the IQDataInput property to true.

Data Types: double

Doppler output, specified as 'Frequency' or 'Speed'. If you set this property to 'Frequency', the Doppler output, Dop, at object execution time is the Doppler shift. If you set this property to 'Speed', the Doppler output is the equivalent radial speed.

Dependencies

To enable this property, set the IQDataInput property to true.

Data Types: char

Operating frequency, specified as a positive scalar.

Dependencies

To enable this property, set the IQDataInput property to true and the DopplerOutput to 'Speed'.

Data Types: double

Set this property to true to plot the range-Doppler response with normalized Doppler frequency. Set this property to false to plot the range-Doppler response without normalizing the Doppler frequency.

Dependencies

To enable this property, set the IQDataInput property to true and the DopplerOutput to 'Frequency'.

Data Types: logical

Doppler speed units:

  • 'm/s' – meters per second

  • 'km/h' – kilometers per hour

  • 'mph' – miles per hour

  • 'kt' – knots or nautical miles per hour

Example: 'mph'

Dependencies

To enable this property, set the IQDataInput property to true and the DopplerOutput property to 'Speed'.

Data Types: char

Doppler frequency units, specified as 'Hz', 'kHz', or 'MHz'.

Example: 'MHz'

Dependencies

To enable this property, set the IQDataInput property to true, the DopplerOutput to 'Frequency', and the NormalizedDoppler property to false.

Data Types: char

Usage

Description

scope(X,Range,Dop) displays a range-Doppler response map, X, at the ranges, Range, and Doppler shifts, Dop. This syntax applies when you set the IQDataInput to false.

scope(X) computes and displays the range-Doppler response map. This syntax applies when you set the IQDataInput property to true, the RangeMethod property to 'FFT', and the DechirpInput property to false. This syntax is most commonly used with FMCW signals. All sweeps in X are assumed to be contiguous. If the sweeps are not contiguous, set the PRF by setting the PRFSource property to 'Property' and the PRF of the input data to the PRF.

scope(X,XREF) also specifies a reference signal to use for dechirping the input signal, X. This syntax applies when you set the IQDataInput property to true, the RangeMethod property to 'FFT', and the DechirpInput property to true. This syntax is most commonly used with FMCW signals. XREF is generally the transmitted signal.

example

scope(X,COEFF) also specifies matched filter coefficients, COEFF. This syntax applies when you set the IQDataInput property to true and the RangeMethod property to 'Matched Filter'. This syntax is most commonly used with pulsed signals.

Input Arguments

expand all

Input data, specified as a complex-valued K-by-L matrix. The interpretation of the data depends on the value of the IQDataInput property.

  • When IQDataInput is true, the input consists of received fast-time (range) samples for each PRI pulse or FMCW sweep. K denotes the number of fast-time samples. L is the number of Doppler samples. The number of Doppler samples is the number of pulses in the case of pulsed signals or the number of dechirped frequency sweeps for FMCW signals. The scope computes and displays the range-Doppler response.

    • When RangeMethod is set to 'FFT' and DechirpInput is false, X has previously been dechirped.

    • When RangeMethod is set to 'FFT' and DechirpInput is true, X has not been previously dechirped. Use the syntax that includes XREF as input data.

    • When RangeMethod is set to 'MatchedFilter', X has not been match filtered. Use the syntax that includes COEFF as input data.

  • When IQDataInput is false, the input already consists of response data in the range-Doppler domain such as that produced by phased.RangeDopplerResponse. Each row of the response map corresponds to an element of the Range vector. Each column corresponds to an element of the Dop vector. The scope serves only as a display of the range-Doppler response.

Range grid values of response map, specified as a real-valued K-by-1 column vector. Range denotes the range values at which the response has been computed. Elements of Range correspond to the rows of X.

Dependencies

To enable this argument, set the IQInputData property to false.

Data Types: double

Doppler grid values of response map, specified as a real-valued L-by-1 column vector. Dop denotes the Doppler values at which the response has been computed. Elements of Dop correspond to the columns of X. Dop can contain either Doppler or speed values at which the range-Doppler response is evaluated.

Dependencies

To enable this argument, set the IQInputData property to false.

Data Types: double

Reference signal used to dechirp X. XREF must be a column vector with the same number of rows as X.

Dependencies

To enable this argument, set the IQDataInput property to true, the RangeMethod property to 'FFT' and the DechirpInput property to false

Data Types: double
Complex Number Support: Yes

Matched filter coefficients, specified as a complex-valued column vector.

Dependencies

To enable this argument, set the IQDataInput property to true and the RangeMethod property to 'Matched Filter'.

Data Types: double
Complex Number Support: Yes

Object Functions

To use an object function, specify the System object as the first input argument. For example, to release system resources of a System object named obj, use this syntax:

release(obj)

expand all

showTurn on visibility of scopes
hideTurn off visibility of scope
isVisibleVisibility of scopes
stepRun System object algorithm
releaseRelease resources and allow changes to System object property values and input characteristics
resetReset internal states of System object

Examples

collapse all

Calculate and visualize the range-Doppler response from a pulsed radar transmitting a rectangular waveform. Compute the response using matched filtering. The signal contains returns from three targets. One target is approximately 2000 m away and is stationary relative to the radar. The second target is approximately 3500 m away and is also stationary relative to the radar. The third is approximately 2000 m away and is moving away from the radar at approximately 100 m/s.

Load the IQ data and obtain the signals and parameters.

load('RangeDopplerResponseExampleData','rectdata');
fs = rectdata.fs;
c = rectdata.propspeed;
fc = rectdata.fc;
rxdata = rectdata.rxdata;
mfcoeffs = rectdata.mfcoeffs;

Create the range-Doppler scope for matched filter processing and visualization. Set the Doppler FFT size to 1024. The display shows the three targets.

scope = phased.RangeDopplerScope( ...
    'IQDataInput',true,'RangeMethod','Matched filter', ...
    'Name','Range-Doppler Scope', ...
    'Position',[560 375 560 420],'ResponseUnits','db', ...
    'RangeUnits','m','DopplerFFTLength',1024, ...
    'DopplerOutput','Speed','OperatingFrequency',fc, ...
    'SampleRate',fs,'PropagationSpeed',c);
scope(rxdata,mfcoeffs);

More About

expand all

Introduced in R2019a