Main Content

phased.RangeAngleScope

View range-angle response

Description

The phased.RangeAngleScope System object™ creates a scope for displaying a range-angle response map. The map is a 2-D representation of response intensity as a function of range and angle of arrival. 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 I/Q samples of pulses or sweeps from multiple sensors. 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-angle response itself. The scope displays the range-angle response map. You can obtain range-angle response data from the RangeAngleResponse 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-angle response map using a scope,

  1. Create the phased.RangeAngleScope 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.RangeAngleScope creates a range-angle scope System object for displaying the range-angle response.

example

scope = phased.phased.RangeAngleScope(Name,Value) creates a range-angle 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.RangeAngleScope('IQInputData',true,'RangeMethod', ...
        'FFT','SampleRate',1e6)
creates a scope object that uses FFT-based range processing to process I/Q data with a sample rate of 1 MHz.

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-Angle 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 angle 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

Angle-axis label, specified as a character vector.

Example: 'Angle Span (degrees)'

Tunable: Yes

Dependencies

To enable this property, set the IQDataInput to false.

Data Types: char

Sensor array, specified as a Phased Array System Toolbox array System object. See phased.ULA for the default values of a uniform linear array.

Example: phased.URA

Dependencies

To enable this property, set the IQDataInput to true.

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

Operating frequency, specified as a positive scalar. Units are in Hz.

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

Elevation angle at which to calculate the response, specified as a scalar. The elevation angle must lie in the interval from –90° to 90°, inclusive. Units are in degrees.

Example: 45.0

Dependencies

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

Data Types: double

Azimuth angle span at which to calculate response, specified as a real-valued 1-by-2 row vector. The object calculates the range-angle response within the angle range, [min_angle max_angle]. Angles must lie in the interval from –90° to 90°, inclusive. Units are in degrees.

Example: [-45 45]

Dependencies

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

Data Types: double

Number of samples in the azimuth angle span at which to calculate the range-angle response, specified as a positive integer greater than two.

Example: 256

Dependencies

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

Data Types: double

Usage

Description

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

scope(X) computes and displays the range-angle response map for the dechirped signal X. 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.

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 data samples for each PRI pulse or FMCW sweep and for each array or subarray element. K denotes the number of fast-time (range) samples. L is the number of elements. If SensorArray contains subarrays, L is the number of subarrays. The scope computes and displays the range-angle 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-angle domain, such as the data produced, for example, by RangeAngleResponse. Each row of the response map corresponds to an element of the Range vector. K is the number of range samples. Each column of the response map corresponds to an element of the Ang vector. L is the number of angles. The scope serves only as a display of the range-angle response.

Range grid values of range-angle 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

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

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-angle response from a pulsed radar transmitting a rectangular waveform using a matched filter. 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. The signals arrive at an 8-element uniform linear array.

Load the data to obtain signals and parameters.

load('RangeAngleResponseExampleData','rectdata');
fs = rectdata.fs;
c = rectdata.propspeed;
fc = rectdata.fc;
rxdata = rectdata.rxdata;
mfcoeffs = rectdata.mfcoeffs;
noisepower = rectdata.noisepower;
array = rectdata.antennaarray;

Create a range-angle scope for processing.

scope = phased.RangeAngleScope( ...
    'IQDataInput',true,'RangeMethod','Matched filter', ...
    'Name','Range-Angle Scope','ResponseUnits','magnitude', ...
    'Position',[560 375 560 420],'RangeUnits','m', ...
    'SensorArray',array,'OperatingFrequency',fc, ...
    'SampleRate',fs,'PropagationSpeed',c);

Call the scope to display the response map.

scope(rxdata,mfcoeffs)

More About

expand all

Introduced in R2019a