Package: phased
Beamspace ESPRIT direction of arrival (DOA) estimator for ULA
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):
Define and set up your DOA estimator. See Construction.
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 
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(
creates
object, Name
,Value
)H
, with each specified property Name
set to the specified Value. You can specify additional namevalue
pair arguments in any order as (Name1
,Value1
,...,NameN
,ValueN
).

Handle to sensor array Specify the sensor array as a handle. The sensor array must
be a Default: 

Signal propagation speed Specify the propagation speed of the signal, in meters per second, as a positive scalar. Default: Speed of light 

System operating frequency Specify the operating frequency of the system in hertz as a positive scalar. The default value corresponds to 300 MHz. Default: 

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: 

Source of number of signals Specify the source of the number of signals as one of Default: 

Method to estimate number of signals Specify the method to estimate the number of signals as one
of Default: 

Number of signals Specify the number of signals as a positive integer scalar.
This property applies when you set the Default: 

Type of least square method Specify the least squares method used for ESPRIT as one of Default: 

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. This property is tunable. Default: 

Source of number of beams Specify the source of the number of beams as one of Default: 

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 Default: 
clone  Create beamspace ESPRIT DOA estimator object with same property values 
getNumInputs  Number of expected inputs to step method 
getNumOutputs  Number of outputs from step method 
isLocked  Locked status for input attributes and nontunable properties 
release  Allow property value and input characteristics changes 
step  Perform DOA estimation 
Estimate the DOAs of two signals received by a standard 10element ULA with element spacing 1 meter. The antenna operating frequency is 150 MHz. The actual direction of the first signal is 10 degrees in azimuth and 20 degrees in elevation. The direction of the second signal is 45 degrees in azimuth and 60 degrees in elevation.
fs = 8000; t = (0:1/fs:1).'; x1 = cos(2*pi*t*300); x2 = cos(2*pi*t*400); ha = phased.ULA('NumElements',10,'ElementSpacing',1); ha.Element.FrequencyRange = [100e6 300e6]; fc = 150e6; x = collectPlaneWave(ha,[x1 x2],[10 20;45 60]',fc); rng default; noise = 0.1/sqrt(2)*(randn(size(x))+1i*randn(size(x))); % construct beamspace ESPRIT estimator hdoa = phased.BeamspaceESPRITEstimator('SensorArray',ha,... 'OperatingFrequency',fc,... 'NumSignalsSource','Property','NumSignals',2); % use the step method to obtain the direction of arrival estimates doas = step(hdoa,x+noise); az = broadside2az(sort(doas),[20 60]);
[1] Van Trees, H. Optimum Array Processing. New York: WileyInterscience, 2002.