Direction of arrival using TLS ESPRIT
ang = espritdoa(R,nsig)
ang = espritdoa(___,Name,Value)
the directions of arrival,
ang = espritdoa(
ang, of a set of plane
waves received on a uniform line array (ULA). The estimation employs
the TLS ESPRIT, the total least-squares ESPRIT,
algorithm. The input arguments are the estimated spatial covariance
matrix between sensor elements,
R, and the number
of arriving signals,
nsig. In this syntax, sensor
elements are spaced one-half wavelength apart.
Assume a half-wavelength spaced uniform line array with 10 elements. Three plane waves arrive from the 0°, –25°, and 30° azimuth directions. Elevation angles are 0°. The noise is spatially and temporally white. The SNR for each signal is 5 dB. Find the arrival angles.
N = 10; d = 0.5; elementPos = (0:N-1)*d; angles = [0 -25 30]; Nsig = 3; R = sensorcov(elementPos,angles,db2pow(-5)); doa = espritdoa(R,Nsig)
doa = 1×3 30.0000 0.0000 -25.0000
espritdoa function returns the correct angles.
Assume a uniform line array with 10 elements. The element spacing is 0.4 wavelength. Three plane waves arrive from the 0°, –25°, and 30° azimuth directions. Elevation angles are 0°. The noise is spatially and temporally white. The SNR for each signal is 5 dB. Find the arrival angles.
N = 10; d = 0.4; elementPos = (0:N-1)*d; angles = [0 -25 30]; Nsig = 3; R = sensorcov(elementPos,angles,db2pow(-5)); doa = espritdoa(R,Nsig,'ElementSpacing',d)
doa = 1×3 -25.0000 -0.0000 30.0000
espritdoa returns the correct angles.
R— Spatial covariance matrix
Spatial covariance matrix, specified as a complex-valued, positive-definite, N-by-N matrix.
In this matrix, N represents the number of elements
in the ULA array. If
R is not Hermitian, a Hermitian
matrix is formed by averaging the matrix and its conjugate transpose,
Example: [ 4.3162, –0.2777 – 0.2337i; –0.2777 + 0.2337i , 4.3162]
Complex Number Support: Yes
nsig— Number of arriving signals
Number of arriving signals, specified as a positive integer.
comma-separated pairs of
the argument name and
Value is the corresponding value.
Name must appear inside quotes. You can specify several name and value
pair arguments in any order as
'ElementSpacing'— ULA element spacing
ULA element spacing, specified as a real-valued, positive scalar. Position units are measured in terms of signal wavelength.
'RowWeighting'— Row weights
Row weights specified as a real-valued positive scalar. These
weights are applied to the selection matrices which determine the
ESPRIT subarrays. A larger value is generally better but the value
must be less than or equal to (Ns–1)/2,
where Ns is the number of
subarray elements. The number of subarray elements is Ns =
N–1. The value of N is the number
of ULA elements, as specified by the dimensions of the spatial covariance
R. A detailed discussion of selection
matrices and row weighting can be found in Van Trees , p. 1178.
ang— Directions of arrival angles
Directions of arrival angle returned as a real-valued, 1-by-M vector.
The dimension M is the number of arriving signals
specified in the argument,
nsig. This angle is
the broadside angle. Angle units are degrees and angle values lie
between –90° and 90°.
 Van Trees, H.L. Optimum Array Processing. New York: Wiley-Interscience, 2002.
Usage notes and limitations:
Does not support variable-size inputs.