You can implement a uniform rectangular array (URA) with `phased.URA`

.
Array elements are distributed in the *y**z*-plane
with the array look direction along the positive *x*-axis.
When you use `phased.URA`

, you must specify these aspects
of the array:

Sensor elements of the array

Number of rows and the spacing between them

Number of columns and the spacing between them

Geometry of the planar lattice, which can be rectangular or triangular

This example shows how to create a URA, get information about its element positions, response, and delays, and simulate its reception of two sine waves.

Create and view a six-element URA with two elements along the *y*-axis
and three elements along the *z*-axis. Use a rectangular
lattice, with the default spacing of 0.5 meters along both the row
and column dimensions of the array. Each element is an isotropic antenna
element, which is the default. Return the positions of the array elements.

hura = phased.URA([3 2]); viewArray(hura); pos = getElementPosition(hura);

The *x*-coordinate is zero for all elements
in the array.

You can plot the array response using the `plotResponse`

method.

% Plot the response in 3D figure; plotResponse(hura,1e9,physconst('LightSpeed'),'RespCut','3D')

Calculate the element delays for signals arriving from +/– 45 degrees azimuth and 0 degrees elevation.

```
hed = phased.ElementDelay('SensorArray',hura);
ang = [45 -45];
tau = step(hed,ang);
```

The first column of `tau`

contains the element
delays for the signal incident on the array from +45 degrees azimuth
and the second column contains the delays for the signal arriving
from –45 degrees. The delays are equal in magnitude but opposite
in sign as expected.

The following code simulates the reception of two sine waves arriving from far field sources. One of the signals is a 100-Hz sine wave arriving from 20 degrees azimuth and 10 degrees elevation. The other signal is a 300-Hz sine wave arriving from –30 degrees azimuth and 5 degrees elevation. Both signals have a one GHz carrier frequency.

t = linspace(0,1,1000); x = cos(2*pi*100*t)'; y = cos(2*pi*300*t)'; angx = [20; 10]; angy = [-30;5]; recsig = collectPlaneWave(hura,[x y],[angx angy],1e9);

Each column of `recsig`

represents the received
signal at the corresponding element of the URA, `hura`

.

Was this topic helpful?