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.

[参考译文] AWR1843:HWA 得出的 DFT 偏差

Guru**** 2589275 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/999146/awr1843-the-deviation-of-dft-results-by-hwa

器件型号:AWR1843

您好!

 下面是我的 HWA 乘法 DFT 模式配置:

 我创建512个 adcsamples 数组、数组的每个元素都是1.it、就像[1+1J、1+1J、...1+1J ]。有512*4bytes.我的问题是:对于第一次迭代、和在 HWA 和 Python 之间是相同的、但对于第二次迭代或第三次迭代、求和是不同的。所以、我如何进行 在任何迭代中都是如此。

  e2e.ti.com/.../DFT.docx

  

  hwaParamCfg[arrayIdx].triggerMode = Hwa_trig_mode_software;
   hwaParamCfg[arrayIdx].accelMode = HWA ACCELMODE_FFT;//do FFT
   hwaParamCfg[arrayIdx].srcAddr = hwaMemAdcBufOffset; //使用FFT数据的源地址,相对于MEM0的地址偏移*
   hwaParamCfg[arrayIdx].srcAcnt = numAdcSamples-1;  //根据注释,这个值要填(采样点数- 1)、numAdcSamples = 512 */
   hwaParamCfg[arrayIdx].source.srcAIdx = sizeof (uint32_t);   //采样点的长度,使用复采样,固定为4字节*
   hwaParamCfg[arrayIdx].srcBcnt = numAdcSamples - 1;//迭代次数,DFE公式中的K值*
   hwaParamCfg[arrayIdx].srcBIdx = 0;           /*每次迭代从sample0开始*
   hwaParamCfg[arrayIdx].source.srcShift = 0;
   hwaParamCfg[arrayIdx].srcCircShiftWrap=0;
   hwaParamCfg[arrayIdx].source.srcRealComplex = HWA,高地址 samples_format_complex;// MSB为实部 ADC使用复采样,这里也将配置为复采样,ADC输入为一个32bit的数据,低地址/ LSB为虚部(Q)/(I)*
   hwaParamCfg[arrayIdx].source.srcWidth = HWA 样片宽度16BIT;         //复采样数据为16位*/
   hwaParamCfg[arrayIdx].source.srcSign = Hwa_samples_signed;               //复采样数据为有符号数*
   hwaParamCfg[arrayIdx].srcConjugate = 0;                           //非共轭*
   hwaParamCfg[arrayIdx].srcScale = 8;                               //对于16bit输入,在MSB添加srcScale bit的0,在LSB添加(8-srcScale)个0,组成一个24bit的数据*
   hwaParamCfg[arrayIdx].source.bpmEnable = 0;                              // TI内置的BPM不适用,因此在这里失能
   hwaParamCfg[arrayIdx].source.bpmPhase = 0;                               // TI内置的BPM不适用,因此在这里失能
   hwaParamCfg[arrayIdx].dest.dstAddr = hwaMemPingDestOffset;               // MMW_HWA 1D_OUT_ping、作为HWA的1D â FFT输出地址*
   hwaParamCfg[arrayIdx].dest.dstAcnt = 4095;                     //实际使用的range â fft长度- 1 */
   hwaParamCfg[arrayIdx].dest.dstRealComplex = HWA 样片_format_complex;  //使用复采样*
   hwaParamCfg[arrayIdx].dest.dstWidth = HWA 样片宽度32位;           //输入信号宽度-16位*/
   hwaParamCfg[arrayIdx].dest.dstSign = HWA 样片_已签名;                 // FFT输出为有符号数*
   hwaParamCfg[arrayIdx].dest.dstConjugate = 0;                             //无共轭*
   hwaParamCfg[arrayIdx].dest.dstScale = 8;                                 //对于16bit输出,删除LSB方向的srcScale位,同时删除MSB方向的(8-srcScale)位,组成一个16bit的数据*

   hwaParamCfg[arrayIdx].dest.dstSkipInit = 0;
   hwaParamCfg[arrayIdx].dest.dstAIdx = 8;               /*实部虚部一共占据8个字节*;
   hwaParamCfg[arrayIdx].dest.dstBIdx = 8;                   // dstBIdx设置参考radarCube *

   hwaParamCfg[arrayIdx].accelModeArgs.fftMode.fftEn = 0;

   hwaParamCfg[arrayIdx].accelModeArgs.fftMode.fftSize = 0;


   hwaParamCfg[arrayIdx].accelModeArgs.fftMode.butflyScaling = 0x3ff;  //LSB fftSize 位相关-针对所有 FFT 大小和数据大小重新访问此选项

   hwaParamCfg[arrayIdx].accelModeArgs.fftMode.interfZeroOutEn = 0;       //禁用
   hwaParamCfg[arrayIdx].accelModeArgs.fftMode.windowEn = 0;              //禁用
//   hwaParamCfg[arrayIdx].accelModeArgs.fftMode.windowStart = 0;//开始窗口 RAM
//   hwaParamCfg[arrayIdx].accelModeArgs.fftMode.winSymm = HWA FFT_WINDOW_MUST;               //非对称-在演示中,我们是否使这个对称
//   hwaParamCfg[arrayIdx].accelModeArgs.fftMode.winInterpolateMode = 0;    //fftsize 小于1K
   hwaParamCfg[arrayIdx].accelModeArgs.fftMode.magLogEn = HWA FFT_MODE_Magnite_log2_DISABLED;//禁用
   hwaParamCfg[arrayIdx].accelModeArgs.fftMode.fftOutMode = HWA FFT_MODE_OUTPUT 和 STATS;//输出 FFT 样本

   hwaParamCfg[arrayIdx].badMultiply.mode = Hwa_complex_乘 法_mode_slow_DFT;
   hwaParamCfg[arrayIdx].clamMultiply.cmpMulArgs.dft.startFreq = 0;/* demo中该值可以设置为0或者其他值*
   hwaParamCfg[arrayIdx].complexMultiply.cmpMulArgs.dft.freqIncrement = log2Approvx (numAdcSamples);/**/
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    非常抱歉耽误您的时间。

    我们的专家将调查您的疑虑、并在本周结束前返回。

    此致、

    石田

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    您的配置对我来说似乎是合适的。 我可以看到、您的输入数据仅分布在 bin 0中。 您能否使用具有不同频率的输入数据来检查您当前在 bin 0处观察到的峰值是否移动?

    此致、

    Aayush

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

     使用我的配置,您能否 验证它是否使用您提供的输入数据。Ant 检查结果总和是否正确?T 尝试不同的输入数据,结果不正确。

     谢谢!

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    只 需在 hwa 结果和 python python 计算结果之间有一些偏差。例如:k = 0 python 结果:3729-809j;k = 1、 python 结果、2088.447592.01j python 结果:2093-2370j;k=2、python 结果:30975+11j、结果:1797+1711dj、17967+17dj 结果:1749+17972t+17dj、17972t+17dj 结果:17972t+11d17d17dj、17972t+17d11+17dj、17972t+17d11d17d17d17d17d17d17dj、1797+17d17d11+17d17d17d17d17d17d11+17d17d17d17d17d17d

    e2e.ti.com/.../dft_5F00_input_5F00_test.txt;

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    我明白了。 您能否查看 freqIncrement 的代码文档? ^增量值似乎是2 μ s (14 FreqIncrement)、这可能是配置中的问题。

    此致、

    Aayush

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    hwaParamCfg[arrayIdx].complexMultiply.cmpMulArgs.dft.freqIncrement = 14-log2Approvx (numAdcSamples);/**/

    我尝试过、结果完全错误。但在我之前的配置中、我认为 LUT 导致偏差?是这样的?那么、如何在 Wa 中创建 LUT (SIN&COS)、DFT 将在其中使用 LUT。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    C:\ti\mmwave_sdk_03_05_00_04\packages/ti\alg\mmwavelib\test\lib_dftsinglebin_test 中、我使用  test_dftsinglebin ()来验证结果。两个库与 python 计算相同。但与 HWA DFT 的结果不同、存在一些错误。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    如果配置不是问题 、并且您在正确的焊球中看到结果、 则 sin、cos 的 LUT 很可能是错误的原因。 没有方法可以更改 HWA 为此使用的 LUT。

    此致、

    Aayush