gpt4 book ai didi

floating-point - 定点 MATLAB DSP 算法

转载 作者:太空宇宙 更新时间:2023-11-03 19:56:13 26 4
gpt4 key购买 nike

我有一个关于在 MATLAB 中为 Texas Instruments TMS320C64xx DSP 编写算法的问题:

我在 MATLAB 中草率地实现了我的过滤器。我的目标是使用 MATLAB Embedded Coder 将此算法转换为 C,然后我可以将其导入 Code Composer Studio 并加载到 DSP。

为此,我知道我需要对我的 MATLAB 代码做一些事情。例如,我需要为矩阵预先分配空间,以便它知道制作它们的大小(除非我想对可变大小的数据大惊小怪)。所有将 MATLAB 代码转换为 C'ish 代码以便 MATLAB 编码器可以将其转换的过程我或多或少都理解。但是,我不知道如何确保我的数据类型(例如我的滤波器的系数)是定点而不是浮点,以便 MATLAB Embedded Coder 将我的代码转换为仅涉及定点数据类型的 C。

所以我想我的总体问题是:

1) 如果 C64xx 被指定为 32 位定点 DSP,这意味着如果我尝试使用 float 数据类型,它的编译器会抛出错误?

2) 有没有办法确保 MATLAB Embedded Coder 不创建 float 据类型?

3) 我需要使用 MATLAB 定点工具箱吗?

谢谢大家,如果还有必要的信息来回答我的问题,请告诉我。

最佳答案

  1. 您可以使用 float 据类型,但正如前面的回答所指出的,DSP 将模拟 float ,执行速度会慢得多。这种类型的执行对于某些数值运算是可行的,其中a)你需要 float 的精度b)和/或转换为定点通常是一种痛苦(例如平方根)或并非总是可行,c) 和/或这些操作不会在您的程序中经常发生以占用大部分 CPU 周期。

  2. 是的。 MATLAB Coder 配置设置对话框中有一个复选框,位于“接口(interface)” Pane 下,上面写着“仅支持纯整数”。检查此项将确保您不会在生成的代码中获得任何 float 据类型。但是,您首先需要确保在代码中仅使用整数/定点数据类型。此选项只是确保不会生成 float - 它不会自动从您的浮点 MATLAB 代码生成代码的定点或纯整数版本。

  3. 要真正创建定点 C 代码,您首先必须将浮点 MATLAB 代码转换为定点代码。您将需要 Fixed-Point Toolbox,让您将变量指定为 FI 对象,并使用 FIMATH 设置定义操作的定点规则。一旦为所有变量和操作定义了 16/32 位定点数据类型,您就可以对其进行仿真、分析结果并对其进行迭代以调整设置以最大限度地减少溢出和舍入错误。然后您可以生成一个真正的纯整数 C 代码,其行为与您的定点 MATLAB 行为一样(或非常接近)。您在定点 MATLAB 代码和定点 C 代码之间看到的任何差异主要是由于目标编译器引入的差异。

以下指向有关此主题的录制网络研讨会的链接应该很好地介绍了使用 Fixed-Point Toolbox 的过程: http://www.mathworks.com/wbnr38838

HTH。

关于floating-point - 定点 MATLAB DSP 算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6332292/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com