TI-radar AWR1843 C674x DSP core  1
dss_data_path.h
Go to the documentation of this file.
1 
39 #ifndef DSS_DATA_PATH_H
40 #define DSS_DATA_PATH_H
41 
42 #include "common/detected_obj.h"
43 #include "common/mrr_config.h"
44 #include "common/app_cfg.h"
45 #include <ti/sysbios/knl/Semaphore.h>
46 
47 
48 #include <ti/common/sys_common.h>
49 #include <ti/common/mmwave_error.h>
50 #include <ti/drivers/adcbuf/ADCBuf.h>
51 #include <ti/drivers/edma/edma.h>
52 #include "EKF_XYZ_Consts.h"
53 
54 #ifdef __cplusplus
55 extern "C" {
56 #endif
57 
58 #define BYTES_PER_SAMP_1D (2*sizeof(int16_t)) /*16 bit real, 16 bit imaginary => 4 bytes */
59 #define BYTES_PER_SAMP_2D (2*sizeof(int32_t)) /*32 bit real, 32 bit imaginary => 8 bytes */
60 #define BYTES_PER_SAMP_DET sizeof(uint16_t) /*pre-detection matrix is 16 bit unsigned =>2 bytes*/
61 
62 //DETECTION (CFAR-CA) related parameters
63 #define DET_THRESH_MULT 25
64 #define DET_THRESH_SHIFT 5 //DET_THRESH_MULT and DET_THRESH_SHIFT together define the CFAR-CA threshold
65 #define DET_GUARD_LEN 4 // this is the one sided guard lenght
66 #define DET_NOISE_LEN 16 //this is the one sided noise length
67 
68 #define PI_ 3.1415926535897
69 #define ONE_Q15 (1 << 15)
70 #define ONE_Q19 (1 << 19)
71 #define ONE_Q8 (1 << 8)
72 
73 #define MMWDEMO_MEMORY_ALLOC_DOUBLE_WORD_ALIGN 8
74 #define MMWDEMO_MEMORY_ALLOC_MAX_STRUCT_ALIGN sizeof(uint64_t)
75 
77 #define MMW_PEAK_GROUPING_DET_MATRIX_BASED 1
78 
80 #define MMW_PEAK_GROUPING_CFAR_PEAK_BASED 2
81 
83 #define MMW_NOISE_AVG_MODE_CFAR_CA ((uint8_t)0U)
84 
86 #define MMW_NOISE_AVG_MODE_CFAR_CAGO ((uint8_t)1U)
87 
89 #define MMW_NOISE_AVG_MODE_CFAR_CASO ((uint8_t)2U)
90 
92 #define MMWDEMO_OUTPUT_MSG_CLUSTERS 2
93 #define MMWDEMO_OUTPUT_MSG_TRACKED_OBJECTS 3
94 #define MMWDEMO_OUTPUT_MSG_PARKING_ASSIST 4
95 
99 typedef struct cycleLog_t_ {
104 } cycleLog_t;
105 
109 typedef struct maxVelEnhStruct_t_
110 {
114  uint16_t padding;
116 
117 
123 typedef struct MmwDemo_objRaw1D
124 {
125  uint16_t rangeIdx;
126  uint16_t dopplerIdx;
128  uint16_t dopplerSNRdB;
130 
131 
132 
138 typedef struct MmwDemo_objRaw2D
139 {
140  uint16_t rangeIdx;
141  uint16_t dopplerIdx;
142  uint16_t range;
143  int16_t speed;
144  uint16_t peakVal;
145  uint16_t rangeSNRdB;
146  uint16_t dopplerSNRdB;
148 
154 {
155  uint16_t rangeIdx;
156  uint16_t dopplerIdx;
158  uint16_t range;
159  int16_t speed;
160  int16_t sinAzim;
162  uint16_t peakVal;
164  uint16_t rangeSNRdB;
165  uint16_t dopplerSNRdB;
166  uint16_t sinAzimSNRLin;
168  int16_t x;
169  int16_t y;
170  int16_t z;
173 
174 
180 {
181  int16_t xCenter;
182  int16_t yCenter;
183  int16_t xSize;
184  int16_t ySize;
186 
191 typedef struct trackingReportForTx_t
192 {
193  int16_t x;
194  int16_t y;
195  int16_t xd;
196  int16_t yd;
197  int16_t xSize;
198  int16_t ySize;
200 
206 {
207  int16_t speed;
208  uint16_t peakVal;
209  int16_t x;
210  int16_t y;
211  int16_t z;
212 #ifdef SEND_SNR_INFO
213  uint16_t rangeSNRdB;
214  uint16_t dopplerSNRdB;
215 #endif
217 
218 
219 
224 typedef struct SNRThresholds
225 {
226  uint16_t rangelim;
228  uint16_t threshold;
230 
231 
239 {
240  uint32_t *dopplerLineMask;
246  uint16_t currentIndex;
252 
256 typedef struct MmwDemo_timingInfo
257 {
261 
265 
268 
272 
276 
279 
283 
286 
289  uint32_t interFrameCPULoad;
290 
292 
293 
294 #define DBSCAN_ERROR_CODE_OFFSET 100
295 typedef enum
298 {
299  DBSCAN_OK = 0,
304 
305 
309 {
310  float epsilon;
311  float weight;
312  float vFactor;
314  uint16_t maxClusters;
315  uint16_t pointIndex;
316 
317  uint16_t maxPoints; // Maximum number of points that can be services per dbscanRun call
319  uint16_t fixedPointScale;
322  char *scratchPad;
323  char *visited;
324  char *scope;
325  uint16_t *neighbors;
326  float *distances;
327 
329 
330 
334 {
335  float epsilon;
336  float weight;
337  float vFactor;
339  uint16_t maxClusters;
340  uint16_t fixedPointScale;
342  uint16_t maxPoints;
344 
345 
348 {
349  uint16_t numPoints;
350  int16_t xCenter;
351  int16_t yCenter;
352  int16_t xSize;
353  int16_t ySize;
354  int16_t avgVel;
356 
358 typedef struct trackingInputReport
359 {
360  int16_t xSize;
361  int16_t ySize;
362  float measVec[3];
363  float measCovVec[3];
365 
368 {
369  uint16_t *IndexArray;
370  uint16_t numCluster;
373 
374 
375 
376 #define TRACKER_SCRATCHPAD_FLT_SIZE (N_MEASUREMENTS + \
377  N_UNIQ_ELEM_IN_SYM_RESIDCOVMAT + \
378  N_UNIQ_ELEM_IN_SYM_RESIDCOVMAT + \
379  N_UNIQ_ELEM_IN_HMAT + \
380  (N_STATES*N_MEASUREMENTS) + \
381  N_UNIQ_ELEM_IN_SYM_COVMAT + \
382  (N_STATES*N_MEASUREMENTS) + \
383  (N_STATES*N_STATES) + \
384  N_UNIQ_ELEM_IN_SYM_COVMAT + \
385  N_MEASUREMENTS)
386 #define TRACKER_SCRATCHPAD_SHORT_SIZE (MRR_MAX_OBJ_OUT + 2*MAX_TRK_OBJs)
387 
392 typedef struct KFtrackerInstance
393 {
398  uint16_t maxTrackers;
399  uint16_t fixedPointScale;
400 
401  /* Temporaries for tracking. In the '//comment' the size of the memory to be assigned is given. */
402  float * scratchPadFlt; // TRACKER_SCRATCHPAD_FLT_SIZE
403  int16_t * scratchPadShort; // (MRR_MAX_OBJ_OUT + 2*MAX_TRK_OBJs)
404  int16_t * assocMeasIndx; // [MRR_MAX_OBJ_OUT];
405  int16_t * freeTrackerIndxArray; //[MAX_TRK_OBJs];
406  int16_t * selectedIndxArr; // [MAX_TRK_OBJs];
407  float * stateVecRrd; // [N_MEASUREMENTS];
408  float * residCovmat; // [N_UNIQ_ELEM_IN_SYM_RESIDCOVMAT];
409  float * invResidCovmat; // [N_UNIQ_ELEM_IN_SYM_RESIDCOVMAT];
410  float * hMat; // [N_UNIQ_ELEM_IN_HMAT];
411  float * kalmanGain; //[N_STATES*N_MEASUREMENTS];
412  float * covmattmp; // [N_UNIQ_ELEM_IN_SYM_COVMAT];
413  float * kalmanGainTemp; // [N_STATES*N_MEASUREMENTS];
414  float * stateCovMattemp; // [N_STATES*N_STATES];
415  float * stateCovMattempP; // [N_UNIQ_ELEM_IN_SYM_COVMAT];
416  float * measResidual; // N_MEASUREMENTS
418 
423 typedef struct KFstate
424 {
425  uint8_t age;
426  uint8_t tick;
427  uint16_t validity;
428  int16_t xSize;
429  int16_t ySize;
430  float vec[N_STATES];
432 }KFstate_t;
433 
434 
435 
444 typedef struct DSS_DataPathObj_t
445 {
447  ADCBuf_Handle adcbufHandle;
448 
450  EDMA_Handle edmaHandle[2];
451 
453  EDMA_errorInfo_t EDMA_errorInfo;
454 
456  EDMA_transferControllerErrorInfo_t EDMA_transferControllerErrorInfo;
457 
459  cmplx16ReIm_t *ADCdataBuf;
460 
462  cmplx16ReIm_t *twiddle16x16_1D;
463 
465  int16_t *window1D;
466 
468  cmplx16ReIm_t *adcDataIn;
469 
471  cmplx16ReIm_t *fftOut1D;
472 
474  cmplx32ReIm_t *twiddle32x32_2D;
475 
477  int32_t *window2D;
478 
480  cmplx16ReIm_t *dstPingPong;
481 
483  cmplx32ReIm_t *windowingBuf2D;
484 
486  cmplx32ReIm_t *fftOut2D;
487 
489  uint16_t *log2Abs;
490 
492  uint16_t *sumAbs;
493 
495  uint16_t *sumAbsSlowChirp;
496 
498  uint16_t *sumAbsRange;
499 
502 
504  uint16_t *cfarDetObjSNR;
505 
507  cmplx32ReIm_t *azimuthIn;
508 
510  cmplx32ReIm_t *antInp;
511 
513  cmplx32ReIm_t *elevationIn;
514 
516  cmplx32ReIm_t *azimuthOut;
517 
519  cmplx32ReIm_t *elevationOut;
520 
523 
525  cmplx32ReIm_t *azimuthTwiddle32x32;
526 
528  cmplx16ImRe_t *azimuthModCoefs;
529 
531  cmplx16ImRe_t *rxChPhaseComp;
532 
534  cmplx32ImRe_t *dcRangeSigMean;
535 
537  cmplx16ReIm_t *radarCube;
538 
540  uint16_t *detMatrix;
541 
544 
547 
550 
553 
556 
559 
561  uint8_t processingPath;
562 
564  uint8_t chirpThreshold;
565 
568 
571 
574 
577 
579  uint8_t subframeIndx;
580 
582  uint8_t log2numVirtAnt;
583 
585  uint8_t sinAzimQFormat;
586 
589 
592 
594  uint8_t padding;
595 
599 
602 
605 
608 
610  uint16_t numDetObj;
611 
613  uint16_t numDetObjRaw;
614 
616  uint16_t minRange;
617 
619  uint16_t maxRange;
620 
623 
625  uint16_t maxNumObj2DRaw;
626 
628  uint16_t numRxAntennas;
629 
631  uint16_t numTxAntennas;
632 
635 
638 
641 
643  uint16_t numAngleBins;
644 
647 
649  uint16_t numDopplerBins;
650 
652  uint16_t chirpCount;
653 
655  uint16_t txAntennaCount;
656 
658  uint16_t dopplerBinCount;
659 
661  uint16_t chirpTypeCount;
662 
664  uint16_t numAdcSamples;
665 
667  uint16_t numRangeBins;
668 
670  cmplx16ImRe_t azimuthModCoefsHalfBin;
671 
673  cmplx16ImRe_t azimuthModCoefsThirdBin;
674 
677 
680 
683 
686 
689 
692 
695 
698 
701 
704 
708 
711 
714 
717 
720 
723 
726 
729 
733 
736 
739 
742 
745 
748 
750  float * trackerQvecList;
751 
754 
757 
760 
763 
765  uint16_t * parkingAssistBins;
766 
769 
773 
775 
784 
793 
802 
811 int32_t MmwDemo_dataPathCopyEdmaHandle(DSS_DataPathObj *objOutput, DSS_DataPathObj *objInput);
812 
821 
831 void MmwDemo_dataPathConfigBuffers(DSS_DataPathObj *obj, uint32_t adcBufAddress);
832 
842 
852 
861 void MmwDemo_waitEndOfChirps(DSS_DataPathObj *obj, uint8_t subframeIdx);
862 
872 void MmwDemo_processChirp(DSS_DataPathObj *obj, uint8_t subframeIdx);
873 
884 void MmwDemo_interFrameProcessing(DSS_DataPathObj *obj, uint8_t subframeIdx);
885 
891 uint32_t MmwDemo_pow2roundup (uint32_t x);
892 
907 float convertSNRdBToVar(uint16_t SNRdB,uint16_t bitW, uint16_t n_samples, float resolution);
908 
925 float convertSNRLinToVar(uint16_t SNRLin,uint16_t bitW, uint16_t n_samples, float resolution);
926 
943 
957 uint32_t pruneTrackingInput(trackingInputReport_t * trackingInput, uint32_t numCluster);
958 
974 float quadraticInterpFltPeakLoc(float * restrict y, int32_t len, int32_t indx);
975 
976 
977 /*!*****************************************************************************************************************
978  * \brief
979  * Function Name : MmwDemo_DopplerCompensation
980  *
981  * \par
982  * <b>Description</b> : Compensation of Doppler phase shift in the virtual antennas,
983  * (corresponding to second Tx antenna chirps). Symbols
984  * corresponding to virtual antennas, are rotated by half
985  * of the Doppler phase shift measured by Doppler FFT.
986  * The phase shift read from the table using half of the
987  * object Doppler index value. If the Doppler index is
988  * odd, an extra half of the bin phase shift is added.
989  *
990  * @param[in] dopplerIdx : Doppler index of the object
991  *
992  * @param[in] numDopplerBins : Number of Doppler bins
993  *
994  * @param[in] azimuthModCoefs: Table with cos/sin values SIN in even position, COS in odd position
995  * exp(1j*2*pi*k/N) for k=0,...,N-1 where N is number of Doppler bins.
996  *
997  * @param[out] azimuthModCoefsHalfBin : exp(1j*2*pi* 0.5 /N)
998  *
999  * @param[in,out] azimuthIn :Pointer to antenna symbols to be Doppler compensated
1000  *
1001  * @param[in] numAnt : Number of antenna symbols to be Doppler compensated
1002  *
1003  * @param[in] numTxAnt : Number of Tx antenna
1004  *
1005  * @param[in] txAntIdx : Tx Antenna index (Tx1:0 Tx2:1 Tx3:2)
1006  *
1007  * @return void
1008  *
1009  *******************************************************************************************************************
1010  */
1011 void MmwDemo_addDopplerCompensation(int32_t dopplerIdx,
1012  int32_t numDopplerBins,
1013  uint32_t *azimuthModCoefs,
1014  uint32_t *azimuthModCoefsThirdBin,
1015  uint32_t *azimuthModCoefsTwoThirdBin,
1016  int64_t *azimuthIn,
1017  uint32_t numAnt,
1018  uint32_t numTxAnt,
1019  uint16_t txAntIdx);
1038 void MmwDemo_XYcalc (DSS_DataPathObj *obj,
1039  uint32_t objIndex,
1040  uint16_t azimIdx,
1041  float * azimuthMagSqr);
1042 
1043 
1062 void MmwDemo_XYZcalc (DSS_DataPathObj *obj,
1063  uint32_t objIndex,
1064  uint16_t azimIdx,
1065  float * azimuthMagSqr);
1066 
1079 
1080 
1081 
1082 #ifdef __cplusplus
1083 }
1084 #endif
1085 
1086 #endif /* DSS_DATA_PATH_H */
1087 
DSS_DataPathObj_t::windowingBuf2D
cmplx32ReIm_t * windowingBuf2D
window output for 2D FFT
Definition: dss_data_path.h:483
KFstate::ySize
int16_t ySize
Definition: dss_data_path.h:429
MmwDemo_1D_DopplerLines::dopplerLineMaskLen
uint16_t dopplerLineMaskLen
size of dopplerLineMask array, (number of 32_bit words, for example for Doppler FFT size of 64 this l...
Definition: dss_data_path.h:248
DSS_DataPathObj_t::rxChPhaseComp
cmplx16ImRe_t * rxChPhaseComp
Pointer to the Rx Gain phase compensation params.
Definition: dss_data_path.h:531
MmwDemo_dataPathCopyEdmaHandle
int32_t MmwDemo_dataPathCopyEdmaHandle(DSS_DataPathObj *objOutput, DSS_DataPathObj *objInput)
Definition: dss_data_path.c:2272
clusteringDBscanConfig::weight
float weight
Definition: dss_data_path.h:336
SNRThresholds
These parameters allow the SNR requirements to be varied as a function of range.
Definition: dss_data_path.h:224
DSS_DataPathObj_t::edmaHandle
EDMA_Handle edmaHandle[2]
Handle of the EDMA driver.
Definition: dss_data_path.h:450
MmwDemo_timingInfo::interFrameCPULoad
uint32_t interFrameCPULoad
CPU Load during inter frame period - i.e. after chirps are done and before next frame starts.
Definition: dss_data_path.h:289
DSS_DataPathObj_t::detObj2DRaw
MmwDemo_objRaw2D_t * detObj2DRaw
Detected objects before peak grouping.
Definition: dss_data_path.h:713
clusteringDBscanReport::xSize
int16_t xSize
Definition: dss_data_path.h:352
clusteringDBscanReport::xCenter
int16_t xCenter
Definition: dss_data_path.h:350
clusteringDBscanInstance::visited
char * visited
Definition: dss_data_path.h:323
MAX_NUM_RANGE_DEPENDANT_SNR_THRESHOLDS
#define MAX_NUM_RANGE_DEPENDANT_SNR_THRESHOLDS
The number of SNR Thresholds - used to vary the SNR requirement as a function of range.
Definition: app_cfg.h:108
MmwDemo_objRaw1D::dopplerSNRdB
uint16_t dopplerSNRdB
Peak value.
Definition: dss_data_path.h:128
maxVelEnhStruct_t_::maxVelAssocThresh
uint16_t maxVelAssocThresh
Definition: dss_data_path.h:113
clusteringDBscanInstance::minPointsInCluster
uint16_t minPointsInCluster
Definition: dss_data_path.h:313
DSS_DataPathObj_t::fftOut2D
cmplx32ReIm_t * fftOut2D
2D FFT output
Definition: dss_data_path.h:486
KFtrackerInstance::scratchPadShort
int16_t * scratchPadShort
Definition: dss_data_path.h:403
N_STATES
#define N_STATES
Definition: EKF_XYZ_Consts.h:61
clusteringDBscanReport::avgVel
int16_t avgVel
Definition: dss_data_path.h:354
clusteringDBscanReportForTx_t
Structure for each cluster information report .
Definition: dss_data_path.h:179
trackingReportForTx_t::yd
int16_t yd
Definition: dss_data_path.h:196
DSS_DataPathObj_t::trackerState
KFstate_t * trackerState
tracking state.
Definition: dss_data_path.h:747
clusteringDBscanConfig::vFactor
float vFactor
Definition: dss_data_path.h:337
DBSCAN_ERROR_NOT_SUPPORTED
Definition: dss_data_path.h:301
SNRThresholds::rangelim
uint16_t rangelim
Range (in meters * (1 << xyzOutputQFormat)) upto which the SNR requirement is valid.
Definition: dss_data_path.h:226
DSS_DataPathObj_t::maxRange
uint16_t maxRange
maximum range at which a target is detected ( in xyzOutputQFormat precision).
Definition: dss_data_path.h:619
MmwDemo_detectedObjForTx_t::peakVal
uint16_t peakVal
Peak value.
Definition: dss_data_path.h:208
convertSNRdBToVar
float convertSNRdBToVar(uint16_t SNRdB, uint16_t bitW, uint16_t n_samples, float resolution)
Definition: dss_data_path.c:3971
clusteringDBscanReport::yCenter
int16_t yCenter
Definition: dss_data_path.h:351
MmwDemo_dataPathDeleteSemaphore
void MmwDemo_dataPathDeleteSemaphore(DSS_DataPathObj *obj)
MmwDemo_CfarCfg_t
Millimeter Wave Demo CFAR Configuration.
Definition: mrr_config.h:61
KFtrackerInstance::kalmanGainTemp
float * kalmanGainTemp
Definition: dss_data_path.h:413
DSS_DataPathObj_t::detDopplerLines
MmwDemo_1D_DopplerLines_t detDopplerLines
Detected Doppler lines.
Definition: dss_data_path.h:703
MmwDemo_dataPathConfigFFTs
void MmwDemo_dataPathConfigFFTs(DSS_DataPathObj *obj)
Definition: dss_data_path.c:2746
clusteringDBscanConfig::maxClusters
uint16_t maxClusters
Definition: dss_data_path.h:339
MmwDemo_1D_DopplerLines::currentIndex
uint16_t currentIndex
starting index for the search for next active Doppler line
Definition: dss_data_path.h:246
trackingReportForTx_t::x
int16_t x
Definition: dss_data_path.h:193
MmwDemo_objRaw1D
Parameters of CFAR detected object during the first round of CFAR detections.
Definition: dss_data_path.h:123
DSS_DataPathObj_t::azimuthModCoefs
cmplx16ImRe_t * azimuthModCoefs
Pointer to single point DFT coefficients used for Azimuth processing.
Definition: dss_data_path.h:528
MmwDemo_detectedObjForTx_t::x
int16_t x
x - coordinate in meters. Q format provides the bitwidth.
Definition: dss_data_path.h:209
MmwDemo_detectedObjActual_t::sinAzim
int16_t sinAzim
wx sin(Azim). Q format provides the bitwidth.
Definition: dss_data_path.h:160
KFtrackerInstance::selectedIndxArr
int16_t * selectedIndxArr
Definition: dss_data_path.h:406
DSS_DataPathObj_t::minRange
uint16_t minRange
minimum range at which a target is detected ( in xyzOutputQFormat precision).
Definition: dss_data_path.h:616
MmwDemo_objRaw2D
Parameters of CFAR detected object during the second round of CFAR detections.
Definition: dss_data_path.h:138
MmwDemo_pow2roundup
uint32_t MmwDemo_pow2roundup(uint32_t x)
Definition: dss_data_path.c:404
clusteringDBscanReport::numPoints
uint16_t numPoints
Definition: dss_data_path.h:349
MmwDemo_dataPathInit1Dstate
void MmwDemo_dataPathInit1Dstate(DSS_DataPathObj *obj)
Definition: dss_data_path.c:2198
DSS_DataPathObj_t::dbScanReport
clusteringDBscanOutput_t dbScanReport
The dBscan clustering result structures (holds pointers to the result).
Definition: dss_data_path.h:741
clusteringDBscanInstance
error code for clusteringDBscan.
Definition: dss_data_path.h:308
clusteringDBscanInstance::scope
char * scope
Definition: dss_data_path.h:324
MmwDemo_timingInfo::activeFrameCPULoad
uint32_t activeFrameCPULoad
CPU Load during active frame period - i.e. chirping.
Definition: dss_data_path.h:285
DSS_DataPathObj_t::radarCube
cmplx16ReIm_t * radarCube
Pointer to Radar Cube memory in L3 RAM.
Definition: dss_data_path.h:537
KFtrackerInstance::rangeAssocThresh
float rangeAssocThresh
Definition: dss_data_path.h:394
clusteringDBscanConfig::maxPoints
uint16_t maxPoints
Definition: dss_data_path.h:342
DSS_DataPathObj_t::trackerQvecList
float * trackerQvecList
Process noise constants.
Definition: dss_data_path.h:750
DSS_DataPathObj_t::antInp
cmplx32ReIm_t * antInp
input for Azimuth FFT
Definition: dss_data_path.h:510
DSS_DataPathObj_t::cycleLog
cycleLog_t cycleLog
DSP cycles for chirp and interframe processing and pending on EDMA data transferes.
Definition: dss_data_path.h:732
populateOutputs
void populateOutputs(DSS_DataPathObj *obj)
Definition: dss_data_path.c:4452
MmwDemo_timingInfo::chirpProcessingEndTime
uint32_t chirpProcessingEndTime
Chirp processing end time.
Definition: dss_data_path.h:267
convertSNRLinToVar
float convertSNRLinToVar(uint16_t SNRLin, uint16_t bitW, uint16_t n_samples, float resolution)
Definition: dss_data_path.c:4008
DSS_DataPathObj_t::detObj1DRaw
MmwDemo_objRaw1D_t * detObj1DRaw
Detected objects after first pass in Doppler direction.
Definition: dss_data_path.h:710
parkingAssistInit
void parkingAssistInit(DSS_DataPathObj *obj)
Definition: dss_data_path.c:5146
DBSCAN_ERROR_MEMORY_ALLOC_FAILED
Definition: dss_data_path.h:300
cycleLog_t_::interFrameWaitTime
uint32_t interFrameWaitTime
total wait time for 2D and 3D EDMA data transfer
Definition: dss_data_path.h:103
clusteringDBscanReportForTx
struct clusteringDBscanReportForTx_t clusteringDBscanReportForTx
Structure for each cluster information report .
KFstate
Kalman filter state.
Definition: dss_data_path.h:423
MmwDemo_dataPathConfigAzimuthHeatMap
void MmwDemo_dataPathConfigAzimuthHeatMap(DSS_DataPathObj *obj)
DSS_DataPathObj_t::azimuthIn
cmplx32ReIm_t * azimuthIn
input for Azimuth FFT
Definition: dss_data_path.h:507
KFtrackerInstance::kalmanGain
float * kalmanGain
Definition: dss_data_path.h:411
DSS_DataPathObj_t::numVirtualAntAzim
uint16_t numVirtualAntAzim
number of virtual azimuth antennas
Definition: dss_data_path.h:637
DSS_DataPathObj_t::sumAbsRange
uint16_t * sumAbsRange
input buffer for CFAR processing from the detection matrix
Definition: dss_data_path.h:498
KFtrackerInstance::hMat
float * hMat
Definition: dss_data_path.h:410
DSS_DataPathObj_t::parkingAssistBinsState
uint16_t * parkingAssistBinsState
Filtered result of the nearest object as a function of azimuth.
Definition: dss_data_path.h:768
MmwDemo_processChirp
void MmwDemo_processChirp(DSS_DataPathObj *obj, uint8_t subframeIdx)
Definition: dss_data_path.c:1974
KFtrackerInstance_t
struct KFtrackerInstance KFtrackerInstance_t
Struct for the tracker configuration, and pointers to scratch buffers.
DSS_DataPathObj_t::numDopplerBins
uint16_t numDopplerBins
number of doppler bins
Definition: dss_data_path.h:649
DSS_DataPathObj_t::numAngleBins
uint16_t numAngleBins
number of angle bins
Definition: dss_data_path.h:643
cycleLog_t_::interChirpProcessingTime
uint32_t interChirpProcessingTime
total processing time during all chirps in a frame excluding EDMA waiting time
Definition: dss_data_path.h:100
MmwDemo_detectedObjActual_t::rangeIdx
uint16_t rangeIdx
Range index.
Definition: dss_data_path.h:155
MmwDemo_timingInfo::interFrameProcessingEndMargin
uint32_t interFrameProcessingEndMargin
Inter frame processing end margin in number of cycles before due time to start processing first chirp...
Definition: dss_data_path.h:282
clusteringDBscanInstance::neighbors
uint16_t * neighbors
Definition: dss_data_path.h:325
clusteringDBscanErrorCodes
clusteringDBscanErrorCodes
error code for clusteringDBscan.
Definition: dss_data_path.h:297
DSS_DataPathObj_t::log2numVirtAnt
uint8_t log2numVirtAnt
log2 of the number of virtual antennas.
Definition: dss_data_path.h:582
clusteringDBscanConfig::epsilon
float epsilon
Definition: dss_data_path.h:335
KFtrackerInstance::stateVecRrd
float * stateVecRrd
Definition: dss_data_path.h:407
trackingInputReport
Input to tracking from the clustering output.
Definition: dss_data_path.h:358
DSS_DataPathObj_t::cfarDetObjSNR
uint16_t * cfarDetObjSNR
CFAR output objects' SNR buffer.
Definition: dss_data_path.h:504
clusteringDBscanInstance::dBScanNeighbourLim
uint16_t dBScanNeighbourLim
Definition: dss_data_path.h:318
MmwDemo_dataPathConfigBuffers
void MmwDemo_dataPathConfigBuffers(DSS_DataPathObj *obj, uint32_t adcBufAddress)
Definition: dss_data_path.c:2331
DSS_DataPathObj_t::numChirpsPerChirpType
uint16_t numChirpsPerChirpType
number of chirps per chirp type
Definition: dss_data_path.h:646
MmwDemo_detectedObjActual_t::y
int16_t y
y - coordinate in meters. Q format provides the bitwidth.
Definition: dss_data_path.h:169
DSS_DataPathObj_t::maxUnambiguousVel
float maxUnambiguousVel
maximum unambiguous velocity (without algorithmic improvements) in meters/sec
Definition: dss_data_path.h:685
DSS_DataPathObj_t::azimuthMagSqr
float * azimuthMagSqr
output of Azimuth FFT magnitude squared
Definition: dss_data_path.h:522
DSS_DataPathObj_t::chirpThreshold
uint8_t chirpThreshold
Chirp Threshold configuration used for ADCBUF driver.
Definition: dss_data_path.h:564
MmwDemo_timingInfo::chirpProcessingEndMarginMin
uint32_t chirpProcessingEndMarginMin
Chirp processing end margin in number of cycles before due time to start processing next chirp,...
Definition: dss_data_path.h:271
clusteringDBscanInstance::pointIndex
uint16_t pointIndex
Definition: dss_data_path.h:315
DSS_DataPathObj_t::rangeResolution
float rangeResolution
range resolution in meters
Definition: dss_data_path.h:679
MmwDemo_objRaw2D::peakVal
uint16_t peakVal
Peak value.
Definition: dss_data_path.h:144
MmwDemo_1D_DopplerLines_t
struct MmwDemo_1D_DopplerLines MmwDemo_1D_DopplerLines_t
Active Doppler lines, lines (bins) on which the CFAR detector detected objects during the detections ...
pruneTrackingInput
uint32_t pruneTrackingInput(trackingInputReport_t *trackingInput, uint32_t numCluster)
Definition: dss_data_path.c:4706
DSS_DataPathObj_t::trackerScratchPadFlt
float * trackerScratchPadFlt
Pointer to tracker scratch pad for floats.
Definition: dss_data_path.h:555
clusteringDBscanInstance::fixedPointScale
uint16_t fixedPointScale
Definition: dss_data_path.h:319
MmwDemo_detectedObjForTx_t
Detected object estimated parameters to be transmitted out.
Definition: dss_data_path.h:205
DSS_DataPathObj_t::parkingAssistMinRange
uint16_t parkingAssistMinRange
minimum range to look for obstacles. .
Definition: dss_data_path.h:604
trackingReportForTx
struct trackingReportForTx_t trackingReportForTx
Structure for tracking report.
trackingReportForTx_t::xd
int16_t xd
Definition: dss_data_path.h:195
N_UNIQ_ELEM_IN_SYM_COVMAT
#define N_UNIQ_ELEM_IN_SYM_COVMAT
Definition: EKF_XYZ_Consts.h:88
MmwDemo_1D_DopplerLines
Active Doppler lines, lines (bins) on which the CFAR detector detected objects during the detections ...
Definition: dss_data_path.h:238
MmwDemo_interFrameProcessing
void MmwDemo_interFrameProcessing(DSS_DataPathObj *obj, uint8_t subframeIdx)
Definition: dss_data_path.c:1633
MmwDemo_detectedObjActual_t::rangeSNRdB
uint16_t rangeSNRdB
Range SNR (dB)
Definition: dss_data_path.h:164
DSS_DataPathObj_t::azimuthTwiddle32x32
cmplx32ReIm_t * azimuthTwiddle32x32
twiddle factors table for Azimuth FFT
Definition: dss_data_path.h:525
DSS_DataPathObj_t::trackerOpFinal
trackingReportForTx * trackerOpFinal
Final list of tracked objects for transmission.
Definition: dss_data_path.h:762
DSS_DataPathObj_t::numTxAntennas
uint16_t numTxAntennas
number of transmit antennas
Definition: dss_data_path.h:631
DSS_DataPathObj_t::numAdcSamples
uint16_t numAdcSamples
number of ADC samples
Definition: dss_data_path.h:664
DSS_DataPathObj_t::EDMA_transferControllerErrorInfo
EDMA_transferControllerErrorInfo_t EDMA_transferControllerErrorInfo
EDMA transfer controller error information.
Definition: dss_data_path.h:456
clusteringDBscanConfig_t
struct clusteringDBscanConfig clusteringDBscanConfig_t
Structure element of the list of descriptors for clusteringDBscan configuration.
KFstate::tick
uint8_t tick
Definition: dss_data_path.h:426
DSS_DataPathObj_t::parkingAssistBins
uint16_t * parkingAssistBins
Nearest object as a function of azimuth.
Definition: dss_data_path.h:765
clusteringDBscanConfig::fixedPointScale
uint16_t fixedPointScale
Definition: dss_data_path.h:340
DSS_DataPathObj_t::window2D
int32_t * window2D
window coefficients for 2D FFT
Definition: dss_data_path.h:477
clusteringDBscanReportForTx_t::xSize
int16_t xSize
Definition: dss_data_path.h:183
DSS_DataPathObj_t::numChirpsPerFrame
uint16_t numChirpsPerFrame
number of chirps per frame
Definition: dss_data_path.h:607
DSS_DataPathObj_t::dbScanInstance
clusteringDBscanInstance_t dbScanInstance
The dBscan clustering configuration structure.
Definition: dss_data_path.h:738
trackingInputReport::xSize
int16_t xSize
Definition: dss_data_path.h:360
DSS_DataPathObj_t::dbscanOutputDataIndexArray
uint16_t * dbscanOutputDataIndexArray
Pointer to dBScan index array.
Definition: dss_data_path.h:546
DSS_DataPathObj_t::dstPingPong
cmplx16ReIm_t * dstPingPong
ping pong buffer for 2D from radar Cube
Definition: dss_data_path.h:480
DSS_DataPathObj_t::cfarDetObjIndexBuf
uint16_t * cfarDetObjIndexBuf
CFAR output objects index buffer.
Definition: dss_data_path.h:501
DSS_DataPathObj_t::azimuthModCoefsTwoThirdBin
cmplx16ImRe_t azimuthModCoefsTwoThirdBin
Half bin needed for doppler correction as part of Azimuth processing.
Definition: dss_data_path.h:676
DSS_DataPathObj_t::numActiveTrackers
uint16_t numActiveTrackers
number of active trackers.
Definition: dss_data_path.h:622
DSS_DataPathObj_t::window1D
int16_t * window1D
window coefficients for 1D FFT
Definition: dss_data_path.h:465
MmwDemo_detectedObjForTx
struct MmwDemo_detectedObjForTx_t MmwDemo_detectedObjForTx
Detected object estimated parameters to be transmitted out.
MmwDemo_timingInfo
Timing information.
Definition: dss_data_path.h:256
DSS_DataPathObj_t::log2Abs
uint16_t * log2Abs
log2 absolute computation output buffer
Definition: dss_data_path.h:489
DSS_DataPathObj_t::detObj2D
MmwDemo_detectedObjActual * detObj2D
Detected objects after second pass in Range direction. These objects are send out as point clouds.
Definition: dss_data_path.h:707
KFtrackerInstance
Struct for the tracker configuration, and pointers to scratch buffers.
Definition: dss_data_path.h:392
DSS_DataPathObj_t::cfarCfgRange
MmwDemo_CfarCfg cfarCfgRange
CFAR configuration in Range direction.
Definition: dss_data_path.h:719
trackingReportForTx_t::xSize
int16_t xSize
Definition: dss_data_path.h:197
DSS_DataPathObj_t::trackerInstance
KFtrackerInstance_t trackerInstance
Tracking configuration structure.
Definition: dss_data_path.h:744
MmwDemo_objRaw2D::range
uint16_t range
Range (in meters * (1 << xyzOutputQFormat))
Definition: dss_data_path.h:142
DSS_DataPathObj_t::cfarCfgRange_minIndxToIgnoreHPF
uint16_t cfarCfgRange_minIndxToIgnoreHPF
The HPF can mess up the noise floor computation. So for a certain number of indices,...
Definition: dss_data_path.h:598
DSS_DataPathObj_t::txAntennaCount
uint16_t txAntennaCount
chirp counter modulo number of tx antennas
Definition: dss_data_path.h:655
MmwDemo_detectedObjActual_t::x
int16_t x
x - coordinate in meters. Q format provides the bitwidth.
Definition: dss_data_path.h:168
DSS_DataPathObj_t::elevationOut
cmplx32ReIm_t * elevationOut
output of Elevation FFT
Definition: dss_data_path.h:519
trackingInputReport::measVec
float measVec[3]
Definition: dss_data_path.h:362
DSS_DataPathObj_t::numDetObj
uint16_t numDetObj
Number of detected objects.
Definition: dss_data_path.h:610
trackingInputReport::measCovVec
float measCovVec[3]
Definition: dss_data_path.h:363
DSS_DataPathObj_t::sinAzimQFormat
uint8_t sinAzimQFormat
Q format of the sin of the azimuth.
Definition: dss_data_path.h:585
DSS_DataPathObj_t::dbscanOutputDataReport
clusteringDBscanReport_t * dbscanOutputDataReport
Pointer to dBScan output Report array.
Definition: dss_data_path.h:549
trackingReportForTx_t
Structure for tracking report.
Definition: dss_data_path.h:191
KFtrackerInstance::assocMeasIndx
int16_t * assocMeasIndx
Definition: dss_data_path.h:404
DBSCAN_ERROR_CLUSTER_LIMIT_REACHED
Definition: dss_data_path.h:302
MmwDemo_timingInfo::interFrameProcessingEndTime
uint32_t interFrameProcessingEndTime
Inter frame processing end time.
Definition: dss_data_path.h:278
DSS_DataPathObj_t::dcRangeSigMean
cmplx32ImRe_t * dcRangeSigMean
Pointer to DC range signature compensation buffer.
Definition: dss_data_path.h:534
DSS_DataPathObj_t::detMatrix
uint16_t * detMatrix
Pointer to range/Doppler log2 magnitude detection matrix in L3 RAM.
Definition: dss_data_path.h:540
quadraticInterpFltPeakLoc
float quadraticInterpFltPeakLoc(float *restrict y, int32_t len, int32_t indx)
Definition: dss_data_path.c:4741
cycleLog_t_::interFrameProcessingTime
uint32_t interFrameProcessingTime
total processing time for 2D and 3D excluding EDMA waiting time
Definition: dss_data_path.h:102
KFstate::xSize
int16_t xSize
Definition: dss_data_path.h:428
DSS_DataPathObj_t::fftOut1D
cmplx16ReIm_t * fftOut1D
1D FFT output
Definition: dss_data_path.h:471
clusteringDBscanReportForTx_t::yCenter
int16_t yCenter
Definition: dss_data_path.h:182
DSS_DataPathObj_t::numDetObjRaw
uint16_t numDetObjRaw
Number of detected objects.
Definition: dss_data_path.h:613
clusteringDBscanOutput::IndexArray
uint16_t * IndexArray
Definition: dss_data_path.h:369
KFstate::covmat
float covmat[N_UNIQ_ELEM_IN_SYM_COVMAT]
Definition: dss_data_path.h:431
KFtrackerInstance::azimAssocThresh
float azimAssocThresh
Definition: dss_data_path.h:396
app_cfg.h
KFtrackerInstance::distAssocThreshSq
float distAssocThreshSq
Definition: dss_data_path.h:397
clusteringDBscanOutput::report
clusteringDBscanReport_t * report
Definition: dss_data_path.h:371
MmwDemo_waitEndOfChirps
void MmwDemo_waitEndOfChirps(DSS_DataPathObj *obj, uint8_t subframeIdx)
Definition: dss_data_path.c:2079
DSS_DataPathObj_t::azimuthOut
cmplx32ReIm_t * azimuthOut
output of Azimuth FFT
Definition: dss_data_path.h:516
DSS_DataPathObj_t::velResolution
float velResolution
velocity resolution in meters/sec
Definition: dss_data_path.h:682
clusteringDBscanReport
Structure for each cluster information report .
Definition: dss_data_path.h:347
MmwDemo_objRaw1D::velDisambFacValidity
int16_t velDisambFacValidity
velocity disambiguation factor
Definition: dss_data_path.h:127
DSS_DataPathObj_t::adcDataIn
cmplx16ReIm_t * adcDataIn
ADCBUF input samples in L2 scratch memory.
Definition: dss_data_path.h:468
MmwDemo_detectedObjForTx_t::y
int16_t y
y - coordinate in meters. Q format provides the bitwidth.
Definition: dss_data_path.h:210
MmwDemo_objRaw2D::rangeSNRdB
uint16_t rangeSNRdB
SNR of the peak in the range dimension.
Definition: dss_data_path.h:145
clusteringDBscanInstance::scratchPad
char * scratchPad
Definition: dss_data_path.h:322
MmwDemo_detectedObjActual_t::speed
int16_t speed
Doppler (m/s in oneQformat)
Definition: dss_data_path.h:159
DSS_DataPathObj_t::detObjFinal
MmwDemo_detectedObjForTx * detObjFinal
Final list of detected object for transmission.
Definition: dss_data_path.h:756
MmwDemo_detectedObjActual_t::z
int16_t z
z - coordinate in meters. Q format provides the bitwidth.
Definition: dss_data_path.h:170
MmwDemo_timingInfo::transmitOutputCycles
uint32_t transmitOutputCycles
time to transmit out detection information (in DSP cycles)
Definition: dss_data_path.h:264
DSS_DataPathObj_t::numRangeBins
uint16_t numRangeBins
number of range bins
Definition: dss_data_path.h:667
MmwDemo_dataPathConfigEdma
int32_t MmwDemo_dataPathConfigEdma(DSS_DataPathObj *obj)
Definition: dss_data_path.c:936
clusteringDBscanInstance::maxPoints
uint16_t maxPoints
Definition: dss_data_path.h:317
cycleLog_t
struct cycleLog_t_ cycleLog_t
DSP cycle profiling structure to accumulate different processing times in chirp and frame processing ...
MmwDemo_detectedObjActual_t::peakVal
uint16_t peakVal
Peak value.
Definition: dss_data_path.h:162
MmwDemo_detectedObjActual_t
Detected object estimated parameters.
Definition: dss_data_path.h:153
DSS_DataPathObj_t::xyzOutputQFormat
uint8_t xyzOutputQFormat
Q format of the output x/y/z coordinates.
Definition: dss_data_path.h:576
DBSCAN_ERROR_CODE_OFFSET
#define DBSCAN_ERROR_CODE_OFFSET
Definition: dss_data_path.h:294
DSS_DataPathObj_t::invOneSinAzimFormat
float invOneSinAzimFormat
inverse of the oneQformat
Definition: dss_data_path.h:691
MmwDemo_timingInfo::chirpProcessingEndMarginMax
uint32_t chirpProcessingEndMarginMax
Chirp processing end margin in number of cycles before due time to start processing next chirp,...
Definition: dss_data_path.h:275
MmwDemo_objRaw2D::dopplerSNRdB
uint16_t dopplerSNRdB
SNR of the peak in the doppler dimension.
Definition: dss_data_path.h:146
DSS_DataPathObj_t::dBscanScratchPad
uint8_t * dBscanScratchPad
Pointer to dBScan scratch pad.
Definition: dss_data_path.h:543
DSS_DataPathObj_t::calibDcRangeSigCfg
MmwDemo_CalibDcRangeSigCfg calibDcRangeSigCfg
DC Range antenna signature callibration configuration.
Definition: dss_data_path.h:725
KFtrackerInstance::scratchPadFlt
float * scratchPadFlt
Definition: dss_data_path.h:402
clusteringDBscanInstance::weight
float weight
Definition: dss_data_path.h:311
DSS_DataPathObj_t::invOneQFormat
float invOneQFormat
inverse of the oneQformat
Definition: dss_data_path.h:688
MmwDemo_objRaw2D::dopplerIdx
uint16_t dopplerIdx
Doppler index.
Definition: dss_data_path.h:141
MmwDemo_MultiObjBeamFormingCfg_t
Millimeter Wave Demo multi object beam formaing Configuration.
Definition: mrr_config.h:117
DSS_DataPathObj_t::sumAbs
uint16_t * sumAbs
accumulated sum of log2 absolute over the antennae
Definition: dss_data_path.h:492
KFstate::age
uint8_t age
Definition: dss_data_path.h:425
KFstate::vec
float vec[N_STATES]
Definition: dss_data_path.h:430
clusteringDBscanConfig
Structure element of the list of descriptors for clusteringDBscan configuration.
Definition: dss_data_path.h:333
clusteringDBscanOutput
Structure of clustering output.
Definition: dss_data_path.h:367
MmwDemo_objRaw2D::speed
int16_t speed
relative velocity (in meters/sec * (1 << xyzOutputQFormat))
Definition: dss_data_path.h:143
DSS_DataPathObj_t::log2NumAvgChirps
uint8_t log2NumAvgChirps
log2 of number of averaged chirps
Definition: dss_data_path.h:570
KFtrackerInstance::covmattmp
float * covmattmp
Definition: dss_data_path.h:412
clusteringDBscanReportForTx_t::xCenter
int16_t xCenter
Definition: dss_data_path.h:181
clusteringDBscanOutput_t
struct clusteringDBscanOutput clusteringDBscanOutput_t
Structure of clustering output.
KFtrackerInstance::freeTrackerIndxArray
int16_t * freeTrackerIndxArray
Definition: dss_data_path.h:405
KFtrackerInstance::maxTrackers
uint16_t maxTrackers
Definition: dss_data_path.h:398
DSS_DataPathObj_t::twiddle32x32_2D
cmplx32ReIm_t * twiddle32x32_2D
twiddle table for 2D FFT
Definition: dss_data_path.h:474
KFstate_t
struct KFstate KFstate_t
Kalman filter state.
DSS_DataPathObj_t::processingPath
uint8_t processingPath
Processing path - either point-cloud or max-vel enhancement.
Definition: dss_data_path.h:561
cycleLog_t_::interChirpWaitTime
uint32_t interChirpWaitTime
total wait time for EDMA data transfer during all chirps in a frame
Definition: dss_data_path.h:101
clusteringDBscanInstance_t
struct clusteringDBscanInstance clusteringDBscanInstance_t
error code for clusteringDBscan.
SNRThresholds::threshold
uint16_t threshold
SNR threshold (dB) for the range.
Definition: dss_data_path.h:228
KFtrackerInstance::invResidCovmat
float * invResidCovmat
Definition: dss_data_path.h:409
KFtrackerInstance::fixedPointScale
uint16_t fixedPointScale
Definition: dss_data_path.h:399
DSS_DataPathObj_t::chirpTypeCount
uint16_t chirpTypeCount
chirp counter modulo number of subframe
Definition: dss_data_path.h:661
maxVelEnhStruct_t
struct maxVelEnhStruct_t_ maxVelEnhStruct_t
pre-computed parameters of the max-velocity-enhancement.
MmwDemo_objRaw1D_t
struct MmwDemo_objRaw1D MmwDemo_objRaw1D_t
Parameters of CFAR detected object during the first round of CFAR detections.
MmwDemo_detectedObjActual_t::dopplerSNRdB
uint16_t dopplerSNRdB
Doppler SNR (dB)
Definition: dss_data_path.h:165
trackingInputReport::ySize
int16_t ySize
Definition: dss_data_path.h:361
detected_obj.h
clusteringDBscanOutput::numCluster
uint16_t numCluster
Definition: dss_data_path.h:370
trackingReportForTx_t::y
int16_t y
Definition: dss_data_path.h:194
DSS_DataPathObj_t
Millimeter Wave Demo Data Path Information.
Definition: dss_data_path.h:444
clusteringDBscanInstance::distances
float * distances
Definition: dss_data_path.h:326
DSS_DataPathObj_t::cfarCfgDoppler
MmwDemo_CfarCfg cfarCfgDoppler
CFAR configuration in Doppler direction.
Definition: dss_data_path.h:716
maxVelEnhStruct_t_::invVelResolutionSlowChirp
float invVelResolutionSlowChirp
Definition: dss_data_path.h:112
maxVelEnhStruct_t_
pre-computed parameters of the max-velocity-enhancement.
Definition: dss_data_path.h:109
KFtrackerInstance::measResidual
float * measResidual
Definition: dss_data_path.h:416
DBSCAN_OK
Definition: dss_data_path.h:299
DSS_DataPathObj_t::maxVelEnhStruct
maxVelEnhStruct_t maxVelEnhStruct
Max-velocity constants.
Definition: dss_data_path.h:735
clusteringDBscanReport_t
struct clusteringDBscanReport clusteringDBscanReport_t
Structure for each cluster information report .
DSS_DataPathObj_t::clusterOpFinal
clusteringDBscanReportForTx * clusterOpFinal
Final list of clusters for transmission.
Definition: dss_data_path.h:759
DSS_DataPathObj_t::invNumAngleBins
float invNumAngleBins
inverse of the numAngleBins
Definition: dss_data_path.h:694
trackingReportForTx_t::ySize
int16_t ySize
Definition: dss_data_path.h:198
DSS_DataPathObj_t::elevationIn
cmplx32ReIm_t * elevationIn
input for Elevation FFT
Definition: dss_data_path.h:513
DSS_DataPathObj
struct DSS_DataPathObj_t DSS_DataPathObj
Millimeter Wave Demo Data Path Information.
DSS_DataPathObj_t::padding
uint8_t padding
padding. .
Definition: dss_data_path.h:594
maxVelEnhStruct_t_::velResolutionFastChirp
float velResolutionFastChirp
Definition: dss_data_path.h:111
MmwDemo_objRaw1D::dopplerIdx
uint16_t dopplerIdx
Doppler index.
Definition: dss_data_path.h:126
MmwDemo_addDopplerCompensation
void MmwDemo_addDopplerCompensation(int32_t dopplerIdx, int32_t numDopplerBins, uint32_t *azimuthModCoefs, uint32_t *azimuthModCoefsThirdBin, uint32_t *azimuthModCoefsTwoThirdBin, int64_t *azimuthIn, uint32_t numAnt, uint32_t numTxAnt, uint16_t txAntIdx)
Function Name : MmwDemo_DopplerCompensation.
Definition: dss_data_path.c:4866
DSS_DataPathObj_t::peakValThresholds
RangeDependantThresh_t peakValThresholds[MAX_NUM_RANGE_DEPENDANT_SNR_THRESHOLDS]
SNR thresholds as a function of range.
Definition: dss_data_path.h:700
MmwDemo_detectedObjActual_t::sinAzimSNRLin
uint16_t sinAzimSNRLin
omega SNR (linear scale)
Definition: dss_data_path.h:166
DSS_DataPathObj_t::azimuthModCoefsThirdBin
cmplx16ImRe_t azimuthModCoefsThirdBin
Half bin needed for doppler correction as part of Azimuth processing.
Definition: dss_data_path.h:673
clusteringDBscanInstance::vFactor
float vFactor
Definition: dss_data_path.h:312
DSS_DataPathObj_t::trackingInput
trackingInputReport_t * trackingInput
Pointer to dBScan output used as input to the tracker.
Definition: dss_data_path.h:552
KFtrackerInstance::stateCovMattempP
float * stateCovMattempP
Definition: dss_data_path.h:415
mrr_config.h
MmwDemo_detectedObjActual_t::range
uint16_t range
Range (meters in oneQformat)
Definition: dss_data_path.h:158
MmwDemo_detectedObjForTx_t::speed
int16_t speed
Doppler index.
Definition: dss_data_path.h:207
MmwDemo_objRaw2D::rangeIdx
uint16_t rangeIdx
Range index.
Definition: dss_data_path.h:140
cycleLog_t_
DSP cycle profiling structure to accumulate different processing times in chirp and frame processing ...
Definition: dss_data_path.h:99
DSS_DataPathObj_t::multiObjBeamFormingCfg
MmwDemo_MultiObjBeamFormingCfg multiObjBeamFormingCfg
Multi object beam forming configuration.
Definition: dss_data_path.h:722
MmwDemo_objRaw2D_t
struct MmwDemo_objRaw2D MmwDemo_objRaw2D_t
Parameters of CFAR detected object during the second round of CFAR detections.
MmwDemo_XYcalc
void MmwDemo_XYcalc(DSS_DataPathObj *obj, uint32_t objIndex, uint16_t azimIdx, float *azimuthMagSqr)
Definition: dss_data_path.c:4982
MmwDemo_timingInfo::interFrameProcCycles
uint32_t interFrameProcCycles
number of processor cycles between frames excluding processing time to transmit output on UART
Definition: dss_data_path.h:260
DSS_DataPathObj_t::ADCdataBuf
cmplx16ReIm_t * ADCdataBuf
pointer to ADC buffer
Definition: dss_data_path.h:459
clusteringDBscanInstance::epsilon
float epsilon
Definition: dss_data_path.h:310
DSS_DataPathObj_t::azimuthModCoefsHalfBin
cmplx16ImRe_t azimuthModCoefsHalfBin
Half bin needed for doppler correction as part of Azimuth processing.
Definition: dss_data_path.h:670
clusteringDBscanConfig::minPointsInCluster
uint16_t minPointsInCluster
Definition: dss_data_path.h:338
MmwDemo_1D_DopplerLines::dopplerLineMask
uint32_t * dopplerLineMask
Doppler line bit mask of active (CFAR detected) Doppler bins in the first round of CFAR detections in...
Definition: dss_data_path.h:240
clusteringDBscanReportForTx_t::ySize
int16_t ySize
Definition: dss_data_path.h:184
DSS_DataPathObj_t::numVirtualAntElev
uint16_t numVirtualAntElev
number of virtual elevation antennas
Definition: dss_data_path.h:640
DSS_DataPathObj_t::log2NumDopplerBins
uint8_t log2NumDopplerBins
log 2 of number of doppler bins
Definition: dss_data_path.h:573
MmwDemo_detectedObjForTx_t::z
int16_t z
z - coordinate in meters. Q format provides the bitwidth.
Definition: dss_data_path.h:211
DSS_DataPathObj_t::EDMA_errorInfo
EDMA_errorInfo_t EDMA_errorInfo
EDMA error Information when there are errors like missing events.
Definition: dss_data_path.h:453
EKF_XYZ_Consts.h
Constants for the Extended Kalman Filter.
DSS_DataPathObj_t::sumAbsSlowChirp
uint16_t * sumAbsSlowChirp
accumulated sum of log2 absolute over the antennae
Definition: dss_data_path.h:495
MmwDemo_CalibDcRangeSigCfg_t
Millimeter Wave Demo DC range signature compensation.
Definition: mrr_config.h:220
trackingInputReport_t
struct trackingInputReport trackingInputReport_t
Input to tracking from the clustering output.
DSS_DataPathObj_t::maxNumObj2DRaw
uint16_t maxNumObj2DRaw
number of objects to be detected in 2D-CFAR.
Definition: dss_data_path.h:625
clusteringDBscanInstance::maxClusters
uint16_t maxClusters
Definition: dss_data_path.h:314
RangeDependantThresh_t
struct SNRThresholds RangeDependantThresh_t
These parameters allow the SNR requirements to be varied as a function of range.
KFtrackerInstance::residCovmat
float * residCovmat
Definition: dss_data_path.h:408
DSS_DataPathObj_t::numVirtualAntennas
uint16_t numVirtualAntennas
number of virtual antennas
Definition: dss_data_path.h:634
KFtrackerInstance::velAssocThresh
float velAssocThresh
Definition: dss_data_path.h:395
KFstate::validity
uint16_t validity
Definition: dss_data_path.h:427
MmwDemo_dataPathInitEdma
int32_t MmwDemo_dataPathInitEdma(DSS_DataPathObj *obj)
Definition: dss_data_path.c:2223
MmwDemo_XYZcalc
void MmwDemo_XYZcalc(DSS_DataPathObj *obj, uint32_t objIndex, uint16_t azimIdx, float *azimuthMagSqr)
Definition: dss_data_path.c:5052
DSS_DataPathObj_t::chirpCount
uint16_t chirpCount
chirp counter modulo number of chirps per frame
Definition: dss_data_path.h:652
DSS_DataPathObj_t::subframeIndx
uint8_t subframeIndx
index of the subframe to which this object belongs
Definition: dss_data_path.h:579
DSS_DataPathObj_t::dcRangeSigCalibCntr
uint8_t dcRangeSigCalibCntr
DC range signature calibration counter.
Definition: dss_data_path.h:567
KFtrackerInstance::stateCovMattemp
float * stateCovMattemp
Definition: dss_data_path.h:414
DSS_DataPathObj_t::dbScanState
clusteringDBscanReport_t * dbScanState
Pointer to dBScan output Report array.
Definition: dss_data_path.h:753
DSS_DataPathObj_t::parkingAssistNumBinsLog2
uint8_t parkingAssistNumBinsLog2
log2 of the number of bins for the parkingAssist module (used for scaling operations).
Definition: dss_data_path.h:591
DSS_DataPathObj_t::parkingAssistNumBins
uint8_t parkingAssistNumBins
Number of bins for the parkingAssist module.
Definition: dss_data_path.h:588
DSS_DataPathObj_t::timingInfo
MmwDemo_timingInfo_t timingInfo
Timing information.
Definition: dss_data_path.h:728
DSS_DataPathObj_t::twiddle16x16_1D
cmplx16ReIm_t * twiddle16x16_1D
twiddle table for 1D FFT
Definition: dss_data_path.h:462
MmwDemo_timingInfo_t
struct MmwDemo_timingInfo MmwDemo_timingInfo_t
Timing information.
DSS_DataPathObj_t::dopplerBinCount
uint16_t dopplerBinCount
chirp counter modulo number of Doppler bins
Definition: dss_data_path.h:658
maxVelEnhStruct_t_::padding
uint16_t padding
Definition: dss_data_path.h:114
DSS_DataPathObj_t::trackerScratchPadShort
int16_t * trackerScratchPadShort
Pointer to tracker scratch pad for int16_t.
Definition: dss_data_path.h:558
DSS_DataPathObj_t::adcbufHandle
ADCBuf_Handle adcbufHandle
ADCBUF handle.
Definition: dss_data_path.h:447
DSS_DataPathObj_t::parkingAssistBinsStateCnt
uint16_t * parkingAssistBinsStateCnt
The 'age' of the filtered result of the parking state. Added to make the 'smoother' visually.
Definition: dss_data_path.h:772
MmwDemo_detectedObjActual
struct MmwDemo_detectedObjActual_t MmwDemo_detectedObjActual
Detected object estimated parameters.
DSS_DataPathObj_t::parkingAssistMaxRange
uint16_t parkingAssistMaxRange
maximum range to look for obstacles. .
Definition: dss_data_path.h:601
clusteringDBscanReport::ySize
int16_t ySize
Definition: dss_data_path.h:353
MmwDemo_objRaw1D::rangeIdx
uint16_t rangeIdx
Range index.
Definition: dss_data_path.h:125
DSS_DataPathObj_t::numRxAntennas
uint16_t numRxAntennas
Number of receive channels.
Definition: dss_data_path.h:628
MmwDemo_detectedObjActual_t::dopplerIdx
uint16_t dopplerIdx
Doppler index.
Definition: dss_data_path.h:156