主要内容

Buffer

将输入序列分组或合并为更小或更大的帧大小

  • Buffer block

库:
DSP System Toolbox / Signal Management / Buffers

描述

Buffer 模块始终执行基于帧的处理。该模块重新分布输入的每一列中的数据,以产生具有不同帧大小的输出。将信号合并为更大的帧大小会产生帧速率比输入更慢的输出。例如,假设有下图所示的标量输入。

将信号分组为更小的帧大小会产生帧速率比输入更快的输出。例如,假设有下图所示的标量输出。

该模块协调非重叠缓冲区的输出帧大小帧速率,使得信号的采样周期在输入和输出处相同:Tso = Tsi

当模块输入和输出速率相同时,此模块支持触发子系统。

示例

端口

输入

全部展开

要缓冲单通道信号,请输入一个标量或列向量。要缓冲多通道信号,请输入一个行向量或矩阵。要缓冲单通道信号,请输入一个大小为 Mi×1 的标量或列向量,其中 Mi 是输入帧大小。

数据类型: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32 | Boolean | fixed point
复数支持:

输出

全部展开

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

当输入是单通道信号时:

  • 1×1(标量)- 输出是 Mo×1 向量。

  • Mi×1(列向量)- 输出是 Mo×1 向量。

其中

  • Mi - 输入帧大小

  • Mo - 输出缓冲区大小参数的值

输入帧周期是 Mi · Tsi,其中 Tsi 是输入采样周期。输出帧周期是 (MoL)Tsi,其中 L缓冲区重叠参数的值,且 Tsi 是输入采样周期。当您将缓冲区重叠参数设置为 Mo – 1 时,输出帧周期等于输入采样周期。

当输入是多通道信号时:

  • N - 输出是 Mo×N 矩阵。

  • Mi×N - 输出是 Mo×N 矩阵。

其中

  • N - 信号中的通道数

  • Mi - 输入帧周期

  • Mo输出缓冲区大小参数的值,可以大于或小于输入帧大小 Mi。该模块分别缓冲 N 个输入通道中的每一个。

输入帧周期是 Mi · Tsi。输出帧周期是 (MoL)Tsi,当缓冲区重叠Mo1 时等于序列采样周期。因此,输出采样周期 Tso 与输入采样周期 Tsi 的关系为

Tso=(MoL)TsiMi

输出具有与输入相同的数据类型和复/实性

数据类型: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32 | Boolean | fixed point
复数支持:

参数

全部展开

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

数据类型: double | int8 | int16 | int32 | uint8 | uint16 | uint32

指定采样数 L,它指定每个连续输出帧中的重叠或欠叠量。

要重叠缓冲区中的数据,请指定在范围 0L<Mo 内的 L 值,其中 Mo输出缓冲区大小参数的值。模块从当前输出中取 L 个采样(行)并在下一个输出中重复它们。在重叠情况下,该模块在将缓冲数据传播到输出之前采集 MoL的输入采样。

L<0 时,表示您正在以欠叠方式缓冲信号。该模块在缓冲区填满后丢弃 L 个输入采样,并以周期 (MoL)Tsi 输出缓冲区内容,该周期比零重叠情况下的周期更长。

输出帧周期是 (MoL)Tsi,当缓冲区重叠Mo1 时等于输入序列采样周期 Tsi

数据类型: double | int8 | int16 | int32 | uint8 | uint16 | uint32

指定在非零延迟情况下模块的初始输出值,类型为标量、向量或矩阵。

对于除零任务延迟中列出的情况外的所有单任务操作情况,Buffer 模块的缓冲区初始化为由初始条件参数指定的值。该模块从此缓冲区读取以生成前 D 个输出采样,其中

D={Mo+L(L0)Mo(L<0)

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

  • L0 时,初始条件参数必须为标量。

  • L=0 时,初始条件参数可以是标量,也可以是具有以下任一约束的向量:

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

    • 对于多通道输入,如果 Mi 为 1,则初始条件参数可以是长度为 Mo * N 的向量;或者如果 Mo 为 1,则可以是长度为 Mi * N 的向量。

对于所有多任务操作,使用 rebuffer_delay 函数计算 Buffer 模块针对给定缓冲区大小和缓冲区重叠组合引入的精确延迟(以采样为单位)。

对于在任意帧大小之间的通用缓冲,初始条件参数必须为标量,然后该标量在初始输出的所有元素中重复。但是,在输入是 1×N 行向量且模块的输出是 Mo×N 矩阵的特殊情况下,初始条件可以是:

  • Mo×N 矩阵

  • 长度为 Mo 的向量,该向量在初始输出的所有列中重复

  • 标量,该标量在初始输出的所有元素中重复

在输出是 1×N 行向量的特殊情况(这是取消缓冲 Mi×N 矩阵的结果)下,初始条件可以是:

  • 一个包含 Mi 个采样的向量,在前 Mi 个采样时间内为每个通道顺序输出

  • 标量,该标量在初始输出的所有元素中重复

有关延迟和 Simulink® 任务模式的详细信息,请参阅Excess Algorithmic Delay (Tasking Latency)基于时间的调度和代码生成 (Simulink Coder)

数据类型: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32 | Boolean | fixed point
复数支持:

模块特性

数据类型

Boolean | double | fixed point | integer | single

直接馈通

no

多维信号

no

可变大小信号

no

过零检测

no

详细信息

全部展开

扩展功能

全部展开

版本历史记录

在 R2006a 之前推出