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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/875238/compiler-tms320f28379d-questions-fft-library

器件型号:TMS320F28379D

工具/软件:TI C/C++编译器

您好!

我对 TMS320F28379D 的 FFT 库有一些疑问。

 

我想制作一个4096点 RFFT。

 

可以使用具有4096个点的库函数(RFFT_f32u)吗?

 

对于 RFFT 计算、需要一个包含 Twiddle 因子的表。 为了节省 RAM 中的空间、我想在闪存中使用一个 Twiddle 因子表。 RFFT… 可用于的函数使用基于闪存的 Twiddle 因子表(即 RFFT_f32ut)?

 

为了熟悉 FFT 库,我研究了一个示例(“2837x_rfft_unaligned_scaledMagnitude”、编译配置“RAM_TMU0”、编译器优化 FP_MODE=relaxed)。 在此示例中、将在运行时使用函数 RFFT_F32_SINCOSTable 计算旋转因子表。 n´t、该例程不使用 TMU0来计算旋转因子表的正弦和余弦值。 使用标准库中的 cosf 和 sinf 函数、而不是使用 TMU0。 在该函数中、使用多项式算法计算这些值。 我已经检查了结果的精度、并且发现 TMU0能够提供更好的正弦和余弦值结果。 我已经使用256 FFT 进行了测试、该测试基于2837x_rfft_unaligned_scaledMagnitude 示例和简单的矩形输入脉冲(请参阅附件)。 该测试可解决与现有定点算法的差异。

 

是否提供了使用 TMU0的计算例程(即 RFFT_F32_SINCOSTAR_TMU0)?

 

为了计算幅度、使用了 RFFT_f32s_mag_TMU0例程、该例程运行完美。

 

 

非常感谢

Ralf

e2e.ti.com/.../dok2.pdf

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

    Ralf、

    您使用的示例工程具有多个构建配置、其中包括一个可从闪存获取的 Twiddle 因子(FPU 库具有存储在.asm 文件中的必要 Twiddle 因子系数)。

    但是、使用 Twiddle 因子表时、支持的最大值为2048点 RFFT。 如果动态计算旋转因子、则支持4096 pt RFFT 甚至更高版本(我相信16384 pt RFFT、当然、在内存允许的情况下)。

    应启用 TMU0、但-fp_mode 在项目设置中错误地设置为严格而不是宽松、这就是您看不到 TMU 已启用的原因。 一旦您进行更改、就会出现。

    谢谢、

    Sira