Main Content

step

System object: phased.SteeringVector
Package: phased

Calculate steering vector

Syntax

SV = step(H,FREQ,ANG)
SV = step(H,FREQ,ANG,STEERANGLE)
SV = step(H,FREQ,ANG,WS)

Description

Note

Starting in R2016b, instead of using the step method to perform the operation defined by the System object™, you can call the object with arguments, as if it were a function. For example, y = step(obj,x) and y = obj(x) perform equivalent operations.

SV = step(H,FREQ,ANG) returns the steering vector SV of the array for the directions specified in ANG. The operating frequencies are specified in FREQ. The meaning of SV depends on the IncludeElementResponse property of H, as follows:

  • If IncludeElementResponse is true, SV includes the individual element responses.

  • If IncludeElementResponse is false, the computation assumes the elements are isotropic and SV does not include the individual element responses. Furthermore, if the SensorArray property of H contains subarrays, SV is the array factor among the subarrays and the phase center of each subarray is at its geometric center. If SensorArray does not contain subarrays, SV is the array factor among the elements.

SV = 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, H.Sensor.SubarraySteering is either 'Phase' or 'Time', and H.IncludeElementResponse is true.

SV = step(H,FREQ,ANG,WS) uses WS as weights applied 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', and H.IncludeElementResponse is true.

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

H

Steering vector object.

FREQ

Operating frequencies in hertz. FREQ is a row vector of length L.

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 space in the form [azimuth; elevation]. The azimuth angle must be between –180 degrees and 180 degrees, and the elevation angle must be between –90 degrees and 90 degrees.

If ANG is a row vector of length M, each element specifies the direction azimuth angle. In this case, the corresponding elevation angle is assumed to be 0.

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 degrees and 180 degrees, and the elevation angle must be between –90 degrees and 90 degrees.

If STEERANGLE is a scalar, it represents the azimuth angle. In this case, the elevation angle is assumed to be 0.

WS

Subarray element weights

Subarray element weights, specified as complex-valued NSE-by-N matrix or 1-by-N cell array where N is the number of subarrays. These weights are applied to the individual elements within a subarray.

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 WS specifies the weights for the corresponding subarray.

phased.PartitionedArray

Subarrays cannot 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', and H.IncludeElementResponse is true.

Output Arguments

SV

Steering vector. The form of the steering vector depends upon whether the EnablePolarization property is set to true or false.

  • If EnablePolarization is set to false, the steering vector, SV, has the dimensions N-by-M-by-L. The first dimension, N, is the number of elements of the phased array. If H.SensorArray contains subarrays, N is the number of subarrays. Each column of SV contains the steering vector of the array for the corresponding direction specified in ANG. Each of the L pages of SV contains the steering vectors of the array for the corresponding frequency specified in FREQ.

    If you set the H.IncludeElementResponse property to true, the steering vector includes the individual element responses. If you set the H.IncludeElementResponse property to false, the elements are assumed to be isotropic. Then, the steering vector does not include individual element responses.

  • If EnablePolarization is set to true, SV is a MATLAB struct containing two fields, SV.H and SV.V. These fields represent the steering vector horizontal and vertical polarization components. Each field has the dimensions N-by-M-by-L. The first dimension, N, is the number of elements of the phased array. If H.SensorArray contains subarrays, N is the number of subarrays. Each column of SV contains the steering vector of the array for the corresponding direction specified in ANG. Each of the L pages of SV contains the steering vectors of the array for the corresponding frequency specified in FREQ.

    If you set EnablePolarization to false for an array that supports polarization, then all polarization information is discarded. The combined pattern from both H and V polarizations is used at each element to compute the steering vector.

    Simulating polarization also requires that the sensor array specified in the SensorArray property can simulate polarization, and the IncludeElementResponse property is set to true.

Examples

expand all

Calculate the steering vector for a uniform linear array in the direction of 30° azimuth and 20° elevation. Assume the array operates at 300 MHz.

Note: This example runs only in R2016b or later. If you are using an earlier release, replace each call to the function with the equivalent step syntax. For example, replace myObject(x) with step(myObject,x).

array = phased.ULA('NumElements',2);
steeringvector = phased.SteeringVector('SensorArray',array);
fc = 300.0e6;
ang = [30;20];
sv = steeringvector(fc,ang);