主要内容

加速定点仿真

这个例子展示了如何加速定点算法使用fiaccel函数。代码加速度提供了优化加速定点算法通过墨西哥人文件的生成。定点设计师™提供了一个方便的功能fiaccelMATLAB代码转换为一个墨西哥人功能,可大大加快你的定点算法的执行速度。在本例中,您从MATLAB®代码生成一个墨西哥人函数,运行生成的墨西哥人功能,用MATLAB代码执行速度仿真进行比较。

描述的例子

这个例子使用一阶反馈循环。铸造输出信号类型可以防止无限增长。输出信号是推迟了一个示例输入信号和反馈抑制。

检查MATLAB®反馈函数的代码

MATLAB函数执行反馈回路在该文件fiaccelFeedback.m。下标赋值到输出y投到y的类型和防止无限增长。

函数[y, z] = fiaccelFeedback (x, y, z)n = 1:长度(x) y (n) = x (n) - * z;z (,) = y (n);结束结束

以下变量中使用这个函数:

  • x是输入信号向量。

  • y是输出信号向量。

  • 一个反馈增益。

  • z是单位延迟输出信号。

创建输入信号和初始化变量

clearvars

把随机数字生成器的设置为默认值。

rng (“默认”);

输入信号。

x = fi(2 *兰德(1000 1)1,真的,16日15);

反馈增益。

一个= fi(15) 0.9,真的,16日;

初始化输出。分数选择长度,防止溢出。

y = fi(0(大小(x)),真的,16日12);

初始化输出延迟。

z =投(0,“喜欢”,y);

运行解释MATLAB和时间

抽搐日元= fiaccelFeedback (x, y, z);t1 = toc;

构建的墨西哥人版本反馈代码

申报反馈增益参数一个常数代码生成。

fiaccelfiaccelFeedbackarg游戏{x, coder.Constant (a), y, z}- ofiaccelFeedback_mex

墨西哥人的版本和时间运行

一旦加载了墨西哥人文件在内存中运行。

fiaccelFeedback_mex (x, y₁, z);

再次运行。

抽搐y2 = fiaccelFeedback_mex (x, y, z);t2 = toc;

加速比

仿真比较了墨西哥人与MATLAB代码执行速度。

ratio_of_speed_up = t1 / t2
ratio_of_speed_up = 204.3520

验证定点解释MATLAB和墨西哥人输出是相同的

isequal (y1, y2)
ans =逻辑1

抑制代码分析警告。

% #好< * NOPTS >

另请参阅