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