你好,
程序是PA_18XX,如果不使用多普勒维度FFT,直接将实部和虚部转换为浮点数,这么改有什么不对吗?运行CFAR时检测点高达145个,原来只有十几个,
如果这样更改存在数据上的错误,有什么建议吗
for (rangeIdx = 0; rangeIdx < obj->numRangeBins; rangeIdx++)
{
//鎸夌収璺濈缁村皢鏁版嵁浠ワ紙铏氭嫙澶╃嚎*澶氭櫘鍕掍粨锛夊皢鏁版嵁浠巖adarCube鎼繍鍒版殏瀛樹箳涔撶紦瀛樺尯
copyBlock((uint32_t *)&obj->radarCube[rangeIdx * obj->numVirtualAntennas * obj->numDopplerBins], (uint32_t *)&obj->dstPingPong[0], obj->numDopplerBins * obj->numVirtualAntennas);
radarDopplerProcessRun(obj->radarProcessHandle, (cplx16_t *) &obj->dstPingPong[0], (float *) obj->dopplerProcOut[PING]);
//闂撮殧璺濈浠撲紶閫佸鏅嫆浠� 鐢ㄤ簬璺濈閫熷害鐑浘
copyTranspose((uint32_t *)obj->dopplerProcOut[PING], (uint32_t *)&(obj->radarProcConfig.heatMapMem[rangeIdx]), obj->numDopplerBins, 0, obj->numRangeBins, 1);
}
uint8_t radarDopplerProcessRun(void *handle, cplx16_t * pDataIn, float *pDataOut)
{
radarProcessInstance_t *processInst = (radarProcessInstance_t *)handle;
int32_t i,j;
float *tempDataOut;
tempDataOut=pDataOut;
for (j = 0; j < processInst->nRxAnt; j++)//虚拟天线个数
{
//按照天线维度将(虚拟天线*多普勒仓)数据展开
// processInst->dopplerInput->dopplerProcInput[j] = (void * )&pDataIn[j * processInst->fftSize2D];
pDataOut=tempDataOut;//累加四个天线的数据,并转换为float
for( i = 0; i <((int32_t)processInst->fftSize2D - 1); i++)
{
*pDataOut += (float)pDataIn[j * processInst->fftSize2D].real;
pDataOut++;
*pDataOut += (float)pDataIn[j * processInst->fftSize2D].imag;
pDataOut++;
pDataIn++;
}
}
// /*输入标志,指示调用模块仅用于重新生成 2DFFT 输出目的。*/
// processInst->dopplerInput->reGen2DFFTout4AoAFlag = 0;
// /*输入标志,用于启用TDM MIMO的多普勒补偿(如果设置为1),
// * 并且如果reGen2DFFTout4AoAFlag设置为1*/
// processInst->dopplerInput->dopplerComp4TDMMimo = 0;
//
// processInst->dopplerProcErrorCode = RADARDEMO_dopplerProc_run(
// processInst->dopplerFFInstance,
// processInst->dopplerInput,
// pDataOut);
// return((uint8_t)processInst->dopplerProcErrorCode);
}