Documentation

This is machine translation

Translated by Microsoft
Mouseover text to see original. Click the button below to return to the English verison of the page.

Note: This page has been translated by MathWorks. Please click here
To view all translated materals including this page, select Japan from the country navigator on the bottom of this page.

phased.ESPRITEstimator System object

ESPRIT direction of arrival (DOA) estimator for ULA

Description

The phased.ESPRITEstimator System object™ estimate the direction of arrival of signals parameters via rotational invariance (ESPRIT) direction of arrival estimate.

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.ESPRITEstimator. 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.ESPRITEstimator creates an ESPRIT DOA estimator System object, H. The object estimates the signal's direction-of-arrival (DOA) using the ESPRIT algorithm with a uniform linear array (ULA).

H = phased.ESPRITEstimator(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.

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.

Default: 3e8

ForwardBackwardAveraging

Perform forward-backward averaging

Set this property to true to use forward-backward averaging to estimate the covariance matrix for sensor arrays with conjugate symmetric array manifold.

Default: false

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.

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.

Default: 'Auto'

NumSignalsMethod

Method to estimate number of signals

Specify the method to estimate the number of signals as one of 'AIC' or 'MDL'. The 'AIC' uses the Akaike Information Criterion and the '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'. The number of signals, Nsig, must be smaller than the number of elements, Nsub, in the subarray derived from the array specified in the SensorArray property. See ESPRIT Subarrays.

Default: 1

Method

Type of least squares 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'

RowWeighting

Row weighting factor

Specify the row weighting factor for signal subspace eigenvectors as a positive integer scalar. This property controls the weights applied to the selection matrices. In most cases the higher value the better. However, it can never be greater than (Nsub – 1)/2 where Nsub is the number of elements in the subarray derived from the array specified in the SensorArray property. See ESPRIT Subarrays.

Default: 1

Methods

stepPerform DOA estimation
Common to All System Objects
clone

Create System object with same property values

getNumInputs

Expected number of inputs to a System object

getNumOutputs

Expected number of outputs of a System object

isLocked

Check locked states of a System object (logical)

release

Allow System object property value changes

Examples

expand all

Estimate the directions-of-arrival (DOA) of two signals received by a standard 10-element ULA with element spacing 1 m. 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 signals.

fs = 8.0e3;
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;

Create the plane waves and add noise.

x = collectPlaneWave(array,[x1 x2],[10 20;45 60]',fc);
noise = 0.1/sqrt(2)*(randn(size(x)) + 1i*randn(size(x)));

Estimate the arrival angles.

estimator = phased.ESPRITEstimator('SensorArray',array,...
    'OperatingFrequency',fc);
doas = estimator(x + noise);
az = broadside2az(sort(doas),[20 60])
az = 

   10.0000   45.0126

Algorithms

The ESPRIT algorithm, as implemented in the phased.ESPRITEstimator System object, reorganizes the ULA elements into two overlapping subarrays. For an original N-element array, the first subarray consist of elements 1,...,N - 1 of the original array. The second subarray consist of elements 2,...,N of the original array. There are Nsub = N - 1 elements in each subarray.

References

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

Extended Capabilities

See Also

Introduced in R2012a

Was this topic helpful?