Documentation

# steervec

Steering vector

## Syntax

``sv = steervec(pos,ang)``
``sv = steervec(pos,ang,nqbits)``

## Description

example

````sv = steervec(pos,ang)` returns the steering vector `sv` for each incoming plane wave or set of plane waves impinging on a sensor array. The steering vector represents the set of phase-delays for an incoming wave at each sensor element. The `pos` argument specifies the positions of the sensor array elements. The `ang` argument specifies the incoming wave arrival directions in terms of azimuth and elevation angles. The steering vector, `sv`, is an N-by-M complex-valued matrix. In this matrix, N represents the number of element positions in the sensor array while M represents the number of incoming waves. Each column of `sv` contains the steering vector for the corresponding direction specified in `ang`. All elements in the sensor array are assumed to be isotropic.```

example

````sv = steervec(pos,ang,nqbits)` returns quantized narrowband steering vector when the number of phase shifter bits is set to `nqbits`.```

## Examples

collapse all

Specify a uniform line array of five elements spaced 10 cm apart. Then, specify an incoming plane wave with a frequency of 1 GHz and an arrival direction of 45° azimuth and 0° elevation. Compute the steering vector of this wave.

```elementPos = (0:.1:.4); c = physconst('LightSpeed'); fc = 1e9; lam = c/fc; ang = [45;0]; sv = steervec(elementPos/lam,ang)```
```sv = 5×1 complex 1.0000 + 0.0000i 0.0887 + 0.9961i -0.9843 + 0.1767i -0.2633 - 0.9647i 0.9376 - 0.3478i ```

Specify a uniform line array (ULA) containing five isotropic elements spaced 10 cm apart. Then, specify an incoming plane wave having a frequency of 1 GHz and an arrival direction of 45° azimuth and 0° elevation. Compute the steering vector of this wave. Quantize the steering vector to three bits.

```elementPos = (0:.1:.4); c = physconst('LightSpeed'); fc = 1e9; lam = c/fc; ang = [45;0]; sv = steervec(elementPos/lam,ang,3)```
```sv = 5×1 complex 1.0000 + 0.0000i 0.0000 + 1.0000i -1.0000 + 0.0000i -0.0000 - 1.0000i 1.0000 + 0.0000i ```

## Input Arguments

collapse all

Positions of the elements of a sensor array specified as a 1-by-N vector, a 2-by-N matrix, or a 3-by-N matrix. In this vector or matrix, N represents the number of elements of the array. Each column of `pos` represents the coordinates of an element. You define sensor position units in term of signal wavelength. If `pos` is a 1-by-N vector, then it represents the y-coordinate of the sensor elements of a line array. The x and z-coordinates are assumed to be zero. When `pos` is a 2-by-N matrix, it represents the (y,z)-coordinates of the sensor elements of a planar array. This array is assumed to lie in the yz-plane. The x-coordinates are assumed to be zero. When `pos` is a 3-by-N matrix, then the array has arbitrary shape.

Example: `[0,0,0; 0.1,0.4,0.3;1,1,1]`

Data Types: `double`

Arrival directions of incoming signals specified as a 1-by-M vector or a 2-by-M matrix, where M is the number of incoming signals. If `ang` is a 2-by-M matrix, each column specifies the direction in azimuth and elevation of the incoming signal `[az;el]`. Angular units are specified in degrees. The azimuth angle must lie between –180° and 180° and the elevation angle must lie between –90° and 90°. The azimuth angle is the angle between the x-axis and the projection of the arrival direction vector onto the xy plane. It is positive when measured from the x-axis toward the y-axis. The elevation angle is the angle between the arrival direction vector and xy-plane. It is positive when measured towards the z axis. If `ang` is a 1-by-M vector, then it represents a set of azimuth angles with the elevation angles assumed to be zero.

Example: [45;0]

Data Types: `double`

Number of bits used to quantize the phase shift in beamformer or steering vector weights, specified as a non-negative integer. A value of zero indicates that no quantization is performed.

Example: `5`

## Output Arguments

collapse all

Steering vector returned as an N-by-M complex-valued matrix. In this matrix, N represents the number of sensor elements of the array and M represents the number of incoming plane waves. Each column of `sv` corresponds to the same column in `ang`.

 Van Trees, H.L. Optimum Array Processing. New York, NY: Wiley-Interscience, 2002.

 Johnson, Don H. and D. Dudgeon. Array Signal Processing. Englewood Cliffs, NJ: Prentice Hall, 1993.

 Van Veen, B.D. and K. M. Buckley. “Beamforming: A versatile approach to spatial filtering”. IEEE ASSP Magazine, Vol. 5 No. 2 pp. 4–24.