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.
您好!
我最近在处理器论坛中提出了一个有关选择正确 FFT 库的问题。 遗憾的是、该帖子标记为已解决、尽管它未解决我的问题。
您可以在 https://e2e.ti.com/support/processors/f/791/p/787393/2912430#2912430上找到原始帖子
提前感谢您提供有关所有五个问题的详细答案。
此致
Paul
DSPLIB 的问题是它只支持基数2、例如、具有长度为2的输入。 如果零填充不可能或不合适、则无法使用 DSPLIB。
相反、FFTLIB 支持任何长度的输入。 但是、DSPLIB 仅适用于长度大于1024 (或4 * 1024)的情况。
-为什么 FFTLIB 仅支持大于1024的输入?
-如果给定长度为150的向量、如何在 c6678上实现 FFT (r2c)?
我在 http://processors.wiki.ti.com/index.php/MCSDK_HPC_3.x_FFTW_Library 上找到了这个 wiki ,但在任何地方都找不到提到的库。 我正在使用最新的 SDK。 我可以从何处下载相应的库? 这将非常有帮助。
非常感谢您的回答。
您好、Rahul、
感谢您的详细回答!
本周、我开始将 DSPLIB 集成到我们的项目中。 在这样做的同时、我偶然发现了一些问题、这些问题涉及到了旋转因子的计算。 DSPLIB 示例中显示的计算结果不正确(TI 可能会更正该示例)。 在这篇文章的帮助下、我设法获得了更好的结果(我使用了 Twiddle 因子生成、如 DSPLIB FFT 函数的单元测试中所示、例如在 DSPF_sp_fftSPxSP_d.c 中)。
另一个有用的文档是 有关 DSPLib FFT 函数的应用报告。
为了检查我的集成是否正确、我将 FFT 结果与我们当前的实现和 Matlab FFT 进行了比较。 如以下示例所示、傅里叶系数之间存在细微差异。
(fftlength = 32;input[i]= 0.1 *(0.7 *(i % 131)+(i % 29));(0 <= i < 32);使用 DSPF_sp_fftSPxSP_r2c (...)计算)
MATLAB:
75.620000000000005 + 0.0000000000000000000i
-10.654789833129481 -24.329925890833721i
-8.559642263582479 - 7.834721154999828i
-5.675281895689369 - 1.831956695103285i
-2.7199999999999 + 0.434558441227158i
-0.377094408728717+0.5675123739745i
0.9000783558864959 - 0.450689318585172i
1.004642386192805 - 1.771532198248551i
0.180000000000000 - 2.7199999999999i
-1.086141097627343 - 2.9012827420728i
-2.238859024982983 - 2.298586870157509i
-2.8433416835553761 - 1.156097124544730i
-2.7199999999999 + 0.074558441227155i
-1.984282012028152 + 0.951077365231513i
-0.981577067299496 + 1.197381293427834i
-0.143711455435983 +0.799237038613374i
TI:
75.620003 + 0.000000 I
-10.654790 + 24.329926 I
-8.559643 + 7.834720 I
-5.675283+1.831957一
-2.720000 - 0.434558 I
-0.377094 -0.67513 I
0.900079 + 0.450688 I
1.004644 + 1.771532 I
0.180000 + 2.720001 I
-1.086141 + 2.909012 I
-2.238859 + 2.298586 I
-2.843342 + 1.156097 I
-2.720001 - 0.074559 I
-1.984282 - 0.951078 I
-0.981577 - 1.197381 I
-0.143711-0.799238 I
我的问题是:这种微小的差异是正确的还是我做的事情不是正确的?
此致
Paul
注:我更改了 tw_gen (..)中 PI 的定义 函数与 math.h 的 M_PI 进行比较