Buffer
将输入序列缓冲为较小或较大的帧大小。
类型: Buffer
图书馆中的路径:
|
说明
缓冲区*块执行帧处理。该块重新分配输入信号每一列中的数据,以产生不同帧大小的输出信号。
将信号缓冲为更大的帧大小会导致输出信号的帧速率低于输入信号。标量输入的示例如下图所示:
将信号缓冲为较小的帧大小,使输出帧速率高于输入帧速率。下图是标量输出的示例:
端口
输入
端口_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 行矢量,这是通过 解除缓冲矩阵 的结果,初始条件可以是:
-
一个包含 样本的向量,用于每个通道在第一个 样本期间的连续输出。
-
一个标量,用于重复初始输出的所有元素。