你好,工程师
我使用AWR2944EVM导出了解压缩后的1D FFT数据,使用matlab进行处理验证。注意到,在使用1D FFT的数据进行2D FFT时,先对数据进行了加窗处理,我在函数DPC_ObjectDetection_execute中调用函数DPU_DopplerProcHWA_config后使用memcpy将window的数据拷贝到L3上的一个固定空间,并使用串口将该数据发出来进行处理,发现如下问题:
1.每次得到的window的数据存在不同;使用如下方式得到window的数据,int32_t * window = (int32_t *)0x88228600, memcpy(window,subFrmObj->dpuCfg.dopplerCfg.hwRes.hwaCfg.window+64,768);其中0x88228600为L3上没有被使用的一块空间的首地址,+64是因为winRamOffset = 256Bytes,且hwaCfg.window为int32_t*类型 的,768表示windowSize in Bytes。窗由函数DPC_ObjDet_GenDopplerWindow中用函数mathUtils_genWindow生成的,所以生成的窗函数不应该有差异。请问为什么得到的window不一样?
2.在matlab中将解压缩后的1D FFT数据加窗后,作2D FFT,得到的结果似乎是错的。如下所示。图1为没有加窗的2d FFT结果,图2为加窗后的2D FFT结果。
3.在matlab上按照解速度模糊的步骤,通过DDMA metric求出各rangeBin和dopplerBin对应的maxidx,与AWR2944上解速度模糊得到的maxidx比较,二者存在差异;即使disable AWR2944上2D FFT之前的加窗操作,与matlab上得到的maxidx仍存在部分不同;请问这是否是因为HWA中的FFT以及其他的定点操作引起的?