This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

AWR6843: Floating-point operation MATRIX_4x4_BWInversionfp function precision problem

Part Number: AWR6843


Dear Ti,

1. when use the demo code of the Occupancy, Call Ti occupancy library functions to calculate covariance matrix, inversion:

void ODDemo_Heatmap_aoaEstCaponBF_range(ODDemo_DataPathObj *obj)
{
/*Calculate covariance matrix and invert */
ODDemo_Heatmap_aoaEstCaponBF_covInv(
(uint8_t) (obj->fallBackToConvBFFlag ^ 1),
(uint8_t) obj->clutterRemovalFlag,
oddemo_parms.gamma,
(int32_t) obj->nRxAnt,
(int32_t) obj->nChirps,
(int32_t) obj->log2Chirps,
(int32_t *) &obj->scratchPad[0],
(cplx16_t *) obj->inputAntSamples,
(cplxf_t *) &obj->invRnMatrix[0]);
}
2. When using data reinjection, it is found that the covariance data can match, but the inverse data does not match.
3. The problem has been found. If there are very small floating-point numbers in the floating-point operation during the inversion process(Function: MATRIX_4x4_BWInversionfp), for example: (float)A = (float)B - 0.0016 The actual operation is (float)A = (float)B, which can lead to large errors in the result. I think Ti's Dsp library should be able to perform high-precision floating-point operations, how to solve this problem? Could you please provide some help?

B&R
Russell