This is machine translation

Translated by Microsoft
Mouseover text to see original. Click the button below to return to the English version of the page.

Note: This page has been translated by MathWorks. Please click here
To view all translated materials including this page, select Japan from the country navigator on the bottom of this page.

phased.SumDifferenceMonopulseTracker System object

Sum and difference monopulse for ULA


The SumDifferenceMonopulseTracker object implements a sum and difference monopulse algorithm on a uniform linear array.

To estimate the direction of arrival (DOA):

  1. Define and set up your sum and difference monopulse DOA estimator. See Construction.

  2. Call step to estimate the DOA according to the properties of phased.SumDifferenceMonopulseTracker. The behavior of step is specific to each object in the toolbox.


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.


H = phased.SumDifferenceMonopulseTracker creates a tracker System object, H. The object uses sum and difference monopulse algorithms on a uniform linear array (ULA).

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



Handle to sensor array

Specify the sensor array as a handle. The sensor array must be a phased.ULA object.

Default: phased.ULA with default property values


Signal propagation speed

Specify the propagation speed of the signal, in meters per second, as a positive scalar.

Default: Speed of light


System operating frequency

Specify the operating frequency of the system in hertz as a positive scalar. The default value corresponds to 300 MHz.

Default: 3e8


Number of phase shifter quantization bits

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

Default: 0


stepPerform monopulse tracking using ULA
Common to All System Objects

Create System object with same property values


Expected number of inputs to a System object


Expected number of outputs of a System object


Check locked states of a System object (logical)


Allow System object property value changes


expand all

Determine the direction of a target at a 60.1° broadside angle to a ULA starting with an approximate direction of 60°

array = phased.ULA('NumElements',4);
steervec = phased.SteeringVector('SensorArray',array);
tracker = phased.SumDifferenceMonopulseTracker('SensorArray',array);
x = steervec(tracker.OperatingFrequency,60.1).';
est_dir = tracker(x,60)
est_dir = 60.1000


The sum-and-difference monopulse algorithm is used to the estimate the arrival direction of a narrowband signal impinging upon a uniform linear array (ULA). First, compute the conventional response of an array steered to an arrival direction φ0. For a ULA, the arrival direction is specified by the broadside angle. To specify that the maximum response axis (MRA) point towards the φ0 direction, set the weights to be


where d is the element spacing and k = 2π/λ is the wavenumber. An incoming plane wave, coming from any arbitrary direction φ, is represented by


The conventional response of this array to any incoming plane wave is given by wsHv(φ) and is shown in the polar plot below as the Sum Pattern. The array is designed to steer towards φ0 = 30°.

The second pattern, called the Difference Pattern, is obtained by using phased-reversed weights. The weights are determined by phase-reversing the latter half of the conventional steering vector. For an array with an even number of elements, the phase-reversed weights are


(For an array with an odd number of elements, the middle weight is set to zero). The multiplicative factor –i is used for convenience. The response of the difference array to the incoming vector is


and is show in the polar plot below

The monopulse response curve is obtained by dividing the difference pattern by the sum pattern and taking the real part.


To use the monopulse response curve to obtain the arrival angle of a narrowband signal, x, compute


and invert the response curve, φ = R-1(z), to obtain φ.

The response curve is not single valued and can be inverted only when arrival angles lie within the mainlobe. The figure below shows the center portion of the monopulse response curve in the mainlobe for a 4-element ULA array.

There are two desirable properties of the monopulse response curve. The first is that it have a steep slope. A steep slope insures robustness against noise. The second property is that the mainlobe be as wide as possible. A steep slope is ensure by a larger array but leads to a smaller mainlobe. You will need to trade off one property with the other.

For further details, see [1].


[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

Introduced in R2012a

Was this topic helpful?