主要内容

提出基于仿真范围的定点数据类型

类基于模拟范围数据提出定点数据类型codegen函数。

先决条件

要完成此示例,您必须安装以下产品:下载188bet金宝搏

创建一个新文件夹并复制相关文件

  1. 创建一个本地工作文件夹,例如:c: \ ex_2ndOrder_filter

  2. 改为docroot \工具箱\ fixpoint \例子文件夹中。在MATLAB命令行输入:

    Cd (fullfile(docroot, 'toolbox', 'fixpoint', 'examples'))

  3. 复制ex_2ndOrder_filter.m而且ex_2ndOrder_filter_test.m文件到您的本地工作文件夹。

    类型 的名字 描述
    函数代码 ex_2ndOrder_filter.m MATLAB入口函数
    测试文件 ex_2ndOrder_filter_test.m 测试的MATLAB脚本ex_2ndOrder_filter.m

ex_2ndOrder_filter函数

ex_2ndOrder_filter_test脚本

设置定点配置对象

创建一个定点配置对象并配置测试文件名。

Fixptcfg = code .config(“fixpt”);fixptcfg。TestBenchName =“ex_2ndOrder_filter_test”

设置C代码生成配置对象

创建代码配置对象以生成C静态库。启用代码生成报告。

CFG = code .config(“自由”);cfg。GenerateReport = true;

收集模拟范围和生成定点代码

使用codegen函数转换浮点MATLAB函数,ex_2ndOrder_filter,定点C代码.将定点数据类型的默认字长设置为16。

fixptcfg。ComputeSimulationRanges = true;fixptcfg。DefaultWordLength = 16;导出范围并生成定点代码codegen-float2fixedfixptcfg配置cfgex_2ndOrder_filter

codegen分析浮点代码。类型的输入类型ex_2ndOrder_filter函数时,转换过程通过模拟测试文件来推断类型。然后,转换过程在算法中导出变量的范围。它使用这些派生范围为这些变量提出定点类型。转换完成后,它生成一个类型建议报告。

查看范围信息

类型的类型建议报告的链接ex_2ndOrder_filter函数,ex_2ndOrder_filter_report.html

报告在web浏览器中打开。

视图生成定点MATLAB代码

codegen类的定点版本ex_2ndOrder_filter.m函数,ex_2ndOrder_filter_fixpt.m,以及调用ex_2ndOrder_filter_fixpt.这些文件在codegen \ ex_2ndOrder_filter \ fixpt文件夹在您的本地工作文件夹。

函数y = ex_2ndOrder_filter_fixpt(x) %#codegen fm = get_fimath();持久z if isempty(z) z = fi(0 (2,1), 1,16,15, fm);End % [b,a] = butter(2, 0.25) b = fi([0.0976310729378175, 0.195262145875635, 0.0976310729378175], 0,16,18, fm);A = fi([1, -0.942809041582063, 0.333333333333333333], 1,16,14, fm);Y = fi(零(大小(x)), 1,16,14, fm);对于i=1:长度(x) y(i) = b(1)*x(i) + z(1);z (1) = fi_signed (b (2) * x(我)+ z (2) - (2) * y(我);Z (2) = fi_signed(b(3)*x(i)) - a(3) * y(i);结束结束函数y = fi_signed(a)编码器。Inline ('always');If isfi(a) && ~(issigned(a)) nt = numerictype(a); new_nt = numerictype( 1, nt.WordLength + 1, nt.FractionLength ); y = fi( a, new_nt, fimath( a ) ); else y = a; end end function fm = get_fimath() fm = fimath('RoundingMethod', 'Floor', 'OverflowAction', 'Wrap', 'ProductMode', 'FullPrecision', 'MaxProductWordLength', 128, 'SumMode', 'FullPrecision', 'MaxSumWordLength', 128); end

查看生成的定点C代码

要查看C代码生成的代码生成报告,请单击查看报告类型建议报告后面的链接。

代码生成报告打开并显示生成的代码ex_2ndOrder_filter_fixpt.c

另请参阅

|

相关的话题