主要内容

加速定点仿真

这个例子展示了如何加速定点算法使用fiaccel函数。你从MATLAB®代码生成一个墨西哥人的功能,运行生成的墨西哥人功能,用MATLAB代码执行速度仿真进行比较。

描述的例子

这个例子使用一阶反馈循环。它还使用量化器避免无限增长。输出信号是推迟了一个示例输入信号和反馈抑制。

复制所需的文件

你需要这个MATLAB-file运行这个例子。将其复制到临时目录中。这一步需要写权限系统的临时目录。

tempdirObj = fidemo.fiTempdir (“fiaccelbasicsdemo”);fiacceldir = tempdirObj.tempDir;fiaccelsrc =fullfile (matlabroot“工具箱”,“定点”,“fidemos”,' + fidemo ',“fiaccelFeedback.m”);拷贝文件(fiaccelsrc fiacceldir,“f”);

检查MATLAB反馈函数的代码

MATLAB函数执行反馈回路在该文件fiaccelFeedback.m。这段代码数字转换的输入,执行反馈回路动作:

类型(fullfile (fiacceldir“fiaccelFeedback.m”))
函数[y, w] = fiaccelFeedback (x, y, w) % fiaccelFeedback FIACCELBASICSDEMO量化器和反馈循环。% 1984 - 2013版权MathWorks公司% n = 1 # codegen:长度(x) y (n) =数字转换(x (n) - a * w,真的,16日,12日,“地板”,“包装”);w = y (n);结束

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

  • x是输入信号向量。

  • y是输出信号向量。

  • 一个反馈增益。

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

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

rng (“默认”);%随机数生成器x = fi(2 *兰德(1000 1)1,真的,16日15);%输入信号一个= fi(15)。9,真的,16日;%反馈增益y = fi(0(大小(x)),真的,16日12);%初始化输出。部分长度%选择防止溢出w = fi(0,真的,16日12);%初始化延迟输出= coder.Constant ();%声明”一个“常数代码%的一代

正常模式下运行

抽搐,y = fiaccelFeedback (x, y, w);t1 = toc;

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

fiaccelfiaccelFeedbackarg游戏{x, y, w}- ofiaccelFeedback_mex

运行墨西哥人版

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

加速比

代码加速度提供了优化加速定点算法通过墨西哥人文件的生成。定点设计师™提供了一个方便的功能fiaccelMATLAB代码转换为一个墨西哥人功能,可大大加快你的定点算法的执行速度。

r = t1 / t2
r = 10.8093

清理临时文件

清晰的fiaccelFeedback_mex;tempdirObj.cleanUp;% #好< * NOPTS >