延迟和延迟
计算延迟
一块的计算延迟或子系统相关的执行中所涉及的操作数块或子系统。例如,一个FFT块操作256 -样本输入需要仿真软件金宝app®软件执行一定数量的乘法为每个输入框。这些操作的实际时间消耗的性能在很大程度上依赖于计算机硬件和底层软件层,如MATLAB®环境和操作系统。因此,为一个特定的模型计算延迟可以改变从一台计算机到另一个平台。
模拟状态栏时间代表一个模型,通过仿真软件可以访问数字时钟,不提供任何信息计算延迟。金宝app例如,根据仿真软件定时器,上面提到的FFT即时执行,没有任何金宝app延迟。输入模拟次FFT块t = 25.0处理和输出仿真时间t = 25.0,无论数量的操作由FFT算法。仿真软件金宝app定时器只反映了算法的延迟,而不是计算延迟。
减少计算延迟
有许多方法来减少计算延迟没有实际运行更快的硬件仿真。首先,你应该熟悉手动性能优化(金宝app模型)描述了一些基本策略。以下资料探讨了提高性能的几个选项。
提高性能的第一步是分析模型,并消除或过度简化的元素添加到计算负载。这些元素可能包含范围显示和数据日志块你到位调试目的,不再需要。除了这些模型相关的调整,有很多更一般的步骤可以提高任何模型的性能:
使用尽可能不定位处理。它是有利的对整个模型框架的基础。看到框架处理的好处为更多的信息。
使用DSP仿真软件模型模金宝app板定制数字信号处理仿真软件建模。有关更多信息,请参见信号处理的仿真软件环境配置模金宝app型。
关掉模型状态栏。金宝app在建模选项卡中,取消选择环境>状态栏。仿真速度会提高,但是时间指示器将不可见。
-
sim (gcs)
该方法的仿真可以大大提高仿真速度,但也有一些限制:
你不能与仿真(调整参数,例如)。
你必须按Ctrl + C停止仿真,或者指定起始和终止时间。
MATLAB S-functions没有图形更新。
使用金宝app仿真软件编码器™代码生成软件生成通用实时(GRT)代码针对主机平台,并使用生成的可执行文件运行模型。看到金宝app仿真软件编码器文档的更多信息。
算法的延迟
算法的延迟是固有的延迟块或子系统的算法和独立于CPU的速度。在本指南中,算法延迟只是一块被称为块的延迟。通常用数量表示的样本块输出滞后于相应的输入。这种延迟的时间直接相关仿真软件定时器执行期间。金宝app
一个特定的块的算法延迟可能取决于块参数设置和通用仿真软件设置。金宝app为了简化问题,它有助于分类块延迟使用以下类别:
下列主题解释了不同类别的延迟,以及模拟和参数设置会影响延迟的水平,一个特定的块的经历。
零算法的延迟
FFT块组件的一个例子,没有算法的延迟。仿真软件金宝app定时器不记录任何时光流逝而块FFT计算的输入,转换后的数据可以在相同的时间步中的输出输入接收。还有许多其他块零算法延迟,如块矩阵和线性代数库。每一块过程其输入并生成输出在一个时间步。
正常化块与零算法延迟块的一个例子:
在MATLAB命令提示符,键入
ex_normalization_tut
。正常化T1模型打开示例。
双击信号从工作空间块。的源块参数:信号从工作区对话框打开。
组块的参数如下:
信号=
1:10 0
样品时间=
1/4
样品每帧=
4
保存这些参数并关闭对话框点击好吧。
运行模型。
该模型仿真软件定时器的当前值加数字时钟的输出块每个输出帧。金宝app
信号从工作区块生成一个新的帧包含四个样品每秒钟一次(T佛=π* 4)。前几帧输出是:
(t= 0)(1 2 3 4)”(t= 1)[5 6 7 8]”(t= 2)[9 10 11 12]”(t= 3)[13 14 15 16]”(t= 4)[17 18 19 20]'
在MATLAB命令提示符,键入
挤压(dsp_examples_yout)的
。归一化输出,
dsp_examples_yout
转换成一个易于阅读的矩阵形式。结果,答
如下图所示:ans = 0 0.0333 0.0667 0.1000 0.1333 1.0000 0.0287 0.0345 0.0402 0.0460 2.0000 0.0202 0.0224 0.0247 0.0269 3.0000 0.0154 0.0165 0.0177 0.0189 4.0000 0.0124 0.0131 0.0138 0.0146 5.0000 0.0103 0.0108 0.0113 0.0118
第一列的
答
仿真软件时间提金宝app供的数字时钟。你可以看到,第一个输入的平方2-norm,(1 2 3 4)”。/((1 2 3 4)的总和。^ 2)
出现在输出的第一行(在时间t= 0),相同的时间步,输入收到的块。这表明正常化块算法为零延迟。
零算法延迟和代数循环
当几个街区与零算法延迟连接在一个反馈回路,模型可能报告一个代数循环错误和性能可能通常受到影响。金宝app你可以防止代数循环注入至少一个样品的延迟反馈回路,例如,包括一个延迟块延迟> 0。有关更多信息,请参见代数循环概念(金宝app模型)。
基本算法的延迟
整数变量延迟块是一个块算法的延迟。在以下示例中,您使用此块来演示此概念:
在MATLAB命令提示符,键入
ex_variableintegerdelay_tut
。整数变量延迟T1打开示例。
双击信号从工作空间块。的源块参数:信号从工作区对话框打开。
组块的参数如下:
信号=
1:10 0
样品时间=
1
样品每帧=
1
保存这些参数并关闭对话框点击好吧。
双击常数。的源块参数:常数对话框打开。
组块的参数如下:
恒定值=
3
解释为一维向量参数=清除此复选框
样品时间=
1
点击好吧保存这些参数并关闭对话框。
的输入
延迟
端口变量的整数延迟块指定数量的样品时间流逝之前输入的在
被释放到输出端口。这个值代表物体的算法的延迟。在这个例子中,因为的输入延迟
端口是3
,样品时间,延迟港口是1,那么样本块的到达港口的时间t= 0时释放到输出t= 3。双击变量延迟块的整数。的功能块参数:整数变量延迟对话框打开。
设置初始条件参数
1
,然后单击好吧。在调试选项卡上,选择信息覆盖>信号的维度和Nonscalar信号。
运行模型。
模型应该类似于下面的图。
在MATLAB命令提示符,键入
dsp_examples_yout
输出如下所示:
dsp_examples_yout = 0 1 1 1 2 3 1 4 2 5 3
第一列是提供的Simulink仿真时间数字时钟。金宝app第二列是延迟输入。正如所料,块的输入t= 0延迟三个样品和第四输出样本,t= 3。您还可以看到,前三个输出变量的整数延迟块继承的值块初始条件参数,
1
。这段时间,从开始的模拟,直到第一个输入传递到输出,有时被称为初始延迟的块。
多DSP系统工具箱™块有某种程度的固定或可调算法延迟。这些包括任何模块的算法依赖于延迟或存储元素,如过滤器或缓冲区。通常,但并非总是如此,这样提供一个块初始条件参数允许您指定生成的输出值块在最初的延迟。在其他情况下,初始条件是内部设置为0。
参考块参考页面特定的DSP系统工具箱的延迟特性。
多余的算法延迟(任务延迟)
在某些情况下,模型可能会迫使一块延迟输入超过所要求的金宝app严格块算法。这个多余的算法延迟称为任务延迟,因为它来自模型的同步需求任务模式。金宝app一个街区的整体算法的延迟是其基本的和延迟和任务延迟。
算法的延迟=基本算法延迟+任务延迟
特定的任务延迟块可能依赖于下面的块和模型特征:
金宝app任务模式
金宝app模型有两个任务模式:
单一任务
多任务处理
在建模选项卡上,单击模型设置。在解算器窗格中,选择类型>固定步
。扩大解算器的细节。指定多任务模式,选择对待每个离散率作为一个单独的任务。指定单一任务模式,明确对待每个离散率作为一个单独的任务。
请注意
许多多重速率的块减少了延迟模型单一任务模式。金宝app检查一个多重速率的块的“延迟”部分参考页面的细节。也看到基于时间的调度和代码生成(金宝app仿真软件编码器)。
块率类型
一块叫做单频时所有的输入和输出端口操作在同一帧速率。一块被称为多重速率的至少一个输入或输出端口时比其他人有不同的帧速率。
许多块永久单一税率。这意味着所有输入和输出端口总是有相同的帧速率。对于其他块,块参数设置确定块是单频或多重速率的。只有多重速率的街区受到任务延迟。
请注意
金宝app仿真软件可能会报告一个代数循环错误如果它检测到一个反馈循环完全由多重速率的街区。打破这样的代数环,插入一个单频与非零延迟块,如一个单位延迟块。有关更多信息,请参见代数循环概念(金宝app模型)。
模型率类型
当所有端口的所有块模型运行在一个帧率,该模型称为单一税率。当模型包含块不同的帧速率,或至少一个多重速率的块,该模型称为多重速率的。注意,仿真软件可以防金宝app止一个单频模型在多任务模式下运行通过生成一个错误。
块的输入处理方式
许多块可以在纸浆包或框架处理模式。选择,你可以设置输入处理参数的块基于列渠道(框架)
或基于元素通道(样本)
。
预测任务延迟
任务延迟的具体金额由一个特定的块的组合参数和仿真设置的“延迟”部分中讨论一块引用页面。在这个主题中,您使用Upsample块参考页面预测模型的任务延迟:
在MATLAB命令提示符,键入
ex_upsample_tut1
。Upsample例子T1模型打开。
在建模选项卡上,单击模型设置。
在解算器窗格中,从类型列表中,选择
固定步
。从解算器列表中,选择离散(没有连续状态)
。扩大解算器的细节。选择对待每个离散率作为一个单独的任务并点击好吧。
大多数多重速率的块经验任务延迟只在仿真软件多任务模式。金宝app
双击信号从工作空间块。的源块参数:信号从工作区对话框打开。
设置块参数如下所示,然后单击好吧:
信号=
1:10 0
样品时间=
1/4
样品每帧=
4
形成最终的数据值后输出=
设置为零
双击Upsample块。的功能块参数:Upsample对话框打开。
设置块参数如下所示,然后单击好吧:
L Upsample因素,=
4
l - 1样本抵消(0)=
0
输入处理=
基于列渠道(框架)
率的选择=
允许多重速率的处理
初始条件=
1
的率的选择多重速率的参数使模型,由于输入和输出帧率不相等。
双击数字时钟。的源块参数:数字时钟对话框打开。
设置样品时间参数
0.25
,然后单击好吧。这个匹配的样本时期Upsample块的输出。
运行模型。
这个模型现在看起来应该类似于下图。
模型仿真软件定时器的当前值,加数字时钟的块,每个输出帧。金宝app
在这个例子中,信号从工作区块生成一个新的帧包含四个样品每秒钟一次(T佛=π* 4)。前几帧输出是:
(t= 0)(1 2 3 4)(t= 1)[5 6 7 8](t= 2)(9 10 11 12)(t= 3)(13 14 15 16)(t= 4)[17 18 19 20]
Upsample块upsamples输入的4倍,插入三0之间的每个输入样本。利率的变化是证实了探测器模块的模型,显示帧周期减少从Tfi对T = 1佛= 0.25。
在MATLAB命令提示符,键入
挤压(dsp_examples_yout)的
。模拟显示在一个矩阵的输出格式。最初几个样品的结果,
答
,有:“延迟和初始条件”Upsample块参考页面显示仿真软件在多任务处理模式时,第一个样本块输入出现在输出的示例金宝app米我L + D + 1,米我是输入帧大小,L是吗Upsample因素,和D样本抵消。这个公式预测,第一个输入在这个例子应该出现作为输出样本17(也就是说,4 * 4 + 0 + 1)。
第一列的输出仿真软件时间提供的数字时钟。金宝app每次的四个价值观正确的输出帧中的值。你可以看到第一个示例的第一个四个输出帧继承Upsample块的价值初始条件参数。由于任务延迟,第一个输入值出现的首样5(输出帧t= 1)。这是样品17。
现在尝试运行模式单一任务模式。
在建模选项卡上,单击模型设置。
在解算器窗格中,从类型列表中,选择
固定步
。从解算器列表中,选择离散(没有连续状态)
。清除对待每个离散率作为一个单独的任务参数。
运行模型。
这个模型现在运行在单一任务模式。
在MATLAB命令提示符,键入
挤压(dsp_examples_yout)的
。最初几个样品的结果,
答
,有:“延迟和初始条件”Upsample块参考页面显示为零延迟模型单一任务的所有多重速率的操作模式。金宝app
第一列的输出仿真软件时间提供的数字时钟。金宝app每次的四个价值观正确的输出帧中的值。第一个输入值出现的首样(在第一个输出帧t= 0)。这是实现零延迟的状况的预期行为。在这个示例中,使用的特定参数设置运行
upsample_tut1
在单一任务模式消除了17-sample存在延迟,当您运行模型在多任务处理模式。
现在您已经成功地使用了Upsample块参考页面预测模型的任务延迟。