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.

[参考译文] controlSUITE Texas 库中的 RFFT32_SPLIT -解释它的作用是什么?

Guru**** 2617245 points

Other Parts Discussed in Thread: CONTROLSUITE, C2000WARE

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/694670/rfft32_split-in-controlsuite-texas-library---explain-what-it-does

器件型号:TMS320F2808
Thread 中讨论的其他器件:controlSUITEC2000WARE

有关函数 RFFT32_SPLIT()函数的 controlSUITE 文档非常糟糕。

论坛中有一个主题:带有指向文档的链接,该链接建议文档对此进行解释,但访问该文件需要密码。 不知道如何访问它。

链接为:

 e2e.ti.com/support/microcontrollers/c2000/f/171/p/554522/2029513?keyMatch=fft%20split&tisearch=Search-EN

(使用 https 作为前缀://-我必须删除它以阻止编辑器破坏文本。)

感谢您的任何帮助。

谢谢!

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

    尊敬的 Peter:

    很抱歉、您必须面对文档方面的问题。 我想在此阐述几点:

    首先、我想澄清一点、分割函数(CFFT_UNPACK)仅在 VCU 库中可用。 如果您使用的是 FPU 库、您将无法访问它。

    第二、下面是一些有关解压功能的更多信息:

    *在 N 点复频谱上运行 pack 函数以导出
    受逆向 FFT 影响的 N/2点复频谱、从而提供
    N/2点实信号
    *必须使用 N/2的 FFTize (即
    逆向 FFT 的大小)调用 pack 函数 在 pack 函数之后运行的函数 

    这基本上意味着、要执行 RFFT、您不需要特殊的 rfft 函数。 您可以执行 CFFT、然后调用 unpack、然后使用逆向 FFT 获取 RFFT。 唯一会有所不同的是您在每个步骤中执行的 FFT 大小。 有关使用的公式的更多详细信息、请参阅 \ti\c2000\C2000Ware_1_XX_03_00\libraries\dsp\vcu\c28\source\vcu2\FFT\vcu2_CFFT_utils.asm

    第三、关于链接、我确认了错误、开发人员很快就会纠正。 我将使用新链接更新您。

    最后、我们将转向 C2000Ware 以获取我们的新软件版本。 您将能够在 C2000Ware 中找到最新的代码和文档。 如果您可以下载并参阅 C2000Ware 以获取新产品版本、那将会非常棒。

    希望这在某种程度上对您有所帮助。

    -Ritvik

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

    Ritvik、

    感谢您的回复很快。

    我们使用的是 controlSUITE 定点 DSP 库; C:\ti\controlSUITE\libs\DSP\FixedPointLib\v1_20_00_00。

    在此库(C:\ti\controlSUITE\libs\DSP\FixedPointLib\v1_20_00_00\source)中、有一个源文件:RFFT32_SPLIT.asm、它包含一些注释、这些注释描述了它的功能。我已将其复制为下面的屏幕截图: 对 split()的注释和函数进行更多解释将会很有帮助。

    我们按照 Texas RFFT 示例 rfft.c (在 C:\ti\controlSUITE\libs\DSP\FixedPointLib\v1_20_00_00\examples_ccsv5\2833x_FixedPoint_RFFT\source 中)的建议使用此函数、下面是 rfft.c 的一部分的屏幕截图、其中包含 split.函 数(rfft)。

    因此,Texas 建议使用 split()。 您对 split()有更详细的解释吗?

    我们有一些需要解决的相位和幅度问题、这些问题需要详细了解正在使用的数据以及如何使用。

    非常感谢、

    Peter Walker

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

    以下是上一帖子遗漏的屏幕截图。

    RFFT32_split.asm



    RFFT.c:

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

    感谢 Peter 提到您正在使用定点库。 我感到困惑、因为您共享的链接指向 VCU 库。  

    说到您的问题、SPLIT 函数与我之前提到的解压函数相同。 并且过程保持不变。 由于库中的差异、只有名称和代码发生了变化。 基本原则基本上是相同的。

    现在、相位和幅度问题可能会由于许多原因而出现、我将说明您需要注意的一些基本事项:

    1. 检查 FFT 大小、然后检查分配给缓冲区的大小。
    2. 如果要为数据段分配正确的大小、请检查链接器命令文件:"FFTipcb"和"FFTipcbsrc"
    3. 检查您是否在链接器文件中使用了正确的对齐方式。 对于实数 FFT、变量 FFT_align 必须等于 FFT 点数的2倍。
    4.  在右侧的 Project Properties->Build->C2000 Linker->File Search Path 中 、包含名为"rts2800_ml.lib"的库。  

    请检查这些内容是否正确。 如果可能、我将需要一些初始化代码的快照以及调用函数的序列、以便我可以进一步帮助您。

    -Ritvik

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

    尊敬的 Peter:

    我已经听过一个多星期了,所以我假设您能够解决您的问题。 如果情况并非如此,请拒绝此解决方案并回复此主题。 如果此主题被锁定、请制作一个描述问题当前状态的新主题。

    Ritvik

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的 Ritvik:
    我真正需要的是对 rfft.split()操作的详细说明,它是一个文本说明,而不仅仅是对汇编器代码列表的引用。
    正如我在上面所说:
    "我们按照德州 RFFT 示例 rfft.c (位于 C:\ti\controlSUITE\libs\DSP\FixedPointLib\v1_20_00_00\examples_ccsv5\2833x_FixedPoint_RFFT\source)的建议使用此函数、rfft.c 的一部分的屏幕截图如下所示-具有 split.t 函数(rfft)。"
    谢谢你。

    此致、

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

    尊敬的 Peter:

    我向编写文档的开发人员进行了检查。 他也没有该链接中提到的文档的副本。 恐怕您需要查找 TI 外部的一些资源才能获取这些信息。 我仍将尝试从其他来源获取该文件,但机会是暗淡的。 您必须从我指向的文件中的代码注释中获取提示。

    -Ritvik