주요 콘텐츠

phased.SumDifferenceMonopulseTracker2D

Sum and difference monopulse for URA

Description

The SumDifferenceMonopulseTracker2D System object™ implements a sum and difference monopulse algorithm for a uniform rectangular array (URA).

To compute the response for each element in the array for specified directions:

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

tracker = phased.SumDifferenceMonopulseTracker2D creates a tracker System object, tracker. The object uses sum and difference monopulse algorithms on a uniform rectangular array (URA).

tracker = phased.SumDifferenceMonopulseTracker2D(Name=Value) creates a URA monopulse tracker object, tracker, 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).

example

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 a phased.URA System object with property ArrayNormal = "x".

Example: phased.URA(ArrayNormal="x")

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

Example: 3e8

Data Types: double

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

Example: 1e9

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

Usage

Description

ESTANG = tracker(X,STANG) estimates the incoming direction ESTANG of the input signal, X, based on an initial guess of the direction.

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 signal, specified as a real-valued length-L row vector, where the number of columns corresponds to number of channels.

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.

Data Types: single | double

Initial guess of the direction, specified as a 2-by-1 vector in the form [AzimuthAngle; ElevationAngle] in degrees. A typical initial guess is the current steering angle. The Azimuth angles must lie between –180° and 180°. The Elevation angles must lie between –90° and 90°. Angles are measured in the local coordinate system of the array. For details regarding the local coordinate system of the URA, type phased.URA.coordinateSystemInfo.

Example: [45 60]

Data Types: single | double

Output Arguments

expand all

Estimate of incoming direction, returned as a 2-by-1 vector in the form [AzimuthAngle; ElevationAngle] in degrees. The Azimuth angles are between –180° and 180°. The Elevation angles are between –90° and 90°. Angles are measured in the local coordinate system of the array.

Data Types: single | double

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

Using a URA, determine the direction of a target at approximately 60° azimuth and 20° elevation.

array = phased.URA('Size',4);
steeringvec = phased.SteeringVector('SensorArray',array);
tracker = phased.SumDifferenceMonopulseTracker2D('SensorArray',array);
x = steeringvec(tracker.OperatingFrequency,[60.1; 19.5]).';
est_dir = tracker(x,[60; 20])
est_dir = 2×1

   60.1000
   19.5000

Algorithms

expand all

References

[1] Seliktar, Y. Space-Time Adaptive Monopulse Processing. Ph.D. Thesis. Georgia Institute of Technology, Atlanta, 1998.

[2] Rhodes, D. Introduction to Monopulse. Dedham, MA: Artech House, 1980.

Extended Capabilities

expand all

Version History

Introduced in R2011a