RadarDoaAngleFFT#

Functions#

NVCVStatus pvaDoaAngleFFTCreate(NVCVOperatorHandle *handle, NVCVTensorRequirements const *const snapshotsTensorRequirements, NVCVTensorRequirements const *const detectionListTensorRequirements, NVCVTensorRequirements const *const ddmDopplerOffsetsTensorRequirements, NVCVTensorRequirements const *const targetAnglesTensorRequirements, NVCVTensorRequirements const *const targetIndexMapTensorRequirements, PVADoaAngleFFTParams const *const params)

Constructs an instance of the DOA Angle FFT operator.

NVCVStatus pvaDoaAngleFFTSubmit(NVCVOperatorHandle handle, cudaStream_t stream, NVCVTensorHandle const detectionCount, NVCVTensorHandle const snapshots, NVCVTensorHandle const detectionList, NVCVTensorHandle const ddmDopplerOffsets, NVCVTensorHandle targetCount, NVCVTensorHandle targetAngles, NVCVTensorHandle targetIndexMap)

Submits the DoA Angle FFT operator to a CUDA stream.

NVCVStatus pvaDoaAngleFFTSubmit(NVCVOperatorHandle handle, cupvaStream_t stream, NVCVTensorHandle const detectionCount, NVCVTensorHandle const snapshots, NVCVTensorHandle const detectionList, NVCVTensorHandle const ddmDopplerOffsets, NVCVTensorHandle targetCount, NVCVTensorHandle targetAngles, NVCVTensorHandle targetIndexMap)

Submits the DoA Angle FFT operator to a cuPVA stream.

Functions#

NVCVStatus pvaDoaAngleFFTCreate(
NVCVOperatorHandle *handle,
NVCVTensorRequirements const *const snapshotsTensorRequirements,
NVCVTensorRequirements const *const detectionListTensorRequirements,
NVCVTensorRequirements const *const ddmDopplerOffsetsTensorRequirements,
NVCVTensorRequirements const *const targetAnglesTensorRequirements,
NVCVTensorRequirements const *const targetIndexMapTensorRequirements,
PVADoaAngleFFTParams const *const params,
)#

Constructs an instance of the DOA Angle FFT operator.

This operator performs 2D Angle FFT for Direction of Arrival (DOA) estimation. It processes virtual antenna snapshots and outputs target angles and target index maps.

Limitations:

 The maximum number of detections and targets is 8192.
 The local peak detection is not supported yet. Parameter is ignored.
 The product of the number of virtual azimuth elements and the number of virtual elevation elements must equal
 the number of Tx antennas multiplied by the number of Rx antennas:
     numVirtualAzimuthElements * numVirtualElevationElements = numTxAntennas * numRxAntennas

 Operator currently supports the following parameter values:
  - numTxAntennas = 8
  - numRxAntennas = 8
  - numVirtualAzimuthElements = 16
  - numVirtualElevationElements = 4

Parameters:
  • handle[out] Where the operator instance handle will be written to.

    • Must not be NULL.

  • snapshotsTensorRequirements[in] Snapshots tensor requirements

    • Data Layout: [CHW] — C: maximum number of targets; H: number of Tx antennas; W: number of Rx antennas

    • Rank: 3

    • Data Type: NVCV_DATA_TYPE_2S32 (Complex SQ11.20)

  • detectionListTensorRequirements[in] Range-Doppler Detection List tensor requirements

    • Data Layout: [HW] — H: number of detections (numDetections); W: 2 (rangeIdx, dopplerIdx)

    • Rank: 2

    • Data Type: NVCV_DATA_TYPE_S32

  • ddmDopplerOffsetsTensorRequirements[in] DDM Doppler Offsets tensor requirements

    • Data Layout: [W] — W: number of Doppler folds (numDopplerFolds)

    • Rank: 1

    • Data Type: NVCV_DATA_TYPE_F32

  • targetAnglesTensorRequirements[in] Target angles tensor requirements

    • Data Layout: [HW] — H: 2 (azimuth, elevation); W: maximum number of targets

    • Rank: 2

    • Data Type: NVCV_DATA_TYPE_F32

  • targetIndexMapTensorRequirements[in] Target index map tensor requirements

    • Data Layout: [HW] — H: number of index map rows; W: maximum number of targets

    • Rank: 2

    • Data Type: NVCV_DATA_TYPE_S32

  • params[in] Pointer to the DoaAngleFFT parameters. PVADoaAngleFFTParams.

