ESPRIT based estimators¶
API references¶
-
class
doatools.estimation.esprit.
Esprit1D
(wavelength)[source]¶ Bases:
object
Creates an ESPRIT estimator for 1D uniform linear arrays.
Parameters: wavelength (float) – Wavelength of the carrier wave. References
[1] R. Roy and T. Kailath, “ESPRIT-estimation of signal parameters via rotational invariance techniques,” IEEE Transactions on Acoustics, Speech and Signal Processing, vol. 37, no. 7, pp. 984–995, Jul. 1989.
[2] H. L. Van Trees, Optimum array processing. New York: Wiley, 2002.
-
estimate
(R, k, d0=None, displacement=1, formulation='ls', row_weights='default', unit='rad')[source]¶ Estimate the direction-of-arrivals (DOAs) using ESPRIT.
Parameters: - R (ndarray) – Covariance matrix input. This covariance matrix must be obtained using a uniform linear array.
- k (int) – Expected number of sources.
- d0 (float) – Inter-element spacing of the uniform linear array used
to obtain
R
. If not specified, it will be set to one half of thewavelength
used when creating this estimator. Default value isNone
. - displacement (int) –
The displacement between the two overlapping subarrays measured in number of minimal inter-element spacings. Default value is 1.
Increasing this value will lead to smaller unambiguous range and number of resolvable sources. Make sure your DOAs falls within the unambiguous range.
- formulation (str) – Method used to estimate the rotation matrix.
Either
'tls'
(Total Lease Squares) or'ls'
(Least Squares). Default value is'tls'
. - row_weights (str or ndarray) –
Specifies the row weights with a vector or a string. Default value is
'default'
, which generates the following weight vector:\[\lbrack 1\ \sqrt{2}\ \sqrt{3}\ \cdots\ \sqrt{3}\ \sqrt{2}\ 1 \rbrack\]You can disable row weighting by passing in
'none'
, or specify your own row weights with a 1Dndarray
. - unit (str) – Unit of the estimates. Default value is
'rad'
. SeeFarField1DSourcePlacement
for more details on valid units.
Returns: A tuple with the following elements.
- resolved (
bool
):True
only if the rooting algorithm successfully findsk
roots inside the unit circle. This flag does not guarantee that the estimated source locations are correct. The estimated source locations may be completely wrong! If resolved is False,estimates
will beNone
. - estimates (
FarField1DSourcePlacement
): AFarField1DSourcePlacement
recording the estimated source locations. Will beNone
if resolved isFalse
.
-