Hi Team,
Use the AWR2944EVM to export the uncompressed 1D FFT data and use matlab for process validation. When using data from 1D FFT for 2D FFT, the data is windowed first. After calling the function DPU_DopplerProcHWA_config in the function DPC_ObjectDetection_execute, use memcpy to copy the data from the window to a fixed space on L3 and send that data out for processing using the serial interface. There are some issues:
1) The data for each window is different. Use the following to get the data for window:
Int32_t * window = (Int32_t *)0x88228600, memcpy(window,subFrmObj->dpuCfg.topplerCfg.hwRes.hwaCfg.window+64,768)
Where 0x88228600 is the first address of a space not being used on L3, and +64 is because winRamOffset = 256 bytes. And hwaCfg.window is of type Int32_t*, 768 represents windowSize in bytes. Windows are generated using the function mathUtils_genWindow in the function DPC_ObjDet_GenDopplerWindow, so the resulting window functions should not be different. But why does the window get different?
2) After windowing the decompressed 1D FFT data and then make 2D FFT in matlab, the result seems to be wrong as follows:
(The 2D FFT result without windowing)
(The 2D FFT result with windowing)
3) Follow the steps to solve for velocity ambiguity on the Matlab to find the maxidx for each rangeBin and dopplerBin from the DDMA metric. The difference was found when compared to the maxidx obtained by the smearing speed on AWR2944. Even though disable the windowing before 2D FFT on AWR2944, it is still somewhat different from the maxidx obtained on matlab.
Is it due to FFT in HWA and other fixed point operations?
Could you help check this case? Thanks.
Best Regards,
Cherry