Main Content

phased.ArrayGain

Sensor array gain

Description

The phased.ArrayGain System object™ calculates the array gain for a sensor array. This array gain represents the signal to noise ratio (SNR) improvement between the array output and the individual channel input, assuming the noise is spatially white. While related to the array response, the array gain is distinct from it. For more information about array gain, see the More About section.

To compute the SNR gain of the antenna for specified directions:

  1. Create the phased.ArrayGain object and set its properties.

  2. Call the object with arguments, as if it were a function.

To learn more about how System objects work, see What Are System Objects?

Creation

Description

arrayGain = phased.ArrayGain creates an array gain System object, arrayGain. This object calculates the array gain of a 2-element uniform linear array for specified directions.

example

arrayGain = phased.ArrayGain(Name=Value) sets properties using one or more optional name-value arguments. For example, WeightsInputPort=true sets the input port control for specifying weights to true.

Properties

expand all

Unless otherwise indicated, properties are nontunable, which means you cannot change their values after calling the object. Objects lock when you call them, and the release function unlocks them.

If a property is tunable, you can change its value at any time.

For more information on changing property values, see System Design in MATLAB Using System Objects.

Sensor array, specified as an array object from the phased package. The array contains subarrays.

Signal propagation speed, specified as a positive scalar. The units are in meters per second.

Data Types: double

Input port control for specifying weights, specified as true (logical 1) or false (logical 0). To specify the weights, set this property to true. When you do not want to specify weights, set this property to false.

Data Types: logical

Usage

Description

gain = arrayGain(freq,ang) returns the array gain of the array for the operating frequencies specified in freq and directions specified in ang.

example

gain = arrayGain(freq,ang,weights) applies weights, weights, to the sensor array. This syntax is available when you set the WeightsInputPort property to true.

gain = arrayGain(freq,ang,steerAngle) specifies the subarray steering angle steerAngle. This syntax is available when arrayGain.Sensor is an array that contains subarrays, and the arrayGain.Sensor.SubarraySteering value is either "Phase" or "Time".

gain = arrayGain(freq,ang,weights,steerAngle) combines all input arguments. This syntax is available when arrayGain.WeightsInputPort value is true, arrayGain.Sensor is an array that contains subarrays, and the arrayGain.Sensor.SubarraySteering value is either "Phase" or "Time".

gain = arrayGain(freq,ang,elementWeights) applies weights, elementWeights, to each element within each subarray. To use this syntax, set the SensorArray property to an array that supports subarrays and set the SubarraySteering property of the array to "Custom".

Note

The object performs an initialization the first time the object 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

expand all

Operating frequencies of the array, specified as a row vector of length L. The units are in hertz. Typical values are within the range specified by a property of the sensor element. Depending on the type of array, the element can be one of these options.

  • arrayGain.SensorArray.Element

  • arrayGain.SensorArray.Array.Element

  • arrayGain.SensorArray.Subarray.Element

The name of frequency range property is FrequencyRange or FrequencyVector based on the type of element in the array. The element has zero response at frequencies outside that range.

Direction, specified as one of these options.

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

  • Row vector of length M — Each element specifies a direction’s azimuth angle. In this case, the phased.ArrayGain System object assumes the corresponding elevation angle to be 0.

Data Types: double

Weights applied to the sensor array, specified as one of these options.

  • N-by-L matrix — Each column of the matrix represents the weights at the corresponding frequency in freq. N is the number of subarrays if SensorArray contains subarrays, or the number of elements otherwise. L is the number of frequencies specified in freq.

  • N-element column vector — The weights apply at all frequencies in freq.

Data Types: double

Subarray steering angle, specified as one of these options. The units are in degrees.

  • Two-element column vector — steerAngle 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.

  • Scalar — steerAngle represents the azimuth angle. In this case, the phased.ArrayGain System object assumes the elevation angle to be 0.

Data Types: double

Subarray element weights, specified as a complex-valued NSE-by-N matrix or a 1-by-N cell array. N is the number of subarrays. The phased.ArrayGain System object applies these weights to the individual elements within a subarray. This table outlines the dimensions and sizes of subarrays for phased.ReplicatedSubarray and phased.PartitionedArray.

Subarray Element Weights

Sensor ArraySubarray Weights
phased.ReplicatedSubarray

All subarrays have the same dimensions and sizes. Then, the subarray weights form an NSE-by-N matrix. NSE is the number of elements in each subarray and N is the number of subarrays. Each column of elementWeights specifies the weights for the corresponding subarray.

phased.PartitionedArray

Subarrays may not have the same dimensions and sizes. In this case, you can specify subarray weights as

  • an NSE-by-N matrix, where NSE is now the number of elements in the largest subarray. The first Q entries in each column are the element weights for the subarray, where Q is the number of elements in the subarray.

  • a 1-by-N cell array. Each cell contains a column vector of weights for the corresponding subarray. The column vectors have lengths equal to the number of elements in the corresponding subarray.

Dependencies

To enable this argument, set the SensorArray property to an array that contains subarrays and set the SubarraySteering property of the array to "Custom".

Complex Number Support: Yes

Output Arguments

expand all

Gain of the sensor array, returned as an M-by-L matrix. gain contains the gain at the M angles specified in ang and the L frequencies specified in freq. The units are in decibels.

Object Functions

To use an object function, specify the System object as the first input argument. For example, to release system resources of a System object named obj, use this syntax:

release(obj)

expand all

stepRun System object algorithm
releaseRelease resources and allow changes to System object property values and input characteristics
resetReset internal states of System object

Examples

collapse all

Calculate the array gain for a 4-element uniform linear array (ULA) in the direction 30° azimuth and 20° elevation. The array operating frequency is 300 MHz.

Set the array operating frequency to 300 MHz.

fc = 300e6;

Create a ULA with 4 elements.

array = phased.ULA(4);

Create an array gain object.

arrayGain = phased.ArrayGain(SensorArray=array);

Compute the gain of the array.

gain = arrayGain(fc,[30;20])
gain = 
-17.1783

More About

expand all

References

[1] Guerci, J. R. Space-Time Adaptive Processing for Radar. Boston: Artech House, 2003.

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

Extended Capabilities

expand all

Version History

Introduced in R2011a