定点MATLAB DSP算法

| 我有一个关于在MATLAB中为Texas Instruments TMS320C64xx DSP编码算法的问题: 我已经在MATLAB中对过滤器进行了草率的实现。我的目标是使用MATLAB嵌入式编码器将此算法转换为C,然后将其导入到Code Composer Studio中并加载到DSP上。 为此,我知道需要对MATLAB代码做某些事情。例如,我需要为矩阵预先分配空间,以便它知道要使矩阵变大(除非我想对可变大小的数据大惊小怪)。将MATLAB代码转换为C \'ish代码的所有内容,以便MATLAB编码器可以将其转换为我或多或少的理解。但是,我不知道如何确保我的数据类型(例如,滤波器的系数)是定点而不是浮点,因此MATLAB Embedded Coder会将我的代码转换为仅涉及定点数据类型的C。 所以我想我的总体问题是: 1)如果C64xx被指定为32位定点DSP,这意味着如果我尝试使用float数据类型,它的编译器将抛出错误? 2)有没有办法确保MATLAB Embedded Coder不创建浮点数据类型? 3)我需要使用MATLAB定点工具箱吗? 谢谢大家,让我知道是否还有其他信息可以回答我的问题。     
已邀请:
         您可以使用浮点数据类型,但是,正如前面的答案所指出的那样,DSP将模拟浮点,并且执行速度会慢得多。对于某些数值运算,这种执行类型是可以的,其中 a)您需要浮子的精度 b)和/或转换为定点通常是一种痛苦(例如,平方根)或总是不可行的, c)和/或这些操作不会经常在程序中占用大部分CPU周期。 是。在“ MATLAB Coder配置设置”对话框的“接口”窗格下,有一个复选框,显示“仅支持纯整数”。选中此选项可确保在生成的代码中没有任何浮点数据类型。但是,您首先需要确保在代码中仅使用整数/定点数据类型。该选项只是确保没有生成浮点数-它不会自动从您的浮点MATLAB代码生成定点或整数版本的代码。 要真正创建定点C代码,您首先必须将浮点MATLAB代码转换为定点C代码。您将需要一个定点工具箱,让您将变量指定为FI对象,并使用FIMATH设置定义定点运算规则。为所有变量和操作定义16/32位定点数据类型后,就可以对其进行仿真,分析结果并对其进行迭代以调整设置,以最大程度地减少溢出和舍入错误。然后,您可以生成一个纯整数的C代码,其行为与(或非常接近)定点MATLAB行为一样。定点MATLAB代码和定点C代码之间可能会看到的任何差异主要是由目标编译器引入的。 以下有关该主题的在线讲座的链接应该为使用定点工具箱的过程提供一个很好的介绍: http://www.mathworks.com/wbnr38838 HTH。     
        我只能回答你的第一个问题: C64xx是32位定点DSP,但是如果您使用浮点,编译器将不会抱怨。生成的代码可以很好地运行,但会慢很多,因为将模拟浮点操作。 C64xx DSP还可以执行16位定点和混合32x16位定点。使用的数据类型越小,生成的代码将运行得越快。     

要回复问题请先登录注册