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.

[参考译文] TMS320C6678:选择合适的 FFT 库

Guru**** 2539500 points
Other Parts Discussed in Thread: TMS320C6678, FFTLIB

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/787393/tms320c6678-choosing-the-right-fft-library

器件型号:TMS320C6678
主题中讨论的其他器件: FFTLIB

您好!

我想在 TMS320C6678上使用 FFT 函数的实现(我希望计算仅在一个内核上运行)。

除此之外、我还需要一个能够执行以下任务的 FFT 库:

  • 计算基数2或基数4的傅里叶变换

  • 仅在一个内核上进行计算
     
  • 处理实际输入并计算复杂输出
     
  • 执行逆向 FFT
     
  • 能够处理高达2^15数据点或 更多数据点的窗口尺寸
     

在搜索 TI 的库时、我偶然发现了三种不同的(?) 库:

我目前非常困惑这三种方案之间的区别是什么。 因此,我有以下问题:

  • 这三个选项之间有何区别?

  • 我如何使用它们(示例是完美的)?
     
  • 哪一个是符合我要求的最佳选择?
     

除此之外、关于 FFT lib v3.1、库的哪个部分需要 libarch 或 EDMA 传输? 这是否会干扰使用 CSL 触发的 EDMA 传输?

非常感谢您的参与

Paul

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

    安装最新的 Processor SDK RTOS 时:
    www.ti.com/.../processor-sdk-c667x

    您已在~μ C/ti 文件夹中安装了 fftlib_3_1_0_0。 这是您应该与处理器 SDK 一起使用的库。

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

    感谢您的快速回答。 不幸的是、这不能解决我的问题。 我仍有以下问题:

    -这三个选项之间有何差异(尤其是在 DSPLIB 中的 fftlib 和 FFT 实现之间)
    -如果我想将 fftlib_3_1_0_0包含在我的项目中,它还包括"libarch"和"EDMA3"。 这些库需要 fftlib 中的哪些函数?
    EDMA3库是否干扰 CSL 的 EDMA?
    您能否提供有关如何使用这些功能的示例?

    谢谢!

    Paul
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    FFTLIB 适用于大于64K FFT 的用户以及希望利用多核 DSP 功能的用户、因为 FFTLIB 使用 OpenMP 在多个内核之间部署 FFT 计算。 为了优化实现、FFTLIB 使用 EDMA 将数据移动到 DSP 内部存储器、从而减少外部存储器的加载/存储延迟、DSP 可以专注于计算。

    EDMA 库是指我们在 Processor SDK RTOS 中提供的 EDMA3 LLD 驱动程序

    路径中的 FFTLIB 中提供了使用这些函数的示例:
    fftlib_3_1_0_0\packages/ti\fftlib\src

    所有名称为_d.c 的文件都是 FFLTIB 函数的单元测试源、这些函数生成输入、基数、然后将输出与基准输出进行比较。

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

    感谢您的回答!

    首先,我们不会为应用程序使用 OpenMP。
    只是为了确保我理解正确:FFTLIB 不适合 windowSizes < 64K 应用程序?
    使用 windowSizes < 64K 时、我应该为我的用例使用哪些 FFT 函数。 FFTlib 函数在函数名或 DSPLib FFT 函数中没有"omp"?

    在我的项目中、我不使用 L2SRAM 作为缓存、我将其用作显式寻址的存储器(包含数据和可执行程序内容)。 这是否会干扰 FFTlib 或 DSPLIB 中 FFT 函数的实现? 换句话说、FFT 函数是否覆盖 L2SRAM?

    如前所述、我们使用来自 CSL 库的 EDMA。 正如您所说、FFTlib 使用 EDMA3库中的 EDMA。 这就提出了这两个库是否相互作用的问题?

    此致

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

    我还有另一个问题:是否有任何 TI FFT 函数能够就地运行? 输入矢量等于输出矢量? 或者输入和输出矢量是否始终需要插入?

    非常感谢!

    Paul