Engee 文档

Buffer

将输入序列缓冲为较小或较大的帧大小。

类型: Buffer

图书馆中的路径:

/Signal Operations/Signal Management/Buffers/Buffer

说明

缓冲区*块执行帧处理。该块重新分配输入信号每一列中的数据,以产生不同帧大小的输出信号。

将信号缓冲为更大的帧大小会导致输出信号的帧速率低于输入信号。标量输入的示例如下图所示:

buffer 1

将信号缓冲为较小的帧大小,使输出帧速率高于输入帧速率。下图是标量输出的示例:

buffer 2

端口

输入

端口_1 - 输入信号
标量 | 向量 | 矩阵

要缓冲多通道信号,需要引入字符串矢量或矩阵。要缓冲单通道信号,必须输入一个标量或矢量列,其大小为 乘 1,其中 为输入帧的大小。

数据类型: Float16, Float32, Float64, Int8, Int16, Int32, Int64, Int128, UInt8, UInt16, UInt32, UInt64, UInt128, Bool

*支持复数:是

输出

端口_1 - 输出信号
标量 | 向量 | 矩阵

以标量、向量或矩阵形式返回的缓冲输入信号。

如果输入信号是单通道的:

  • 标量 - 输出信号是维数 乘 1 的矢量。

  • 长度为 的矢量 - 输出信号是维数为 乘 1 的矢量。

    其中

    • - 输入帧大小

    • - 输出缓冲区大小参数值,如果  — 输出信号为标量

    输入帧周期等于 ,其中 是输入采样周期。输出帧周期等于 ,其中 Buffer overlap 参数值。当 Buffer overlap 参数设置为 时,输出帧周期等于输入采样周期。

*如果输入的是多通道信号: *

  • 矩阵 1 至 - 输出信号是维数为 的矩阵。

  • 矩阵 - 输出信号是维数为 的矩阵。

    其中

    • - 信号的通道数

    • - 输入帧周期

    • - 是*输出缓冲区大小*参数的值,可大于或小于输入帧大小 。该块可独立缓冲 的每个输入通道。

    输入帧周期等于 。输出帧周期为 ,等于*缓冲区重叠*参数设置为 时的序列采样周期。因此, 的输出采样周期与 的输入采样周期的关系如下:

输出数据的类型和复杂程度与输入数据相同。

数据类型: Float16, Float32, Float64, Int8, Int16, Int32, Int64, Int128, UInt8, UInt16, UInt32, UInt64, UInt128, Bool

*支持复数:是

参数

输出缓冲区大小(每个通道) - 缓冲区大小
64(默认值) | 正整数

指定要缓冲到输出帧的每个通道的连续采样个数

Buffer overlap - 缓冲区重叠
0(默认值) | `整数

指定样本数 ,它决定每个后续输出帧的重叠或不完全重叠量。

要重叠缓冲区中的数据,请在 范围内指定值 ,其中 是*输出缓冲区大小*参数的值。

数据块从当前输出帧中提取 样本(行),并在下一输出帧中重复。如果出现重叠,程序块将接收 新的输入样本,然后再将缓冲数据传送到输出端。

时,缓冲的是不完整的重叠信号。缓冲块在缓冲区满后会丢弃 输入采样,并以比零重叠时更长的周期 输出缓冲区。

Buffer overlap 参数值等于 时,输出帧的周期为 ,等于输入序列 的采样周期。

初始条件 - 初始值
0.0(默认)` | 标量 | 向量 | `矩阵

以标量、矢量或矩阵形式指定非零等待时间情况下块的初始化值。

对于单任务操作的所有情况,*缓冲区*块将以*初始条件*参数中指定的值初始化。程序块从该缓冲区读取数据,生成第一个 输出样本,其中

初始条件*参数的维度取决于*缓冲区重叠*、 以及输入是单通道还是多通道:

  • 如果 ,则*初始条件*参数必须是标量。

  • 如果是 ,则 *初始条件*参数可以是标量或矢量,并有以下限制条件之一:

    • 对于单通道输入,如果 为 1,则初始条件参数可以是长度为 的矢量;如果 为 1,则初始条件参数可以是长度为 的矢量。

    • 对于多通道输入,*初始条件*参数可以是长度为 的矢量(如果 为 1),或者长度为 的矢量(如果 为 1)。

对于任意大小的帧之间的一般缓冲,*初始条件*参数必须是一个标量,然后在初始输出的所有元素上重复。但在特殊情况下,即输入是行 1 至 的向量,而块输出是矩阵 ,初始条件可以是:

  • 矩阵

  • 长度为 的向量,在原始输出的所有列上重复。

  • 在原始输出的所有元素中重复的标量。

在特殊情况下,输出是 的第 1 行矢量,这是通过 解除缓冲矩阵 的结果,初始条件可以是:

  • 一个包含 样本的向量,用于每个通道在第一个 样本期间的连续输出。

  • 一个标量,用于重复初始输出的所有元素。

更多信息

零延迟

零延迟是指在 , 收到的第一个输入采样作为第一个输出采样出现。在单任务模式下,Buffer 块在这些情况下的延迟为零:

  • 标量输入和输出 ( ) 与零或负 Buffer 重叠 ( ) 。

  • 输入帧大小是输出帧大小的整数倍(Buffer overlap 参数值为零( ))。

    其中

    • - 是一个整数。

      值得注意的情况包括

      • 任何输入帧大小 ,标量输出 ( ) 和零 Buffer overlap ( );

      • 输入和输出帧大小相等 ( ) 且 Buffer overlap 参数值为零 ( )。