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.

[参考译文] TMS320F28379D:关于 FFT 计算误差

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/950573/tms320f28379d-about-fft-calculation-error

器件型号:TMS320F28379D
主题中讨论的其他器件:C2000WARE

您好!

我指的是 C2000Ware FFT 示例。
如果 C2000的 FFT 计算结果与 Matlab 的 FFT 计算结果之间的绝对误差在0.01之内、则认为没有问题。

我想知道为什么认为 FFT 库的计算误差没有问题。

・为什么 FFT 计算结果在 MATLAB 和 C2000之间存在误差?
・您为什么选择绝对误差而不是相对误差?
・为什么要将误差容差设置为0.01 (差值)?
・允许0.01的物理含义是什么?

※:C:\ti\c2000Ware_3_02_00_00\libraries\DSP\FPU\c28\examples\FFT\2837x_CFFT

对于(i = 0;i < 2*CFFT_SIZE;i++){
 if (fabs (CFFTgoldenOut[i]- HND_CFFT->CurrentIntr[i])<= Epsilon){
  pass ++;
 }否则{
FAIL++;
 }

提前感谢。

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

    您好!  

    已将您的查询转发给 FFT 专家。  但是 、由于假期、请预计延迟回复至下周二。  感谢您的耐心等待。

    此致

    Siddharth

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

    您好!

    [引用 user6228344"]

    ・为什么 FFT 计算结果在 MATLAB 和 C2000之间存在误差?
    ・允许0.01的物理含义是什么?

    [/报价]

    如果您查看/FPU/c28/source/cfft32.asm 中的文件、您会发现算法使用三角函数、乘法和除法运算、当我们处理 C28x+FPU32 (单精度)上运行的复杂 FFT 算法时、这些算法会始终导致精度损失、从而优先处理高效实时操作。 MATLAB 不在这些限制条件下运行、因此您可以期望 MATLAB 具有更高的精度。

    [引用 user6228344"]

    ・ 您为什么选择绝对误差而不是相对误差?
    [/报价]

    目的是确定计算值是否在预期值的特定范围内。 因此、绝对误差是这种情况的更好指标。

    [引用 user6228344"]

    ・ 为什么要将误差容差设置为0.01 (差值)?
    [/报价]
    根据经验选择容差值作为示例预期输出值的百分比。

    谢谢、

    Shantanu

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

    感谢你的答复。

    如果使用 FPU64、我是否会获得与 Matlab 相同的 FFT 计算结果?

    此外、请告诉我们使用了何种经验规则来确定容差。

    提前感谢。

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

    [引用 user6228344"]

    如果使用 FPU64、我是否会获得与 Matlab 相同的 FFT 计算结果?

    [/报价]

    不、您不会。 所使用的算法大致相同。 您显然会得到更精确的答案、但在精度方面、差别不大。

    [引用 user6228344"]

    此外、请告诉我们使用了何种经验规则来确定容差。

    [/报价]

    没有使用具体的经验规则。 选择预期值的百分比(例如5%)是一个问题、具体情况因具体情况而异。  

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

    感谢你的答复。

    我了解到 FFT 函数会牺牲一定的精度来优先处理时间。