Main Content

ULA Sum and Difference Monopulse

Sum-and-difference monopulse tracker for ULA

  • ULA Sum and Difference Monopulse block

Libraries:
Phased Array System Toolbox / Direction of Arrival

Description

The ULA Sum-and-Difference Monopulse block estimates the direction of arrival of a narrowband signal on a uniform linear array based on an initial guess using a sum-and-difference monopulse algorithm. The block obtains the difference steering vector by phase-reversing the latter half of the sum steering vector.

Ports

Input

expand all

Input signal, specified as a real-valued length-L row vector, where the number of columns corresponds to the number of channels.

Data Types: single | double

Initial estimate of the direction, specified as a scalar that represents the broadside angle in degrees. The value of Steer is between –90° and 90°. The angle is defined in the array's local coordinate system. For details regarding the local coordinate system of the ULA, type phased.ULA.coordinateSystemInfo

Data Types: single | double

Output

expand all

Estimate 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.

Data Types: single | double

Parameters

expand all

To edit block parameters interactively, use the Property Inspector. From the Simulink® Toolstrip, on the Simulation tab, in the Prepare gallery, select Property Inspector.

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

Example: 3e8

Data Types: double

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

Data Types: single | double

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.

Block simulation, specified as Interpreted Execution or Code Generation. If you want your block to use the MATLAB® interpreter, choose Interpreted Execution. If you want your block to run as compiled code, choose Code Generation. Compiled code requires time to compile but usually runs faster.

Interpreted execution is useful when you are developing and tuning a model. The block runs the underlying System object™ in MATLAB. You can change and execute your model quickly. When you are satisfied with your results, you can then run the block using Code Generation. Long simulations run faster with generated code than in interpreted execution. You can run repeated executions without recompiling, but if you change any block parameters, then the block automatically recompiles before execution.

This table shows how the Simulate using parameter affects the overall simulation behavior.

When the Simulink model is in Accelerator mode, the block mode specified using Simulate using overrides the simulation mode.

Acceleration Modes

Block SimulationSimulation Behavior
NormalAcceleratorRapid Accelerator
Interpreted ExecutionThe block executes using the MATLAB interpreter.The block executes using the MATLAB interpreter.Creates a standalone executable from the model.
Code GenerationThe block is compiled.All blocks in the model are compiled.

For more information, see Choosing a Simulation Mode (Simulink).

Programmatic Use

Block Parameter: SimulateUsing
Type: enum
Values: Interpreted Execution, Code Generation
Default: Interpreted Execution

Version History

Introduced in R2014b