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.

Compiler/AWR1642: How to select the FFT percision?

Part Number: AWR1642

Tool/software: TI C/C++ Compiler

Hi all,

    We would like to use AWR1642 to test our waveform design. We wonder how to select a proper range FFT percision and Doppler FFT percision? Is16bit in both dimension enough?

We would like to know the principle to choose FFT precision. Thanks a lot!

  • See section named "FFT performance" in the document titled "Introduction to the DSP subsystem.. " in the Application Notes section at http://www.ti.com/product/AWR1642/technicaldocuments . The out of box (oob) demo uses 16x16 for 1D and 32x32 for 2D (doppler) and 3D (angle) FFTs.

  • Note you can also use floating point FFTs particularly for 2D and beyond as C674x supports both floating and fixed point. E.g the traffic monitoring implementation uses floating point FFT for 2D and beyond, see section "Floating-Point Versus Fixed-Point Implementation" at www.ti.com/.../tidud31.pdf
  • Hi Piyush,

    Thanks for your reply. I have studied the document titled "Introduction to the DSP subsystem.. " . However I am still not very clear about how to choose the range FFT resolution and the Doppler FFT resolution respectively.
    In my waveform design, the number of range FFT points is 1024. According to the SQNR performance discussion, the ideal SNR after range FFT is 10*6 + 1.76 + 10*log10(1024) = 92dB. The SQNR of 1024 points DSP_fft16*16 is 84.2. Is that means DSP_fft16*16 is not enough in our design.
    Another question is how to select the Doppler FFT resolution. Can you give us an design example to explain it more specifically? Thanks a lot.
  • You are right in your conclusion, if you cannot tolerate the SNR degradation at 1024 for your application, then you will need to consider the next best alternative which is 16x32 fft (which has SQNR at 1024 > 92 dB), which is not so bad it seems because it still does not expand L3 storage (input and output are still 16-bit) but requires a doubling of twiddle table storage compared to 16x16 and will have higher MIPS also.

    Regarding resolution, firstly just to be on the same page, when we refer to resolution in radar, we mean the ability to discern the presence of two objects simultaneously in the scene with a separation in the dimension of interest (range or doppler) by the resolution [see https://training.ti.com/mmwave-training-series . The range resolution is determined simply by the bandwidth (resolution = c/2B) that you choose for your configuration and velocity resolution by the total chirping time [includes idle times]. On the other hand, accuracy (how close a measurement is to the ground truth) can be much higher than the resolution, and higher accuracy can be obtained by interpolation e.g you can do a bigger FFT with zero-padding and get higher accuracy [accuracy will ultimately be limited by SNR]. The choice of the profile depends on how you are trading off max range, range resolution, max velocity, velocity resolution, and acquisition time which depends on your application requirements and what the 1642 device can do and FMCW radar basics. The out of box demo visualizer GUI allows you to play with these at a high level and generates a profile that can be played to the demo, you can experiment using this GUI to generate a profile that fits your application or you can create one manually after learning all the parameters of the profile from the ICD document and knowing the basics of how the resolution, ranges etc get determined [mmave training series].

    A profile will specify the number of ADC samples during each chirp and the number of chirps. In the demo, the range FFT size is next power of 2 of the number of adc samples and doppler FFT size is the number of virtual chirps (total physical chirps = Ntx * total virtual chirps for TDM-MIMO with Ntx transmitters). Presently demo does now allow number of virtual chirps to be non-power of 2. The FFT size can be increased to a higher number than that determined by the number of adc samples for range or the number of virtual chirps in case of doppler to get a higher accuracy as mentioned above with zero-padding but the demo presently does not do it, so you would have to change the code if you are interested in higher accuracy or change the profile to increase number of adc samples or number of chirps. We try to avoid using the terminology "FFT resolution" in radar to avoid the confusion between resolution and accuracy.