主要内容

缓冲和基于帧的处理

缓冲输入到帧

帧大小的多通道信号1可以缓冲到帧大小的多通道信号L.使用Buffer块。L.大于1

下图是具有帧大小的信号的图形表示1转换为帧大小的信号L.通过Buffer块。

在下面的例子中,一个双通道1每个帧信号的样本缓冲到双通道中4.使用Buffer块对每帧信号进行采样:

  1. 在MATLAB®命令提示符下,键入ex_buffer_tut

    缓冲示例模型打开。

  2. 双击从工作区块的信号。这源块参数:来自Workspace的信号对话框打开。

  3. 设置参数如下:

    • 信号=[1:10; -1:-1:-10]'

    • 采样时间=1

    • 样品每帧=1

    • 最终数据值后的形式输出=设置为零

    基于这些参数,Signal from Workspace块输出帧长为1、采样周期为1秒的信号。因为你设置了样品每帧参数设置为1,来自工作区块的信号在每个采样时间输出一个双通道样本。

  4. 保存这些参数并单击关闭对话框好吧

  5. 双击缓冲区块。这函数块参数:缓冲区对话框打开。

  6. 设置参数如下:

    • 输出缓冲区大小(每个通道)=4.

    • 缓冲重叠=0.

    • 初始条件=0.

    因为你设置了输出缓冲区的大小参数到4.,缓冲块输出具有帧大小4的帧信号。

  7. 运行模型。

    下图是模拟过程中模型行为的图解解释。

笔记

或者,您可以设置样品每帧Signal From Workspace block to的参数4.并在不使用缓冲区块的情况下创建上面显示的相同信号。来自工作区块的信号在内部执行缓冲,以输出双通道帧。

将信号缓冲到有重叠的帧中

在某些情况下,处理表示原始信号重叠部分的数据是有用的。例如,在估计一个信号的功率谱时,通常需要计算数据重叠部分的FFT。在计算滑动窗口上的统计数据或自适应滤波时,也需要重叠缓冲区。

缓冲重叠缓冲区块的参数指定重叠点的数量,L..在重叠的情况下(L.> 0),输出帧周期为(mO.-L.)*T.SI.,在那里T.SI.输入样本周期和mO.缓冲区大小

笔记

设置缓冲重叠参数设置为负值以实现输出帧率慢点而不是在非产物中。输出帧周期仍然是T.SI.*(mO.-L.),但现在有L.< 0.只有mO.输出缓冲区中包含最新的输入。前面的L.输入被丢弃。

在下面的例子中,一个具有帧长度的四通道信号1采样周期1被缓冲到帧大小为3、帧周期为2的信号。由于缓冲区重叠,输入采样周期不守恒,输出采样周期为2/3:

  1. 在matlab命令提示符下,键入ex_buffer_tut3.

    Buffer Example T3模型打开。

    此外,变量sp_examples_src加载到MATLAB工作空间。该变量的定义如下:

    Sp_examples_src =[1 1 5 -1;2 1 5 2;3 0 5 -3;4 0 5 -4;5 1 5 -5;6 1 5 -6];
  2. 双击从工作区块的信号。这源块参数:来自Workspace的信号对话框打开。

  3. block参数设置如下:

    • 信号=sp_examples_src

    • 采样时间=1

    • 样品每帧=1

    • 表单输出后的最终数据值由=设置为零

    基于这些参数,Signal from Workspace块输出一个采样周期为1秒的信号。因为你设置了样品每帧参数设置为1时,Signal From Workspace块在每个采样时间输出一个四通道的样本。

  4. 保存这些参数并单击关闭对话框好吧

  5. 双击缓冲区块。这函数块参数:缓冲区对话框打开。

  6. 按如下方式设置块参数,然后单击好吧

    • 输出缓冲区大小(每个通道)=3.

    • 缓冲重叠=1

    • 初始条件=0.

    因为你设置了输出缓冲区的大小参数到3.,缓冲区块输出具有帧大小3的信号。此外,因为您设置了缓冲重叠参数到1,前一个输出帧中的最后一个样本是下一个输出帧中的第一个样本。

  7. 运行模型。

    下图是模拟过程中模型行为的图解解释。

  8. 在matlab命令提示符下,键入sp_examples_yout.

    以下内容显示在MATLAB命令窗口中。

    sp_examples_yout = 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 5 1 2 1 2 2 1 2 3 5 0 5 3 4 5 0 5 4 4 0 4 5 1 5 5 6 5 6 6 1 5 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

    请注意,输入不会开始在输出到第五行,第二行的第二帧。这是由于块的延迟。

过量算法延迟(任务延迟)有关算法延迟的一般信息。有关如何计算缓冲延迟的说明,请参阅缓冲延迟和初始条件

缓冲帧输入到其他帧输入

