器件型号: AWR1843BOOST
您好的团队、
目前、我们正在进行 MRR 演示。 在函数的 dss_main.c 文件中、
void MmwDemo_populateMRR(MmwDemo_DSS_DataPathObj* obj, uint16_t subframeIndx)
{
obj->numVirtualAntElev = 0; /* No elevation on the 1642 EVM */
}
由于使用 1642 雷达、因此仰角 TX 设置为 0、z 值设置为零、因为未计算该值。
void MmwDemo_XYcalc (MmwDemo_DSS_DataPathObj *obj,
uint32_t objIndex,
uint16_t azimIdx,
float * azimuthMagSqr)
{
int32_t sMaxIdx;
float temp;
float Wx, offset, sMaxIdxFlt;
float range;
float x, y;
uint32_t xyzOutputQFormat = obj->xyzOutputQFormat;
uint32_t oneQFormat = (1 << xyzOutputQFormat);
float invOneQFormat = obj->invOneQFormat;
uint32_t sinAzimOneQFormat = (1 << obj->sinAzimQFormat);
uint32_t numAngleBins = obj->numAngleBins;
/* Calculate X and Y coordiantes in meters in Q8 format */
range = ((float) obj->detObj2D[objIndex].range) * invOneQFormat;
if (azimIdx > ((numAngleBins >> 1) - 1))
{
sMaxIdx = azimIdx - numAngleBins;
}
else
{
sMaxIdx = azimIdx;
}
/* Add in the offset from the quadratic interpolation. */
offset = quadraticInterpFltPeakLoc(azimuthMagSqr, numAngleBins, azimIdx);
sMaxIdxFlt = ((float)sMaxIdx) + offset;
Wx = 2 * sMaxIdxFlt *obj->invNumAngleBins;
x = range * Wx;
/* y = sqrt(range^2 - x^2) */
temp = range*range - x*x;
if (temp > 0)
{
y = sqrtsp(temp);
}
else
{
y = 0;
}
/* Convert to Q8 format */
obj->detObj2D[objIndex].x = (int16_t)ROUNDF(x * oneQFormat);
obj->detObj2D[objIndex].y = (int16_t)ROUNDF(y * oneQFormat);
obj->detObj2D[objIndex].z = 0;
obj->detObj2D[objIndex].sinAzim = (int16_t)ROUNDF(Wx * sinAzimOneQFormat);
obj->detObj2D[objIndex].sinAzimSNRLin = computeSinAzimSNR(azimuthMagSqr, azimIdx, obj->numVirtualAntAzim, obj->numAngleBins, obj->xyzOutputQFormat);
}
但使用 1843 雷达时也同样适用。
您能否建议如何启用 z 值计算?
谢谢。此致、
Poorneka T