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.

[参考译文] AM2754-Q1:NFFT 限制、即 FFTLIB 中的 FFT 长度/大小

Guru**** 2419530 points
Other Parts Discussed in Thread: FFTLIB

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1541656/am2754-q1-limitation-on-nfft-i-e-fft-length-size-in-fftlib

器件型号:AM2754-Q1
主题中讨论的其他部件:FFTLIB

工具/软件:

您好团队:

我 根据实数到复数内核  FFTLIB_fft1d_i32f_c32fc_o32fc 创建了一个 C7x 优化 FFT 计算包装器 、用于运行基于 C7x_0 的应用程序。 在对各种 FFT 长度进行测试时、观察到对于 N=32、我们得到返回 4 (FFTLIB_ERR_INVALID_DIANCE)。 检查内核源代码、即 freertos_sdk_am275x_11_00_00_16/source/fftlib/ft_fft7x/FFTLib_fft1d_i32f_c32fc_c32fc/c71/FFTLIB_fft1d_i32f_c32fc_cp_fcp src 函数、我看到 该函数为 checkfc_32fc_cp_fcp(注释 i32fc_cp_cp_fc_cp_fc_cc)


  
否则 if (bufParamsX->dim_x < 64 * 2){/*最小点数为 64 */
   STATUS = FFTLIB_ERR_INVALID_DIANCE;
   }

因此、我想:
  1. 确认、根据源代码、显然  不支持我的 FFT 长度 N=32(但是 在 FFTLIB 文档中找不到此信息 ) 以实现 C7x 优化实施。 对吗?  FFTLIB_fft1d_i32f_c32fc_o32fc 内核驱动程序的测试用例似乎也不包括 N=32。
  2. 知道为什么 DIM_x 的检查是 NFFT * 2? 我们是否 也会将 bufParamsData.dim_x 存储为 NFFT * 2? 我已经 为我的 FFT 包装器遵循了测试驱动程序 freertos_sdk_am275x_11_00_00_16/source/fftlib/test/fft7x/FFTLib_fft1d_i32f_c32fc/FFTLib_fft1d_i32f_c32fc_o32fc_d.c、似乎设置了 fft_paramsData.bufx 。 我是正确的

如果能回答上述问题以更清楚地了解 FFTLIB、我将不胜感激。

此致、
Sreekanth

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

    您好、Sreekanth、

    确认、根据源代码、很明显、我的 FFT 长度 N=32 不受支持(但是 在 FFTLIB 文档中找不到此信息 ) 以实现 C7x 优化实施

    是的、没错。 优化版本不支持 N=32 的 FFT 长度、长度小于 64 的情况下、该库属于自然的 C 语言实现。 这样做是因为小于 64 的长度不会获得任何性能 — 由于流引擎的使用效率不高。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    了解为什么检查 dim_x 是否适用于 NFFT * 2? 我们是否 也会将 bufParamsData.dim_x 存储为 NFFT * 2? 我已经 为我的 FFT 包装器遵循了测试驱动程序 freertos_sdk_am275x_11_00_00_16/source/fftlib/test/fft7x/FFTLib_fft1d_i32f_c32fc/FFTLib_fft1d_i32f_c32fc_o32fc_d.c、似乎设置了 fft_paramsData.bufx 。 我是否正确遵循

    您可以正确地遵循 FFTLIB_fft1d_i32f_c32fc_o32fc_d.c 进行包装器实现。  复数以交错顺序存储在 输出缓冲区中 、即 (real1、imag1、real2、imag2、...)、因此需要 NFFT * 2。 对于输入、 dim_x 不需要为 NFFT * 2。

    谢谢、

    Shreyansh

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

    尊敬的 Shreyansh:

    感谢您的回答。 是否有一个文档可供我参考、该文档捕获此类详细信息? 在库文档中找不到这些内容。 该库明确说明了一些有关 FFT 长度的信息会大有帮助。

    此致、

    Sreekanth

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

    您好、Sreekanth、

    感谢您的回复。 是否有一个文档可供我参考、其中包含这些详细信息?

    我不知道有任何包含此内容的文档。 我已在内部与团队讨论过该问题、计划在未来版本的用户指南文档中包含此类信息。
    谢谢、
    Shreyansh