System object: phased.SumDifferenceMonopulseTracker
Package: phased
Perform monopulse tracking using ULA
ESTANG = step(H,X,STANG)
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.
estimates
the incoming direction ESTANG
= step(H
,X
,STANG
)ESTANG
of the input signal, X
,
based on an initial guess of the direction.
The size of the first dimension of this input matrix can vary to simulate a changing signal length, such as a pulse waveform with variable pulse repetition frequency.
The object performs an initialization the first time the step
method
is executed. This initialization locks nontunable
properties (MATLAB) 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.

Tracker object of type 

Input signal, specified as a row vector whose number of columns corresponds to number of channels. 

Initial guess of the direction, specified as a scalar that represents
the broadside angle in degrees. A typical initial guess is the current
steering angle. The value of 

Estimate of incoming direction, returned as a scalar that represents the broadside angle in degrees. The value is between –90 and 90. The angle is defined in the array's local coordinate system. 
The sumanddifference 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
$${w}_{s}=\left(1,{e}^{ikd\mathrm{sin}{\varphi}_{0}},{e}^{ik2d\mathrm{sin}{\varphi}_{0}},\dots ,{e}^{ik(N1)d\mathrm{sin}{\varphi}_{0}}\right)$$
$$v=\left(1,{e}^{ikd\mathrm{sin}\varphi},{e}^{ik2d\mathrm{sin}\varphi},\dots ,{e}^{ik(N1)d\mathrm{sin}\varphi}\right)$$
The second pattern, called the Difference Pattern, is obtained by using phasedreversed weights. The weights are determined by phasereversing the latter half of the conventional steering vector. For an array with an even number of elements, the phasereversed weights are
$${w}_{d}=i\left(1,{e}^{ikd\mathrm{sin}{\varphi}_{0}},{e}^{ik2d\mathrm{sin}{\varphi}_{0}},\dots ,{e}^{ikN/2d\mathrm{sin}{\varphi}_{0}},{e}^{ik(N/2+1)d\mathrm{sin}{\varphi}_{0}},\dots ,{e}^{ik(N1)d\mathrm{sin}{\varphi}_{0}}\right)$$
$${w}_{d}^{H}v\left(\phi \right)$$
The monopulse response curve is obtained by dividing the difference pattern by the sum pattern and taking the real part.
$$R(\phi )=Re\left(\frac{{w}_{d}^{H}v(\phi )}{{w}_{s}^{H}v(\phi )}\right)$$
$$z=Re\left(\frac{{w}_{d}^{H}x}{{w}_{s}^{H}x}\right)$$
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 4element 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. SpaceTime Adaptive Monopulse Processing. Ph.D. Thesis. Georgia Institute of Technology, Atlanta, 1998.
[2] Rhodes, D. Introduction to Monopulse. Dedham, MA: Artech House, 1980.