PVASeparableBartlettParams#
Defined in public/src/operator/include/PvaOperatorTypes.h
-
struct PVASeparableBartlettParams#
Parameters for Separable Bartlett beamforming (sequential 1D DOA estimation).
Decomposes the full 2D azimuth–elevation search into two sequential 1D scans:
Step 1 (Azimuth scan): Beamform over all azimuth bins at elevation ≈ 0°. Find the coarse azimuth peak.
Step 2 (Elevation scan): Beamform over all elevation bins using a small azimuth neighborhood (±N bins) around the Step 1 peak. The joint peak of this local 2D patch yields the final DOA estimate.
Complexity: O(Naz × Nel) → O(Naz + (2N+1) × Nel), where N = azNeighborhood.
Constraints:
numAzimuthBins <= 256
numElevationBins <= 255
Public Members
-
bool enableSeparable#
Enable separable (two-step) search instead of full 2D grid search. When false (default), performs exhaustive search over all Az × El bins.
-
PVABartlettAzNeighborhood azNeighborhood#
Half-width of the azimuth neighborhood used in Step 2 (elevation scan). Step 2 evaluates elevation at (2N+1) azimuth bins centered on the Step 1 peak, forming a narrow 2D patch that improves elevation accuracy. 0 → peak bin only (1 az bin, complexity ≈ Naz + Nel) 1 → peak ± 1 bin (3 az bins, complexity ≈ Naz + 3·Nel) 2 → peak ± 2 bins (max) (5 az bins, complexity ≈ Naz + 5·Nel)
-
PVABartlettAzSource azSource#
Controls which step supplies the final azimuth estimate. See PVABartlettAzSource.
-
uint64_t azChannelMask#
Channel mask for Step 1 (azimuth scan). Bitmask over virtual channels. 0 (default): mask disabled — all channels participate in the azimuth scan. Non-zero: bit i = 1 keeps virtual channel i; bit i = 0 zeroes it out. Step 2 (elevation scan) always uses all channels regardless of this mask. Example: 0xFF retains only VCs 0–7 in a 64-channel array.