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.