Accelerating the pace of engineering and science

# step

System object: phased.ArrayGain
Package: phased

Calculate array gain of sensor array

## Syntax

G = step(H,FREQ,ANG)
G = step(H,FREQ,ANG,WEIGHTS)
G = step(H,FREQ,ANG,STEERANGLE)
G = step(H,FREQ,ANG,WEIGHTS,STEERANGLE)

## Description

G = step(H,FREQ,ANG) returns the array gain G of the array for the operating frequencies specified in FREQ and directions specified in ANG.

G = step(H,FREQ,ANG,WEIGHTS) applies weights WEIGHTS on the sensor array. This syntax is available when you set the WeightsInputPort property to true.

G = step(H,FREQ,ANG,STEERANGLE) uses STEERANGLE as the subarray steering angle. This syntax is available when you configure H so that H.Sensor is an array that contains subarrays, and H.Sensor.SubarraySteering is either 'Phase' or 'Time'.

G = step(H,FREQ,ANG,WEIGHTS,STEERANGLE) combines all input arguments. This syntax is available when you configure H so that H.WeightsInputPort is true, H.Sensor is an array that contains subarrays, and H.Sensor.SubarraySteering is either 'Phase' or 'Time'.

 Note:   H specifies the System object™ on which to run this step method.The object performs an initialization the first time the step method is executed. This initialization locks nontunable properties 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.

## Input Arguments

 H Array gain object. FREQ Operating frequencies of array in hertz. FREQ is a row vector of length L. Typical values are within the range specified by a property of the sensor element. The element is H.SensorArray.Element, H.SensorArray.Array.Element, or H.SensorArray.Subarray.Element, depending on the type of array. The frequency range property is named FrequencyRange or FrequencyVector, depending on the type of element in the array. The element has zero response at frequencies outside that range. ANG Directions in degrees. ANG can be either a 2-by-M matrix or a row vector of length M. If ANG is a 2-by-M matrix, each column of the matrix specifies the direction in the form [azimuth; elevation]. The azimuth angle must be between –180 and 180 degrees, inclusive. The elevation angle must be between –90 and 90 degrees, inclusive. If ANG is a row vector of length M, each element specifies a direction's azimuth angle. In this case, the corresponding elevation angle is assumed to be 0. WEIGHTS Weights on the sensor array. WEIGHTS can be either an N-by-L matrix or a column vector of length N. N is the number of subarrays if H.SensorArray contains subarrays, or the number of elements otherwise. L is the number of frequencies specified in FREQ. If WEIGHTS is a matrix, each column of the matrix represents the weights at the corresponding frequency in FREQ. If WEIGHTS is a vector, the weights apply at all frequencies in FREQ. STEERANGLE Subarray steering angle in degrees. STEERANGLE can be a length-2 column vector or a scalar. If STEERANGLE is a length-2 vector, it has the form [azimuth; elevation]. The azimuth angle must be between –180 and 180 degrees, and the elevation angle must be between –90 and 90 degrees. If STEERANGLE is a scalar, it represents the azimuth angle. In this case, the elevation angle is assumed to be 0.

## Output Arguments

 G Gain of sensor array, in decibels. G is an M-by-L matrix. G contains the gain at the M angles specified in ANG and the L frequencies specified in FREQ.

## Definitions

### Array Gain

The array gain is defined as the signal to noise ratio (SNR) improvement between the array output and the individual channel input, assuming the noise is spatially white. You can express the array gain as follows:

$\frac{SN{R}_{\text{out}}}{SN{R}_{\text{in}}}=\frac{\left(\frac{{w}^{H}vs{v}^{H}w}{{w}^{H}Nw}\right)}{\left(\frac{s}{N}\right)}=\frac{{w}^{H}v{v}^{H}w}{{w}^{H}w}$

In this equation:

• w is the vector of weights applied on the sensor array. When you use phased.ArrayGain, you can optionally specify weights by setting the WeightsInputPort property to true and specifying the W argument in the step method syntax.

• v is the steering vector representing the array response toward a given direction. When you call the step method, the ANG argument specifies the direction.

• s is the input signal power.

• N is the noise power.

• H denotes the complex conjugate transpose.

For example, if a rectangular taper is used in the array, the array gain is the square of the array response normalized by the number of elements in the array.

## Examples

Construct a uniform linear array with six elements. The array operates at 1 GHz and the array elements are spaced at one half the operating frequency wavelength. Find the array gain in decibels for the direction 45 degrees azimuth and 10 degrees elevation.

```% operating frequency 1 GHz
fc = 1e9;
% 1 GHz wavelength
lambda = physconst('LightSpeed')/fc;
% construct the ULA
hULA = phased.ULA('NumElements',6,'ElementSpacing',lambda/2);
% construct the array gain object with the ULA as the sensor array
hgain = phased.ArrayGain('SensorArray',hULA);
% use step method to determine array gain at the specified
% operating frequency and angle
arraygain = step(hgain,fc,[45;10]);
% array gain is approximately -17.93 dB```