缓冲和基于帧的处理

缓冲器输入到帧

帧大小的多通道信号1可被缓冲到帧大小的多声道信号大号使用缓冲区块。大号大于1

下图是一信号的与帧大小的图形表示1被转换成帧大小的信号大号通过缓冲块。

在以下示例中,一个两通道1每帧信号样本被缓冲到一个双通道4使用缓冲块对每帧信号进行采样:

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

    打开缓冲示例模型。

  2. 双击将信号从工作区块。该源块参数:信号从工作区对话框打开。

  3. 设置参数如下:

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

    • 采样时间=1

    • 样品每帧=1

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

    基于这些参数,从工作区块的信号输出为1的帧的长度和1秒的采样周期的信号。因为你设置了样品每帧参数设定为1,每个样品在时间将信号从工作区块输出一个双通道的样本。

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

  5. 双击缓冲块。该功能块参数:缓冲区对话框打开。

  6. 设置参数如下:

    • 输出缓冲器尺寸(每个通道)=4

    • 缓冲重叠=0

    • 初始条件=0

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

  7. 运行模型。

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

注意

另外,您也可以设置样品每帧参数信号的从工作空间块4和创建以上而不使用缓冲块中示出的相同的信号。将信号从工作区块执行缓冲内部,以输出双信道帧。

将信号缓冲成具有重叠的帧

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

缓冲重叠缓冲块的参数指定的交叠点的数量,大号。在重叠情况下(大号> 0),输出帧周期为(中号Ø-大号) *ŤSI,在那里ŤSI是输入取样周期和中号Ø是个缓冲区大小

注意

设置缓冲重叠参数设置为负值以实现输出帧速率慢点比不重叠的情况。输出帧周期仍然是ŤSI* (中号Ø-大号),但现在大号<0。只有中号Ø最新的输入被包括在输出缓冲器。以前的大号输入被丢弃。

在下面的示例中,具有帧长度的四通道信号1和采样周期1被缓冲到与帧大小3和由于缓冲区重叠的帧周期2的信​​号时,输入取样周期不守恒,并且输出采样周期为2/3:

  1. 在MATLAB命令提示符键入ex_buffer_tut3

    打开缓冲示例T3模型。

    另外,可变sp_examples_src加载到MATLAB工作区中。该变量定义如下:

    sp_examples_src=[11 15 5 -1;2 15 -2;3 0 5 -3;4 0 5 -4;5 1 5 -5;6 1 5 -6];
  2. 双击将信号从工作区块。该源块参数:信号从工作区对话框打开。

  3. 设置块参数如下:

    • 信号=sp_examples_src

    • 采样时间=1

    • 样品每帧=1

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

    根据这些参数,来自工作空间块的信号输出一个采样周期为1秒的信号。因为你设置了样品每帧参数设置为1时,来自工作区的信号在每个采样时间输出一个四通道采样。

  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 = [11 1;2 1;3 0;4 0;5 1;6 1;7 0;8 0]
  2. 双击将信号从工作区块。该源块参数:信号从工作区对话框打开。

  3. 设置块参数如下:

    • 信号=sp_examples_src

    • 采样时间=1

    • 样品每帧=4

    基于这些参数,将信号从工作区块输出用的采样周期的双信道帧信号1第二帧大小为4

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

  5. 双击缓冲块。该功能块参数:缓冲区对话框打开。

  6. 设置块参数如下,然后单击

    • 输出缓冲器尺寸(每个通道)=3

    • 缓冲重叠=1

    • 初始条件=0

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

  7. 运行模型。

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

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

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

缓冲器延迟和初始条件

在这些例子中将信号缓冲成具有重叠的帧缓冲器帧投入一帧输入中,输入信号是由一定数目的样本的延迟。初始输出样本对应于为指定的值初始条件参数。在上述两个例子中,初始条件都为零。

在大多数情况下,缓冲区和解缓冲区块都有一定的延迟或延迟。这个延迟取决于块参数设置和Simulink万博1manbetx®任务模式。您可以使用rebuffer_delay函数确定帧大小和重叠的任意组合的块延迟的长度。

的语法rebuffer_delay(F,N,V)返回样本中,在多任务操作中由缓冲块和非缓冲块引入的延迟,其中F是输入帧大小,ñ是个输出缓冲区的大小参数设置,v是个缓冲重叠参数设置。

例如,你可以计算出在所讨论的模型中的延迟缓冲器帧投入一帧输入在MATLAB命令行中使用下面的命令:

d =回绝_delay(4,3,1

这一结果与块在这一示例输出一致。请注意,这个模型在Simulink多任务模式下的模拟。万博1manbetx

有关延迟的更多信息,请参阅过量的算法延迟(任务处理延迟)。有关特定块延迟信息,请参见块参照页的“延迟”部分。有关详细信息rebuffer_delay功能,请参阅rebuffer_delay

无缓冲帧信号到采样信号

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

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

输出的采样周期,Ť所以中,与输入帧周期,Ť科幻,由输入帧大小,中号一世

Ť 小号 Ø = Ť F 一世 / 中号 一世

解缓冲块始终保持信号的采样周期(Ť所以=ŤSI)。看到转换在Simulink采样和帧频万博1manbetx关于速率转换的更多信息。

在以下示例中,每帧四个样本的双通道信号是未缓冲的与每帧一个样本的两个信道信号:

  1. 在MATLAB命令提示符键入ex_unbuffer_tut

    打开Unbuffer示例模型。

  2. 双击信号从工作区块。该源块参数:信号从工作区对话框打开。

  3. 设置块参数如下:

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

    • 采样时间=1

    • 样品每帧=4

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

    基于这些参数,将信号从工作区块输出与帧大小4的双通道信号。

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

  5. 双击无缓冲块。该函数块参数:解缓冲对话框打开。

  6. 设置初始条件参数0,然后单击

    无缓冲块将每帧四个采样的双通道信号解压缩为每帧一个采样的双通道信号。

  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

    在无缓冲块unbuffers信号进入两信道信号。所述输出矩阵的每一页表示不同的采样时间。

相关话题