Documentation Center

  • Trial Software
  • Product Updates

phased.ULA System object

Package: phased

Uniform linear array


The ULA object creates a uniform linear array.

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

  1. Define and set up your uniform linear array. See Construction.

  2. Call step to compute the response according to the properties of phased.ULA. The behavior of step is specific to each object in the toolbox.


H = phased.ULA creates a uniform linear array (ULA) System object™, H. The object models a ULA formed with identical sensor elements. The origin of the local coordinate system is the phase center of the array. The positive x-axis is the direction normal to the array, and the elements of the array are located along the y-axis.

H = phased.ULA(Name,Value) creates 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).

H = phased.ULA(N,D,Name,Value) creates a ULA object, H, with the NumElements property set to N, the ElementSpacing property set to D, and other specified property Names set to the specified Values. N and D are value-only arguments. To specify a value-only argument, you must also specify all preceding value-only arguments. You can specify name-value pair arguments in any order.



Element of array

Specify the element of the sensor array as a handle. The element must be an element object in the phased package.

Default: An isotropic antenna element that operates between 300 MHz and 1 GHz


Number of elements

An integer containing the number of elements in the array.

Default: 2


Element spacing

A scalar containing the spacing (in meters) between two adjacent elements in the array.

Default: 0.5


Element tapering

Element tapering specified as a complex-valued scalar or a complex-valued 1-by-N row vector. In this vector, N represents the number of elements of the array. Tapers, also known as weights, are applied to each sensor elements in the sensor array and modify both the amplitude and phase of the received data. If 'Taper' is a scalar, the same weights are applied to each element. If 'Taper' is a vector, each weight is applied to the corresponding sensor element.

Default: 1


cloneCreate ULA object with same property values
collectPlaneWaveSimulate received plane waves
getElementPositionPositions of array elements
getNumElementsNumber of elements in array
getNumInputsNumber of expected inputs to step method
getNumOutputsNumber of outputs from step method
getTaperArray element tapers
isLockedLocked status for input attributes and nontunable properties
isPolarizationCapablePolarization capability
plotGratingLobeDiagramPlot grating lobe diagram of array
plotResponsePlot response pattern of array
releaseAllow property value and input characteristics
stepOutput responses of array elements
viewArrayView array geometry


expand all

Response of Antenna Array

Create a 4-element ULA and find the response of each element at boresight. Plot the array response at 1 GHz for azimuth angles between –180 and 180 degrees.

ha = phased.ULA('NumElements',4);
fc = 1e9;
ang = [0;0];
resp = step(ha,fc,ang);
c = physconst('LightSpeed');

Response of Microphone Array

Find and plot the response of an array of 10 microphones. In this example, the Element property matches the acoustic frequency range of a microphone.

hmic = phased.OmnidirectionalMicrophoneElement(...
    'FrequencyRange',[20 20e3]);
Nele = 10;
hula = phased.ULA('NumElements',Nele,...
fc = 100;
ang = [0; 0];
resp = step(hula,fc,ang);
c = 340;

Response of an Array of Polarized Short-Dipole Antennas

Build a uniform line array of 5 short-dipole sensor elements. Because short dipoles support polarization, the array should as well. Verify that it supports polarization by looking at the output of isPolarizationCapable. Then, draw the array, showing the tapering.

Build the array and display its shape using the viewArray method.

h = phased.ShortDipoleAntennaElement(...
    'FrequencyRange',[100e6 1e9],'AxisDirection','Z');
ha = phased.ULA('NumElements',5,'Element',h,...
ans =


Display the response.

fc = 150e6;
ang = [10];
resp = step(ha,fc,ang);
resp = 

    H: [5x2 double]
    V: [5x2 double]


   -0.6124   -0.6124
   -0.8573   -0.8573
   -1.2247   -1.2247
   -0.8573   -0.8573
   -0.6124   -0.6124

Plot the vertical polarization response.

c = physconst('LightSpeed');


[1] Brookner, E., ed. Radar Technology. Lexington, MA: LexBook, 1996.

[2] Van Trees, H. Optimum Array Processing. New York: Wiley-Interscience, 2002.

See Also

| phased.CrossedDipoleAntennaElement | | phased.ShortDipoleAntennaElement | | |

Was this topic helpful?