Contenuto principale

phased.STAPSMIBeamformer

Sample matrix inversion (SMI) beamformer

Description

The phased.STAPSMIBeamformer System object™ implements a sample matrix inversion space-time adaptive beamformer. The beamformer works on the space-time covariance matrix.

To compute the space-time beamformed signal:

  1. Create the phased.STAPSMIBeamformer 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

array = phased.STAPSMIBeamformer creates a sample matrix inversion (SMI) beamformer System object, array. The object performs the SMI space-time adaptive processing (STAP) on the input data.

array = phased.STAPSMIBeamformer(Name=Value) creates an SMI object, array, with each specified property Name set to the specified Value. You can specify additional name-value pair arguments in any order as (Name1=Value1,...,NameN=ValueN).

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.

Sensor array, specified as an array System object belonging to Phased Array System Toolbox. The sensor array can contain subarrays.

Example: phased.URA

Signal propagation speed, specified as a real-valued positive scalar. Units are in meters per second. The default propagation speed is the value returned by physconst("LightSpeed").

Example: 3e8

Data Types: single | double

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

Example: 1e9

Data Types: single | double

Source of the PRF values for the STAP processor, specified as "Property" or "Input port". When you set this property to "Property", the PRF is determined by the value of the PRF property. When you set this property to "Input port", the PRF is determined by an input argument to the step method at execution time.

Example: "Input port"

Data Types: single | double

Pulse repetition frequency (PRF) of the received signal, specified as a positive scalar. Units are in Hz.

Dependencies

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

Data Types: single | double

Specify whether the targeting direction for the STAP processor comes from the Direction property of this object or from an input argument in step. Values of this property are:

"Property"The Direction property of this object specifies the targeting direction.
"Input port"An input argument in each invocation of step specifies the targeting direction.

Example: "Property"

Data Types: single | double

Targeting direction of the SMI processor, specified as a column vector of length 2. The direction is specified in the format of [AzimuthAngle; ElevationAngle] (in degrees). Azimuth angle should be between –180° and 180°. Elevation angle should be between –90° and 90°. This property applies when you set the DirectionSource property to "Property". You can specify this property as single or double precision.

Example: [0; 0]

Data Types: single | double

The number of bits used to quantize the phase shift component of beamformer or steering vector weights, specified as a non-negative integer. A value of zero indicates that no quantization is performed.

Example: 5

Data Types: single | double

Specify whether the targeting Doppler for the STAP processor comes from the Doppler property of this object or from an input argument in step. Values of this property are:

"Property"The Doppler property of this object specifies the Doppler.
"Input port"An input argument in each invocation of step specifies the Doppler.

Example: "Property"

Data Types: single | double

The targeting Doppler of the STAP processor, specified as a scalar. You can specify this property as single or double precision.

Example: 0

Dependencies

This property applies when you set the DopplerSource property to "Property".

Data Types: single | double

The number of guard cells used in the training, specified as an even integer. This property specifies the total number of cells on both sides of the cell under test. You can specify this property as single or double precision.

Example: 2

Data Types: single | double

The number of training cells used in the training, specified as an even integer. Whenever possible, the training cells are equally divided before and after the cell under test. You can specify this property as single or double precision.

Example: 2

Data Types: single | double

To obtain the weights used in the STAP processor, set this property to true and use the corresponding output argument when invoking step. If you do not want to obtain the weights, set this property to false.

Example: false

Data Types: logical

Usage

Description

Y = array(X,CUTIDX) applies SMI processing to the input data, X. X must be a 3-dimensional M-by-N-by-P numeric array whose dimensions are (range, channels, pulses). The processing weights are calculated according to the range cell specified by CUTIDX. The targeting direction and the targeting Doppler are specified by Direction and Doppler properties, respectively. Y is a column vector of length M. This syntax is available when the DirectionSource property is "Property" and the DopplerSource property is "Property".

The size of the first dimension of the input matrix can vary to simulate a changing signal length. A size change can occur, for example, in the case of a pulse waveform with variable pulse repetition frequency.

Y = array(X,CUTIDX,PRF) uses PRF as the pulse repetition frequency. This syntax is available when the PRFSource property is "Input port".

Y = array(X,CUTIDX,ANG) uses ANG as the targeting direction. This syntax is available when the DirectionSource property is "Input port". ANG must be a 2-by-1 vector in the form of [AzimuthAngle; ElevationAngle] (in degrees). The azimuth angle must be between –180° and 180°. The elevation angle must be between –90° and 90°.

Y = array(X,CUTIDX,DOP) uses DOP as the targeting Doppler frequency (in Hz). This syntax is available when the DopplerSource property is "Input port". DOP must be a scalar.

You can combine optional input arguments when their enabling properties are set: Y = array(X,CUTIDX,ANG,DOP)

[Y,W] = array(___) returns the additional output, W, as the processing weights. This syntax is available when the WeightsOutputPort property is true. W is a column vector of length N*P.

example

Note

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 call the release method to unlock the object.

Input Arguments

expand all

Input data, specified as a 3-dimensional M-by-N-by-P numeric array whose dimensions are (range, channels, pulses).

Range cell that specifies the processing weights.

Pulse repetition frequency (PRF) of the received signal, specified as a positive scalar. Units are in Hz.

Dependencies

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

Targeting direction, specified as a 2-by-1 vector in the form of [AzimuthAngle; ElevationAngle] (in degrees). The azimuth angle must be between –180° and 180°. The elevation angle must be between –90° and 90°.

The targeting Doppler frequency, specified in Hz.

Output Arguments

expand all

A column vector, returned as a length of M

Additional output, specified as a column vector of length N*P

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

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

Process a data cube using an SMI beamformer. The weights are calculated for the 71st cell of a collected data cube pointing in the azimuth and elevation direction (45°,-35°) and with a Doppler of 12.980 kHz.

Load the cube data and create the SMI beamformer.

load STAPExampleData;
beamformer = phased.STAPSMIBeamformer(SensorArray=STAPEx_HArray, ...
    PRF=STAPEx_PRF,PropagationSpeed=STAPEx_PropagationSpeed, ...
    OperatingFrequency=STAPEx_OperatingFrequency, ...
    NumTrainingCells=100,WeightsOutputPort=true, ...
    DirectionSource="Input port",DopplerSource="Input port");
[y,w] = beamformer(STAPEx_ReceivePulse,71,[45;-35],12.980e3);

Plot the angle-doppler response.

response = phased.AngleDopplerResponse( ...
    SensorArray=beamformer.SensorArray, ...
    OperatingFrequency=beamformer.OperatingFrequency, ...
    PRF=beamformer.PRF,PropagationSpeed=beamformer.PropagationSpeed);
plotResponse(response,w)

Figure contains an axes object. The axes object with title Angle-Doppler Response Pattern, xlabel Angle (degrees), ylabel Doppler Frequency (Hz) contains an object of type image.

Algorithms

expand all

References

[1] Guerci, J. R. Space-Time Adaptive Processing for Radar. Boston: Artech House, 2003.

[2] Ward, J. “Space-Time Adaptive Processing for Airborne Radar Data Systems,” Technical Report 1015, MIT Lincoln Laboratory, December, 1994.

Extended Capabilities

expand all

Version History

Introduced in R2011a