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.