RadarPeakDetection#

Functions#

NVCVStatus pvaPeakDetectionCreate(NVCVOperatorHandle *handle, NVCVTensorRequirements const *const inTensorRequirements, NVCVTensorRequirements const *const outTensorRequirements, int32_t NofTx, int32_t repeatFold)

Constructs an instance of the Peak Detection operator.

NVCVStatus pvaPeakDetectionSubmit(NVCVOperatorHandle handle, cudaStream_t stream, NVCVTensorHandle *inHandles, NVCVTensorHandle *outHandles, int inTensorCount, int outTensorCount)

Submits the PeakDetection operator to a CUDA stream.

NVCVStatus pvaPeakDetectionSubmit(NVCVOperatorHandle handle, cupvaStream_t stream, NVCVTensorHandle *inHandles, NVCVTensorHandle *outHandles, int inTensorCount, int outTensorCount)

Submits the PeakDetection operator to a cuPVA stream.

Functions#

NVCVStatus pvaPeakDetectionCreate(
NVCVOperatorHandle *handle,
NVCVTensorRequirements const *const inTensorRequirements,
NVCVTensorRequirements const *const outTensorRequirements,
int32_t NofTx,
int32_t repeatFold,
)#

Constructs an instance of the Peak Detection operator.

Currently, the tensors have the following dimensions: Nb – number of range bins (samples), Nr – number of Doppler bins (ramps), NofRx – number of RX antennas, FT2D: std::complex<int32_t> [Nb][NofRx][Nr] Data type: 2S32 (complex, fixed point Q15) Data layout: HCW, H – number of range bins, C – number of RX antennas, W – number of Doppler bins

nciRx: uint32_t [Nb][Nr] Data type: U32 (fixed point Q15) Data layout: HW, H – number of range bins, W – number of Doppler bins

nciFinal: uint32_t [Nb][Nr/repeatFold] Data type: U32 (fixed point Q15) Data layout: HW, H – number of range bins, W – number of Doppler bins divided by repeatFold

noiseEst: uint32_t [Nb] Data type: U32 (fixed point Q15) Data layout: W, W – number of range bins

peakIndex: uint32_t [PVA_RADAR_PEAKDET_NUM_PEAK_INDICES][PEAKDET_MAX_PEAK_COUNT] Data type: U32 Data layout: HW, H – PVA_RADAR_PEAKDET_NUM_PEAK_INDICES, W – maximum number of peaks. The first row corresponds to the range bin index, the second row corresponds to the folded Doppler bin index, and the third row corresponds to the unfolded Doppler bin index.

snap: 2S32 [PEAKDET_MAX_PEAK_COUNT][number_of_TX_antennas*number_of_RX_antennas] Data type: 2S32 (same as the data type of FT2D) Data layout: HW, H – maximum number of peaks, W – number_of_TX_antennas*number_of_RX_antennas

Parameters:
  • handle[out] Pointer to where the operator instance handle will be written. Must not be NULL.

  • inTensorRequirements[in] Pointer to a structure containing tensor rank, shape, layout, and data type information.

    • The inTensorRequirements corresponds to the dimensions of the FT2D tensor; other input tensors’ dimensions are derived from it.

  • outTensorRequirements[in] Pointer to a structure containing tensor rank, shape, layout, and data type information.

    • The outTensorRequirements corresponds to the dimensions of the snap tensor;

    • peakIndex’s shape[1] and snap’s shape[0] are derived from it.

    • peakCount is fixed to be a 1x1 tensor. peakCount: uint32_t [1] Data type: U32 Data layout: W

  • NofTx[in] The number of TX antennas.

    • Currently only supports the value 4.

  • repeatFold[in] The number of Doppler folds.

    • Currently only supports the value 8.

    • The value of repeatFold must be the same as the value of repeatFold in the inTensorRequirements.

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_SUCCESS – Operation executed successfully.

NVCVStatus pvaPeakDetectionSubmit(
NVCVOperatorHandle handle,
cudaStream_t stream,
NVCVTensorHandle *inHandles,
NVCVTensorHandle *outHandles,
int inTensorCount,
int outTensorCount,
)#

Submits the PeakDetection 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.

    • Must not be NULL.

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

  • inHandles[in] Pointer to array of input NVCVTensorHandle.

    • inHandles[0] is the FT2D tensor.

    • inHandles[1] is the nciRx tensor.

    • inHandles[2] is the nciFinal tensor.

    • inHandles[3] is the noiseEst tensor.

  • outHandles[out] Pointer to array of output NVCVTensorHandle.

    • outHandles[0] is the peakCount tensor.

    • outHandles[1] is the peakIndex tensor.

    • Note: The order of each entry might not be the same among implementations.

    • It is the caller’s responsibility to sort if a specific order is required.

    • outHandles[2] is the snap tensor.

  • inTensorCount[in] Number of input tensors.

  • outTensorCount[in] Number of output tensors.

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

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

  • NVCV_SUCCESS – Operation executed successfully.

NVCVStatus pvaPeakDetectionSubmit(
NVCVOperatorHandle handle,
cupvaStream_t stream,
NVCVTensorHandle *inHandles,
NVCVTensorHandle *outHandles,
int inTensorCount,
int outTensorCount,
)#

Submits the PeakDetection operator to a cuPVA stream.

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

    • Must not be NULL.

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

  • inHandles[in] Pointer to array of input NVCVTensorHandle.

    • inHandles[0] is the FT2D tensor.

    • inHandles[1] is the nciRx tensor.

    • inHandles[2] is the nciFinal tensor.

    • inHandles[3] is the noiseEst tensor.

  • outHandles[out] Pointer to array of output NVCVTensorHandle.

    • outHandles[0] is the peakCount tensor.

    • outHandles[1] is the peakIndex tensor.

    • Note: The order of each entry might not be the same among implementations.

    • It is the caller’s responsibility to sort if a specific order is required.

    • outHandles[2] is the snap tensor.

  • inTensorCount[in] Number of input tensors.

  • outTensorCount[in] Number of output tensors.

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

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

  • NVCV_SUCCESS – Operation executed successfully.