缓冲和框架处理
缓冲输入帧
多通道信号的帧的大小1
可以缓冲到多通道信号帧尺寸吗l使用缓冲块。l大于1
。
下图是一个图形表示信号的帧的大小1
被转换成一个信号的帧的大小l由缓冲块。
在接下来的例子中,一个双通道1
样品每帧信号缓冲成双通道4
使用一个缓冲块样品每帧信号:
在MATLAB®命令提示符下,键入
ex_buffer_tut
。缓冲区模型打开示例。
双击信号从工作空间块。的源块参数:信号从工作区对话框打开。
设置参数如下:
信号=
[1:10;1:1:-10)
样品时间=
1
样品每帧=
1
最后的数据值后的形式输出=
设置为零
基于这些参数,信号从工作区块输出一个信号的帧长度1和一个示例1秒。因为你设置了样品每帧参数设置为1时,信号从工作区块输出双通道样本在每个样本一次。
保存这些参数并关闭对话框点击好吧。
双击缓冲块。的功能块参数:缓冲区对话框打开。
设置参数如下:
每通道输出缓冲区大小()=
4
缓冲重叠=
0
初始条件=
0
因为你设置了输出缓冲区的大小参数
4
,缓冲块输出帧信号帧大小4。运行模型。
下图是一个图形化的解释在仿真模型的行为。
请注意
此外,您可以设置样品每帧参数的信号从工作区块4
和创建相同的信号上面显示不使用一个缓冲块。的信号从工作区块执行内部缓冲,以输出一个双通道框架。
缓冲信号帧重叠
在某些情况下是有用的处理数据表示原始信号的重叠部分。例如,在估计信号的功率谱,通常需要计算FFT重叠部分的数据。重叠的缓冲区也需要计算统计数据在一个滑动窗口,或自适应滤波。
的缓冲重叠参数的缓冲块指定重叠点的数量,l。在重叠的情况下(l> 0),输出帧周期(米o- - - - - -l)*T如果,在那里T如果输入样本期和吗米o是缓冲区大小。
请注意
设置缓冲重叠参数一个负值来实现输出帧速率慢比不重叠的情况。输出帧周期T如果* (米o- - - - - -l),但现在有了l< 0。只有米o最新输入包含在输出缓冲区。前面的l输入被丢弃。
在下面的例子中,四通道信号帧长度1
和采样周期1是一个信号缓冲帧尺寸3和帧周期2。由于缓冲区重叠,输入样本时期并不保守,和输出样本周期是2/3:
在MATLAB命令提示符,键入
ex_buffer_tut3
。缓冲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);
双击信号从工作空间块。的源块参数:信号从工作区对话框打开。
组块的参数如下:
信号=
sp_examples_src
样品时间=
1
样品每帧=
1
形成最终的数据值后输出=
设置为零
基于这些参数,信号从工作区块输出信号与示例1秒。因为你设置了样品每帧参数设置为1时,信号从工作区块输出四通道样本在每个样本一次。
保存这些参数并关闭对话框点击好吧。
双击缓冲块。的功能块参数:缓冲区对话框打开。
设置块参数如下所示,然后单击好吧:
每通道输出缓冲区大小()=
3
缓冲重叠=
1
初始条件=
0
因为你设置了输出缓冲区的大小参数
3
、缓冲块输出信号帧尺寸3。另外,因为你设置缓冲重叠参数1
,最后的样本从前面的输出帧是第一个样本在接下来的输出帧。运行模型。
下图是一个图形化的解释在仿真模型的行为。
在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是rebuffered信号帧尺寸3和帧周期2。由于重叠,输入样本时期并不保守,和输出样本周期是2/3:
在MATLAB命令提示符,键入
ex_buffer_tut4
。缓冲T4模型打开示例。
另外,变量
sp_examples_src
是加载到MATLAB工作区。这个变量的定义是sp_examples_src = [1 1;2 1;3 0;4 0;5 1;6 1;7 0;8 0]
双击信号从工作空间块。的源块参数:信号从工作区对话框打开。
组块的参数如下:
信号=
sp_examples_src
样品时间=
1
样品每帧=
4
基于这些参数,信号从工作区块输出双通道帧信号样本的时期
1
第二帧的大小4
。保存这些参数并关闭对话框点击好吧。
双击缓冲块。的功能块参数:缓冲区对话框打开。
设置块参数如下所示,然后单击好吧:
每通道输出缓冲区大小()=
3
缓冲重叠=
1
初始条件=
0
基于这些参数,双通道帧缓冲块输出信号帧的大小
3
。运行模型。
下图是在仿真模型的图形化表示行为。
注意,输入才开始出现在输出的最后一行第三输出矩阵。这是由于块延迟。
看到多余的算法延迟(任务延迟)关于算法的一般信息延迟。说明如何计算缓冲延迟,和看到的缓冲延迟和初始条件。
缓冲延迟和初始条件
例子中缓冲信号帧重叠和缓冲帧输入到其他帧输入,输入信号延迟了一定数量的样品。初始输出对应于指定的值的样本初始条件参数。初始条件为零在上面提到的例子。
在大多数情况下,缓冲和Unbuffer块有一定的延迟或延迟。这延迟取决于块参数设置和仿真软件®任务模式。您可以使用rebuffer_delay
函数来确定物体的长度延迟的任意组合帧大小和重叠。
的语法rebuffer_delay (f, n v)
返回延迟,样本中,引入的缓冲和unbuffering块在多任务操作f
是输入帧大小,n
是输出缓冲区的大小参数设置,v
是缓冲重叠参数设置。
例如,您可以计算模型中讨论的延迟缓冲帧输入到其他帧输入使用以下命令在MATLAB命令行:
d = rebuffer_delay (4、3、1) d = 8
这个结果同意块输出的例子。注意,这个模型在仿真软件模拟多任务模式。
关于延迟的更多信息,请参阅多余的算法延迟(任务延迟)。关于一个特定的块的延迟信息,请参阅“延迟”一节块引用的页面。更多的信息rebuffer_delay
功能,请参阅rebuffer_delay
。
Unbuffer帧信号样本信号
你可以unbuffer多通道信号的帧长度大于1
成多通道信号的帧长度等于1
使用Unbuffer块。的Unbuffer块的执行逆操作缓冲块的缓冲过程,信号与帧长度1缓冲到一个信号帧长度大于1。生成一个Unbuffer的块N声道输出的输出从一个n沟道每帧包含一个示例输入包含多个渠道每帧。每个输入矩阵的第一行总是第一个输出。
下图是这个过程的图形化表示。
示例的输出,T所以有关输入帧期间,Tfi输入帧尺寸,米我。
的Unbuffer块总是保留了信号样本时期(T所以=T如果)。看到将样品和帧速率在仿真软件中使用框架Rebuffering块关于汇率转换的更多信息。
在接下来的例子中,有四个样品的双通道信号每帧无缓冲的成双通道信号与一个样本每帧:
在MATLAB命令提示符,键入
ex_unbuffer_tut
。模型打开Unbuffer例子。
双击信号从工作区块。的源块参数:信号从工作区对话框打开。
组块的参数如下:
信号=
[1:10;1:1:-10)
样品时间=
1
样品每帧=
4
形成最终的数据值后输出=
设置为零
基于这些参数,信号从工作区块输出双通道信号帧尺寸4。
保存这些参数并关闭对话框点击好吧。
双击Unbuffer块。的功能块参数:Unbuffer对话框打开。
设置初始条件参数
0
,然后单击好吧。的Unbuffer每帧块unbuffers有四个样品的双通道信号为双通道信号与一个样本每帧。
运行模型。
下图是一个发生在建模仿真的图形表示形式。
请注意
Unbuffer块生成初始条件不如下图所示指定的值初始条件参数。看到Unbuffer参考页面的初始条件的信息出现在输出。
在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
的Unbuffer块unbuffers信号为双通道信号。每个页面的输出矩阵代表一个不同的样本。