主要内容

转换样本和帧速率金宝app使用帧重新缓冲块

帧再缓冲块

有两种常见的操作会影响信号的帧速率和采样速率:帧再缓冲和直接速率转换。帧再缓冲(Frame rebuffering)用于改变信号的帧大小以提高模拟吞吐量,通常也会改变信号的采样速率或帧速率。直接速率转换,如上采样和下采样,可以通过改变信号的帧速率或帧大小来实现。有关直接速率转换技术的详细信息,请参见在Simulink中使用速率转换块转换样本和帧速率金宝app

本主题包含两个模型,演示如何使用帧再缓冲块改变信号的采样率。下面是DSP System Toolbox™中的帧再缓冲块列表。

有时你可能需要在模型中的某个点将信号重新缓冲为新的帧大小。例如,您的数据采集硬件可能会在内部将采样信号缓冲到对模型中的信号处理算法不是最优的帧大小。在这种情况下,可以将信号重新缓冲到更适合预期操作的帧大小,而不会对数据或采样率进行任何更改。

用于帧再缓冲和信号保存的块

缓冲操作为信号处理模型中的速率变化提供了另一种机制。许多缓冲操作的目的是调整信号的帧大小不改变信号的采样率T年代.这个操作通常会导致信号帧速率的改变Tf由下式可知:

T f T 年代

然而,只有在原始信号中不添加或删除样本时,这个方程才成立。因此,这个方程不适用于产生重叠帧的缓冲操作,仅部分取消缓冲帧,或通过添加或删除样本来改变数据序列。

在Buffers库中有两个块可以用来在不改变信号本身的情况下改变信号帧大小:

  • 缓冲-重新分配信号样本到更大或更小的帧大小

  • Unbuffer-取消缓冲帧大小的信号以及帧周期Tf到具有帧大小的信号1以及帧周期T年代

缓冲块只保留信号数据和采样周期缓冲重叠参数设置为0.输出帧周期T由下式给出:

T f o o T f

在哪里Tfi为输入帧周期,输入帧大小,和o输出帧大小是否由输出缓冲区大小(每个通道)参数。

该Unbuffer块对帧信号进行Unbuffer,并且始终保存该信号数据和采样周期。

T 年代 o T f /

在哪里Tfi而且分别是帧信号的周期和大小。

这两个缓冲而且Unbuffer块保留转换中序列的采样周期(T所以T如果).

块的帧再缓冲与改变的信号

某些形式的缓冲除了调整帧大小外还改变信号数据或采样周期。当您希望通过重叠信号的连续帧来创建滑动窗口时,或者当您希望从每个输入帧中选择一个样本子集进行处理时,这种类型的缓冲是可取的。

下面的块通过调整信号的帧大小来改变信号。在这个列表中,T如果输入序列是否采样周期,和Tfi而且T分别为输入和输出帧周期:

  • 缓冲——这是缓冲块向序列中添加重复样本缓冲重叠参数l设置为非零值。输出帧周期与输入采样周期的关系如下式所示:

    T f o o l T 年代

    在哪里o输出帧大小是否由输出缓冲区大小(每个通道)参数。因此,新的输出采样周期为

    T 年代 o o l T 年代 o

  • 延迟线——这是延迟线块向序列中添加重复的样本延迟线尺寸参数o大于1。输出和输入帧周期相同并且等于输入采样周期,TTfiT如果.新的输出采样周期为:

    T 年代 o T 年代 o

  • 变量选择器——这是变量选择器块可以在输入帧时删除、添加和重新排列样本选择设置为.输出和输入帧周期是相同的,TTfi,新的输出采样周期为:

    T 年代 o T 年代 o

    在哪里o块输出的长度是否由元素向量。

在所有这些情况下,输出序列的采样周期不等于输入序列的采样周期。

通过保留采样周期缓冲信号

在这个例子中,Buffer块将信号重新缓冲为更大的帧大小。Unbuffer块将输入帧缓冲为一个标量值序列。

