TI E2E™ 设计支持论坛将于 5 月 30 日至 6 月 1 日进行维护。如果您在此期间需要技术支持,请联系 TI 的客户支持中心寻求帮助。

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:TMS320F28379D Delfino 同步 ADC 采样 FFT/DFT 软件库

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/765263/compiler-tms320f28379d-tms320f28379d-delfino-simultaneous-adc-sampling-fft-dft-sw-library

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

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

您好!

我的客户计划在8k 采样点的最大1Msps 同时运行4个16位 ADC、并对收集的数据执行 DFT/FFT。

我对 C28x_FPU_DSP_Lib 中的 FFT 方法有一些疑问:

 

  1. 在调用 RFFT_F32()函数之前、所有采样点数据都必须缓冲在内存中是否正确?
  2. 如果 Q1语句有效、我是否可以知道我们的用例(4x ADC、N=8k、对齐/未对齐 FFT)所需的存储器大小是多少? F28379D 存储器是否足以在没有 XRAM 的情况下支持此操作?
  3. RFFT_F32()在 fpu_rfft.h 状态下的说明:该函数支持 N-pt N = 2^{n}、n = 5:10、它是否支持 n = 13 (N = 8k = 2^13)?
  4. RFFT_F32 (u)和 RFFT_ADC_F32 (u)之间有何区别?
  5. 根据我的理解、F28379d 能够并行运行4通道 FFT、是否有可用的示例代码源可供参考?
  6. TI 是否有优化的 DFT 计算方法或实施代码?
  7. 我们的用例是否有更好的方法(性能/内存使用)? 例如、在获取 ADC 读数时动态使用 DFT/FFT 计算器。

此致、

Leo

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

    我将与您一起尝试解决这些问题。 有很多、所以你要给我一两天时间来回顾和回复。

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

    我对您在下面的问题的答复。

    1.在调用 RFFT_F32()函数之前,所有采样点数据都必须缓冲在内存中是否正确?
    是的、这就是2837x_RFFT 示例具有大小为 FFT_size 的 RFFTin1Buf 的原因。
    但是、您会注意到2837x_RFFT_ADC 和2837x_RFFT_ADC_RT 示例具有大小为2 x FFT_SIZE 的 RFFTin1Buf。 这是因为它们以乒乓方式实现 FFT、其中 FFT 是库处理 Ping 缓冲器、ADC 填充 Pong 缓冲器、反之亦然。

    但是、请注意、假设使用器件的12位 ADC。 如果安装了正确的挂钩、则使用16位 ADC (外部)不会出现问题。

    2.如果 Q1语句有效、我是否可以知道我们的用例(4x ADC、N=8k、对齐/未对齐 FFT)所需的存储器大小是多少? F28379D 存储器是否足以在没有 XRAM 的情况下支持此操作?

    您可以自己进行此计算、并参阅器件数据表以检查是否满足存储器要求。 只需注意、对于对齐的情况、您将需要输入缓冲器大小加倍。

    3.RFFT_F32()在 fpu_rfft.h 状态下的描述:该函数支持 N-pt N = 2^{n}、n = 5:10、它是否支持 n = 13 (N = 8k = 2^13)?

    是的、可以。 需要更新用户指南(我已经为此提交了 JIRA)。 用户指南是指可用于调整因子预计算表的大小。 除此之外、还必须通过函数调用计算旋转因子表。

    RFFT_F32 (u)和 RFFT_ADC_F32 (u)之间有何区别?

    请阅读用户指南的第5.11和5.12节。 除了我在对上面问题1的答复中提到的内容之外、您还将在用户指南中注意到、ADC 情况使用单独的结构来保存输入数据。

    5.根据我的理解,F28379d 能够并行运行4个通道 FFT,是否有可用的示例代码源可供参考?
    C2000Ware 库中的这些示例都是我们拥有的。 但从单通道到多通道的扩展在软件中将是更直的。 限制是内存和 MIPS。 如果有足够的存储器和 MIPS (以要计算 FFT 的采样率)、则可以运行 FFT。

    6. TI 是否有优化的 DFT 计算方法或实施代码?
    不确定我是否理解该问题。 FFT 是计算 DFT 的优化方法。 客户可查看 FFT 库汇编源(C:\ti\c2000Ware_1_00_06_00\libraries\DSP\FPU\c28\source\FFT)

    7.对于我们的用例、是否有更好的方法(性能/内存使用)? 例如、在获取 ADC 读数时动态使用 DFT/FFT 计算器。
    正如我在回答第1个问题时所说的,即时基本上是乒乓式做法的情况。 如果您在1Msps 缓冲8k 样本、则会有一定的延迟(8ms)。

    如果您的问题已得到解答、您可以将我的答案标记为"已验证"、这将有所帮助。

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

    您好,Sira,


    关于上面的问题4、您提到了用户指南的第5.11和5.12节、即 ADC 用例使用单独的结构来保存输入数据。 我是否可以知道您所指的是哪种数据表/用户指南? 请提供建议。 谢谢。

    此致、
    Leo

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

    C:\ti\c2000\C2000Ware_1_00_06_00\libraries\DSP\FPU\c28\docs 中的用户指南。

    谢谢、
    Sira