Virtual arrays and direction of arrival#
FLU steering convention#
For azimuth \(\theta\) and elevation \(\phi\), the FLU unit direction is
At phase centre \(\mathbf{p}_m\), steering_vector uses
Positive azimuth points left and positive elevation points up.
Automatic method selection#
estimate_doa(..., method="auto") inspects unique virtual phase centres:
uniform linear array: one-dimensional angle FFT;
complete uniform rectangular array: two-dimensional angle FFT;
sparse or arbitrary array: geometry-aware Bartlett grid search.
Explicit bartlett, capon, music, or esprit overrides this choice. ESPRIT
requires a ULA. FFT methods require complete uniformly spaced geometry; missing
positions are not filled with fictional measurements.
Covariance methods#
For snapshot matrix \(\mathbf{X}\) with channels in columns,
Bartlett evaluates
Capon/MVDR evaluates
with scale-relative diagonal loading. MUSIC separates the covariance eigenvectors into signal and noise subspaces and evaluates
numSources must be smaller than the number of unique channels. MUSIC and Capon
need enough statistically useful snapshots; a single RD sample is generally
better served by Bartlett or FFT.
Coherent sources#
spatial_smoothing averages overlapping ULA subarray covariances and optionally
applies forward-backward averaging. This can restore covariance rank for coherent
multipath sources at the cost of aperture.
Duplicate phase centres#
Cascade arrays often contain repeated virtual positions. duplicatePolicy
controls combination:
first: preserve the first channel;noncoherent: RMS amplitude with first-channel phase;coherent: complex mean after array calibration.
Coherent averaging is meaningful only when channel phase calibration is valid.
The model exposes duplicatePhaseCenters so profile tests can verify the topology.
Spatial aliasing and FOV#
For uniform spacing \(d\), an approximate unambiguous angular limit is
Radar.unambiguousFov derives this independently for the lateral and vertical
coordinates. A requested search FOV wider than this can contain grating lobes;
the library does not hide them.