Return values:
  • NVCV_ERROR_INVALID_ARGUMENT – Handle is null or some parameter is outside valid range.

  • NVCV_ERROR_OUT_OF_MEMORY – Not enough memory to create the operator.

  • NVCV_ERROR_INVALID_IMAGE_FORMAT – Image format is invalid.

  • NVCV_SUCCESS – Operation executed successfully.

NVCVStatus pvaDoaAngleFFTSubmit(
NVCVOperatorHandle handle,
cudaStream_t stream,
NVCVTensorHandle const detectionCount,
NVCVTensorHandle const snapshots,
NVCVTensorHandle const detectionList,
NVCVTensorHandle const ddmDopplerOffsets,
NVCVTensorHandle targetCount,
NVCVTensorHandle targetAngles,
NVCVTensorHandle targetIndexMap,
)#

Submits the DoA Angle FFT operator to a CUDA stream.

Note

CUDA stream support requirements:

  • PVA SDK 2.7.0 or later

  • Jetpack 7 or later

  • DriveOS 7 or later

  • x86 Emulator is not supported

Parameters:
  • handle[in] Handle to the operator.

  • stream[in] Handle to a valid CUDA stream.

  • detectionCount[in] Input tensor: Detection Count

  • snapshots[in] Input tensor: Snapshots

  • detectionList[in] Input tensor: Detection List (Range-Doppler detection indices)

  • ddmDopplerOffsets[in] Input tensor: DDM Doppler Offsets

  • targetCount[out] Output tensor: Target Count

  • targetAngles[out] Output tensor: Target Angles

  • targetIndexMap[out] Output tensor: Target Index Map

Return values:
  • NVCV_ERROR_INVALID_ARGUMENT – Handle is null.

  • NVCV_ERROR_INTERNAL – Internal error in the operator, invalid types passed in.

  • NVCV_SUCCESS – Operation executed successfully.

NVCVStatus pvaDoaAngleFFTSubmit(
NVCVOperatorHandle handle,
cupvaStream_t stream,
NVCVTensorHandle const detectionCount,
NVCVTensorHandle const snapshots,
NVCVTensorHandle const detectionList,
NVCVTensorHandle const ddmDopplerOffsets,
NVCVTensorHandle targetCount,
NVCVTensorHandle targetAngles,
NVCVTensorHandle targetIndexMap,
)#

Submits the DoA Angle FFT operator to a cuPVA stream.

Parameters:
  • handle[in] Handle to the operator.

    • Must not be NULL.

  • stream[in] Handle to a valid cuPVA stream.

  • detectionCount[in] Input tensor: Detection Count Data Layout: [W] where W=1 Data Type: NVCV_DATA_TYPE_S32

  • snapshots[in] Input tensor: Snapshots Data Layout: [CHW] where C=Maximum number of targets, H=Number of Tx antennas, W=Number of Rx antennas Data Type: NVCV_DATA_TYPE_2S32 (Complex SQ11.20)

  • detectionList[in] Input tensor: Range-Doppler Detection List Data Layout: [HW] where H=numDetections, W=2 Data Type: NVCV_DATA_TYPE_S32

  • ddmDopplerOffsets[in] Input tensor: DDM Doppler Offsets Data Layout: [W] where W=numDopplerFolds Data Type: NVCV_DATA_TYPE_F32

  • targetCount[out] Output tensor: Target Count Data Layout: [W] where W=1 Data Type: NVCV_DATA_TYPE_S32

  • targetAngles[out] Output tensor: Target Angles Data Layout: [HW] where H=2, W=Maximum number of targets Data Type: NVCV_DATA_TYPE_F32

  • targetIndexMap[out] Output tensor: Target Index Map Data Layout: [HW] Data Type: NVCV_DATA_TYPE_S32

Return values:
  • NVCV_ERROR_INVALID_ARGUMENT – Handle is null.

  • NVCV_ERROR_INTERNAL – Internal error in the operator, invalid types passed in.

  • NVCV_SUCCESS – Operation executed successfully.