在以下示例中,具有帧大小4的双通道信号被击败具有帧尺寸3和帧周期2的信​​号。由于重叠,输入采样周期不保守,并且输出样本周期为2/3:

  1. 在matlab命令提示符下,键入ex_buffer_tut4.

    缓冲示例T4模型打开。

    此外,变量sp_examples_src加载到MATLAB工作空间。这个变量被定义为

    Sp_examples_src = [1;2 1;3 0;4 0;5 1;6 1;7 0;8 0]
  2. 双击从工作区块的信号。这源块参数:来自Workspace的信号对话框打开。

  3. block参数设置如下:

    • 信号=sp_examples_src

    • 采样时间=1

    • 样品每帧=4.

    基于这些参数,来自工作区块的信号输出具有样本时段的双通道帧信号1第二和一帧的尺寸4.

  4. 保存这些参数并单击关闭对话框好吧

  5. 双击缓冲区块。这函数块参数:缓冲区对话框打开。

  6. 按如下方式设置块参数,然后单击好吧

    • 输出缓冲区大小(每个通道)=3.

    • 缓冲重叠=1

    • 初始条件=0.

    基于这些参数,缓冲区块输出具有帧大小的双通道帧信号3.

  7. 运行模型。

    下图是模型在模拟期间的行为的图形表示。

    注意,直到第三个输出矩阵的最后一行,输入才开始出现在输出中。这是由于块的延迟。

过量算法延迟(任务延迟)有关算法延迟的一般信息。有关如何计算缓冲延迟的说明,并查看缓冲延迟和初始条件

缓冲延迟和初始条件

例子中将信号缓冲到有重叠的帧中缓冲帧输入到其他帧输入,输入信号被一定数量的样本延迟。初始输出样本对应于指定的值初始条件参数。在上面提到的两个例子中,初始条件都是零。

在大多数情况下,Buffer和Unbuffer块有一定数量的延迟或延迟。这个延迟取决于块参数设置和Simulink金宝app®任务模式。你可以使用rebuffer_delay函数来确定帧大小和重叠的任何组合的块的延迟长度。

的语法rebuffer_delay (f, n v)返回由多任务操作期间的缓冲和解除缓冲块引入的延迟F输入框架大小,N输出缓冲区的大小参数设置,V.缓冲重叠参数设置。

例如,您可以计算讨论的模型的延迟缓冲帧输入到其他帧输入在MATLAB命令行使用以下命令:

D = rebuffer_delay(4,3,1) D = 8

此结果同意该示例中的块的输出。请注意,在Simulink多任务模式下模拟此模型。金宝app

有关延迟的更多信息,请参阅过量算法延迟(任务延迟).有关特定块的延迟信息,请参阅“块参考”页面的“延迟”部分。有关的更多信息rebuffer_delay功能,请参阅rebuffer_delay

将帧信号取消缓冲为样本信号

可以取消对帧长度大于的多通道信号的缓冲1成多路信号的帧长等于1使用无缓布块。Unbuffer块执行Buffer块的缓冲过程的逆操作,其中帧长度为1的信号被缓冲为帧长度大于1的信号。Unbuffer块从每帧包含多个通道的n通道输入生成一个每帧包含一个样本的n通道输出。每个输入矩阵的第一行总是第一个输出。

下图是此过程的图形表示。

输出的样本周期,T.所以,与输入帧周期有关,T.FI.,通过输入框大小,m一世

T. S. O. = T. F 一世 / m 一世

Unbuffer块总是保留信号的采样周期(T.所以=T.SI.)。看在Simulink中转换样本和帧速率金宝app有关速率转换的更多信息。

在以下示例中,每帧具有四个样本的双通道信号被解压缩到双通道信号中,每个帧具有一个样本:

  1. 在matlab命令提示符下,键入ex_unbuffer_tut.

    打开Unbuffer Example模型。

  2. 双击来自工作区的信号块。这源块参数:来自Workspace的信号对话框打开。

  3. block参数设置如下:

    • 信号=[1:10; -1:-1:-10]'

    • 采样时间=1

    • 样品每帧=4.

    • 表单输出后的最终数据值由=设置为零

    基于这些参数,来自工作区块的信号输出具有帧尺寸4的双通道信号。

  4. 保存这些参数并单击关闭对话框好吧

  5. 双击无缓布块。这函数块参数:取消缓冲区对话框打开。

  6. 设置初始条件参数到0.,然后按好吧

    无缓布块将每帧4个采样的双通道信号缓冲为每帧1个采样的双通道信号。

  7. 运行模型。

    下图是模型模拟过程中发生的图形表示。

    笔记

    控件指定的值生成如下图所示的初始条件初始条件参数。看到无缓布参考页面有关输出中显示的初始条件数量的信息。

  8. 在matlab命令提示符下,键入sp_examples_yout.

    下面是输出的一部分。

    sp_examples_yout (:: 1) = 0 0 sp_examples_yout (:,: 2) = 0 0 sp_examples_yout (:,:, 3) = 0 0 sp_examples_yout (:,:, 4) = 0 0 sp_examples_yout (:,:, 5) = 1 1 sp_examples_yout (:,: 6) = 2 2 sp_examples_yout (:,: 7) = 3 3

    不安全的阻止将信号插入双通道信号。输出矩阵的每个页面表示不同的采样时间。

相关的话题