将采样周期为0.125秒的信号从帧大小为8的帧大小重新缓冲为16的帧大小。这个再缓冲过程将帧周期从1秒翻倍到2秒,但不改变信号的采样周期,$T_{so} = T_{si} = {0.125}$.然后使用Unbuffer块将信号解缓冲为一个样本输出序列。然后帧周期变为0.125秒,这等于信号的采样周期的值。

这个过程不会从原始信号中添加或删除样本。

打开模型“ex_buffer_tut1”

“来自工作区的信号”块具有样品时间参数设置为0.125,则每帧样本参数设置为8。生成信号中的每一帧包含8个采样,采样周期为0.125秒。

Buffer块有输出缓冲区大小(每个通道)参数设置为16,并且缓冲重叠参数设置为0。Buffer块将信号从8帧大小重新缓冲为16帧大小。

调试选项卡上,选择信息覆盖>信号的维度.运行模型时,信号的尺寸显示在连接块的线旁边。模型中的信号维数证实了以下几点:

  • 缓冲块将信号的帧大小从8更改为16。

  • 取消缓冲块将信号取消缓冲为标量输出序列。

若要查看对信号帧周期的影响,可以通过选择启用颜色编码、注释和定时图例信息覆盖>颜色文本时间的传说.在Timing Legend中,您可以查看模型中每个信号的帧周期值、与帧周期相关的颜色以及相应的注释。

可以看到,信号的输入帧周期(在模型中用D2表示)由$T_{fi} = M_{i} \乘以T_{si}$${8} \times {0.125}$等于1秒。Buffer块将帧周期从1秒增加到2秒。后面的Unbuffer块将信号缓冲为一个标量输出序列。未缓冲序列的帧周期为0.125秒,与信号的采样周期相匹配。

通过改变采样周期来缓冲信号

在这个例子中,Buffer块将信号重新缓冲到一个更大的帧大小,同时每帧重叠4个样本。

某些形式的缓冲除了调整帧大小外还改变信号数据或采样周期。在下面的示例中,采样周期为0.125秒的信号从帧大小为8的帧大小重新缓冲到帧大小为16的帧大小,缓冲区重叠为4个样本。

打开模型“ex_buffer_tut2”

“来自工作区的信号”块具有样品时间参数设置为0.125,则每帧样本参数设置为8。生成信号中的每一帧包含8个采样,采样周期为0.125秒。

Buffer块有输出缓冲区大小(每个通道)参数设置为16,并且缓冲重叠参数设置为4。Buffer块将信号从8帧大小重新缓冲为16帧大小。在初始输出之后,每个输出帧的前四个样本由前一个输出帧的后四个样本组成。

调试选项卡上,选择信息覆盖>信号的维度.运行模型时,信号的尺寸显示在连接块的线旁边。模型中的信号维数证实了以下几点:

  • 缓冲块将信号的帧大小从8更改为16。

  • 取消缓冲块将信号取消缓冲为标量输出序列。

若要查看对信号帧周期的影响,可以通过选择启用颜色编码、注释和定时图例信息覆盖>颜色文本时间的传说.在Timing Legend中,您可以查看模型中每个信号的帧周期值、与帧周期相关的颜色以及相应的注释。

考虑到重叠,输出帧周期T_ {fo}识别美元Buffer块的值由下式给出:

$$T_{fo} = (M_{o} - L) \乘以T_{si}$$

在哪里美元M_ {o} $输出帧大小,等于16,L美元重叠和等于4吗T_ {si}识别美元为输入采样周期,等于0.125秒。将这些值替换为Buffer块的输出帧周期T_ {fo}识别美元就变成了$(16 - 4) \乘以0.125$$ 1.5美元秒。信号对应的采样周期$T_{so} = T_{fo}/M_{o}$=1.5/16美元$ 0.0938美元秒。当你将信号缓冲成一个样本输出序列时,信号的帧周期(在模型中显示为D2)与0.0938秒的样本周期值匹配。因此,信号的数据和采样周期都被缓冲操作所改变。

相关的话题