Main Content

phased.BeamspaceESPRITEstimator

Beamspace ESPRIT direction of arrival (DOA) estimator for ULA

Description

The BeamspaceESPRITEstimator object computes a DOA estimate for a uniform linear array. The computation uses the estimation of signal parameters via rotational invariance techniques (ESPRIT) algorithm in beamspace.

To estimate the direction of arrival (DOA):

  1. Define and set up your DOA estimator. See Construction.

  2. Call step to estimate the DOA according to the properties of phased.BeamspaceESPRITEstimator. The behavior of step is specific to each object in the toolbox.

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.

Construction

H = phased.BeamspaceESPRITEstimator creates a beamspace ESPRIT DOA estimator System object, H. The object estimates the signal's direction of arrival using the beamspace ESPRIT algorithm with a uniform linear array (ULA).

H = phased.BeamspaceESPRITEstimator(Name,Value) creates object, H, with each specified property Name set to the specified Value. You can specify additional name-value pair arguments in any order as (Name1,Value1,...,NameN,ValueN).

Properties

SensorArray

Handle to sensor array

Specify the sensor array as a handle. The sensor array must be a phased.ULA object.

Default: phased.ULA with default property values

PropagationSpeed

Signal propagation speed

Specify the propagation speed of the signal, in meters per second, as a positive scalar. You can specify this property as single or double precision.

Default: Speed of light

OperatingFrequency

System operating frequency

Specify the operating frequency of the system in hertz as a positive scalar. The default value corresponds to 300 MHz. You can specify this property as single or double precision.

Default: 3e8

SpatialSmoothing

Spatial smoothing

Specify the number of averaging used by spatial smoothing to estimate the covariance matrix as a nonnegative integer. Each additional smoothing handles one extra coherent source, but reduces the effective number of element by 1. The maximum value of this property is M–2, where M is the number of sensors. You can specify this property as single or double precision.

Default: 0, indicating no spatial smoothing

NumSignalsSource

Source of number of signals

Specify the source of the number of signals as one of 'Auto' or 'Property'. If you set this property to 'Auto', the number of signals is estimated by the method specified by the NumSignalsMethod property. You can specify this property as single or double precision.

Default: 'Auto'

NumSignalsMethod

Method to estimate number of signals

Specify the method to estimate the number of signals as one of 'AIC' or 'MDL'. 'AIC' uses the Akaike Information Criterion and 'MDL' uses Minimum Description Length Criterion. This property applies when you set the NumSignalsSource property to 'Auto'.

Default: 'AIC'

NumSignals

Number of signals

Specify the number of signals as a positive integer scalar. This property applies when you set the NumSignalsSource property to 'Property'. You can specify this property as single or double precision.

Default: 1

Method

Type of least square method

Specify the least squares method used for ESPRIT as one of 'TLS' or 'LS'. 'TLS' refers to total least squares and 'LS' refers to least squares.

Default: 'TLS'

BeamFanCenter

Beam fan center direction (in degrees)

Specify the direction of the center of the beam fan (in degrees) as a real scalar value between –90 and 90. You can specify this property as single or double precision. This property is tunable.

Default: 0

NumBeamsSource

Source of number of beams

Specify the source of the number of beams as one of 'Auto' or 'Property'. If you set this property to 'Auto', the number of beams equals N–L, where N is the number of array elements and L is the value of the SpatialSmoothing property.

Default: 'Auto'

NumBeams

Number of beams

Specify the number of beams as a positive scalar integer. The lower the number of beams, the greater the reduction in computational cost. This property applies when you set the NumBeamsSource to 'Property'. You can specify this property as single or double precision.

Default: 2

Methods

stepPerform DOA estimation
Common to All System Objects
release

Allow System object property value changes

Examples

collapse all

Estimate the directions of arrival (DOA) of two signals received by a standard 10-element ULA with element spacing 1 meter. The antenna operating frequency is 150 MHz. The actual direction of the first signal is 10° in azimuth and 20° in elevation. The direction of the second signal is 45° in azimuth and 60° in elevation.

Create the two signals arriving at the array.

fs = 8000;
t = (0:1/fs:1).';
x1 = cos(2*pi*t*300);
x2 = cos(2*pi*t*400);
array = phased.ULA('NumElements',10,'ElementSpacing',1);
array.Element.FrequencyRange = [100e6 300e6];
fc = 150e6;
x = collectPlaneWave(array,[x1 x2],[10 20;45 60]',fc);
noise = 0.1/sqrt(2)*(randn(size(x)) + 1i*randn(size(x)));

Set up the beamspace ESPRIT estimator and solve for the DOAs.

estimator = phased.BeamspaceESPRITEstimator('SensorArray',array, ...
    'OperatingFrequency',fc,'NumSignalsSource','Property','NumSignals',2);
doas = estimator(x + noise);
az = broadside2az(sort(doas),[20 60])
az = 1×2

    9.9972   45.0061

Algorithms

expand all

References

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

Extended Capabilities

Version History

Introduced in R2011a