Since the data received from the ADC is only real values, so does the HWA performs complex FFT and gives symmetrical output or performs only real FFT? Does the output requires FFT shift to arrange the frequency components or already it is applied?
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.
Since the data received from the ADC is only real values, so does the HWA performs complex FFT and gives symmetrical output or performs only real FFT? Does the output requires FFT shift to arrange the frequency components or already it is applied?
Hi,
We're investigating this now. Thank you for your patience. We will have a response by tomorrow.
Best,
Nate
Hi,
The FFT in HWA is complex by nature. So for real ADC samples case the imaginary part in the FFT core is set to zero. We configure input as real:
hwaParamCfg.source.srcRealComplex = HWA_SAMPLES_FORMAT_REAL;
Then on the output side we output only the first half of the range FFT:
hwaParamCfg.dest.dstAcnt = pDPParams->numRangeBins-1;
where numRangeBins is set to half of rangeFftSize.
And of course we configure the FFT size as the log2 of the size:
hwaParamCfg.accelModeArgs.fftMode.fftSize = mathUtils_ceilLog2(pDPParams->rangeFftSize);
All code referenced can be found in rangeprochwa.c.
Best,
Nate