ESPRIT based estimators¶
API references¶
-
class
doatools.estimation.esprit.Esprit1D(wavelength)[source]¶ Bases:
objectCreates 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 thewavelengthused 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'. SeeFarField1DSourcePlacementfor more details on valid units.
Returns: A tuple with the following elements.
- resolved (
bool):Trueonly if the rooting algorithm successfully findskroots 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,estimateswill beNone. - estimates (
FarField1DSourcePlacement): AFarField1DSourcePlacementrecording the estimated source locations. Will beNoneif resolved isFalse.
-