HWA工作在slow DFT mode,如何处理出mm级精细距离值的??

你好,

拿TI提供的高精度测距demo来说,demo中配置DFT resolution is 16384 ,迭代次数是64,也就是说做了64个频率点的DFT,这64点的startFreq和freq increment value

是多少呢?这部分的代码没看明白。



  • 你好,

    startFreq的配置,请参考demo代码的data_path.c里的MmwDemo_configInterp_HWA函数。

    关于slow DFT,我建议看看Radar Hardware Accelerator user gudie里面的Frequency shifter with auto-increment mode(a slow DFT mode)的相关内容。我摘抄了部分供参考:
    The increment value is calculated as 2^(14 – FFTSIZE)
    and hence the DFT resolution is 16384/2^(14 – FFTSIZE) = 2^FFTSIZE. As an example, if FFTSIZE =
    1011b, then the DFT resolution is 2048. This is equivalent to computing DFT points corresponding to
    2K size FFT grid. The highest resolution for the DFT would be obtained when FFTSIZE = 1110b (max
    allowed value), in which case the DFT resolution is 16384 (corresponding to 16K size FFT grid).
  • 你好,
    我说下我的几点理解,请帮我看看是否正确:
    1.其实是可以直接使用HWA的slow DFT mode对adc采样数据做16384点(忽略内存限制)的DFT,这样就可以一步处理出精细距离值的,但是不推荐这样做,因为花费时间很长;
    2.由于1点的DFT输出结果是8个字节(Sum of I values+Sum of Q values),受到HWA memory大小16KB的限制,DFT最多也只能做2048点的,2048点的精度还是不够的;
    3.正是因为1,2,因此实际应用中先做fft,找到最大峰的bin点,以此bin点为中心,加上前后几个点,得到最大峰的一个区域,对此区域做DFT;
    4.DFT的startFreq是[0,16383]之间的值,3中提到最大峰区域对应的是[0,1023]的子区间,将峰的起始bin点转化为对应[0,16383]的值即为最大峰对应[0,16383]的起始bin点,说白了就是将[0,1023]区间1024点插值为16384点,那么要找出1024点的每一点和16384的哪一点对应,就可以在16384点的网格上对最大峰区域做DFT了;
    5.HWA的DFT最多可做16384点,是不是就代表着测距范围<=16.383m时,精度是可以达到1mm之内的,超过16.383m测距精度就>1mm了??
    以上为我看代码及HWA的DFT部分理解总结的,请看一下理解的是否正确。
  • 你好,

    slow dft的FFT点数和HWA memory大小没有直接的关系。下面两个帖子也说明了这一点。slow dft速度慢这点你说对了。
    e2e.ti.com/.../761460
    e2e.ti.com/.../2695674

    如果你希望精度更高,可以利用FFT Stitching实现更多点的fft来提高精度。你可以参考老版本toolbox里的demo:mmwave_industrial_toolbox_4_4_1\labs\level_sensing\14xx-4k-fft
    以及Radar Hardware Accelerator - Part 2 User's Guide (SWRU527A)里4 FFT Stitching Use-Case Example的相关内容。

  • 你好,

    使用FFT Stitching,最多能做到4096点FFT。
    FFT of size 2048 and 4096 can also be accomplished using a two-step FFT stitching process.