Variable Fractional Delay
将输入信号延迟一个随时间变化的小数采样点。
类型: VariableFractionalDelay
图书馆中的路径:
|
说明
Variable Fractional Delay 程序块可在输入信号的每个通道上按指定的小数采样点数延迟输入信号。该程序块还可以同时计算同一信号的多个延迟版本。
当延迟值为小数时,程序块会对输入信号进行内插,以非整数采样间隔产生新的采样。程序块支持时变延迟值。也就是说,延迟值可以在一帧采样之间发生变化。
程序块假定 Delay 端口的输入值介于 和 之间。 - 是参数 Maximum delay (Dmax) in samples 的值。如果延迟值大于 ,则用 代替, 为 0。
为插值模式选择可接受的 Delay 值时,必须考虑其他因素。 `Farrow`必须考虑其他因素。详情请参阅 法罗插值法.
端口
输入
#
在
—
输入信号
vector
| matrix
Details
以向量或矩阵形式指定的输入信号。输入信号的数据类型必须与 Delay 输入端的延迟信号相同。
数据类型 |
|
复数支持 |
是 |
#
延迟
—
延迟信号
数组 N on D
Details
在 D 上以标量、向量、矩阵或数组 N 指定的延迟信号。延迟可以是整数或小数。程序块对信号进行内插,以非整数采样间隔产生新的采样。延迟*输入端的信号必须与*输入*输入端的信号具有相同的数据类型。
下表显示了当*输入处理*设置为 "列作为通道(基于帧)"时,输入延迟信号大小对输入数据的影响。
输入信号 | 延迟信号 | 输出信号 | 延迟信号对输出信号的影响 |
---|---|---|---|
在 (帧大小等于 的一个通道) |
标量 |
在 |
对输入通道应用一个延迟值。 |
在 (帧大小等于 的一个通道) |
在 |
在 |
对每个信号基准应用一个相应的延迟值。 |
在 (帧大小等于 的一个通道) |
在 |
在 |
输出数据中的每一列都代表一个具有相应延迟的输入信号。延迟量由输入延迟向量的相应元素给出。 |
在 (帧大小等于 的一个通道) |
在 |
|
此外,每个帧中的延迟因采样而异。 |
at ( 帧大小等于 的通道 ) |
标量 |
at |
应用于所有输入通道的一个延迟值。 |
在 ( 帧大小等于 的 通道 ) |
在 |
在 |
每个输入通道的单独延迟值。 |
在 ( 帧大小等于 的通道 ) |
在 |
|
在一个帧内,延迟值因采样不同而不同。所有信道的延迟值相同。 |
在 (帧大小等于 的 信道) |
在 |
|
在一个帧内,延迟值因参考而异。每个输入通道的延迟值不同。 |
示例 1::[2 3 4 5]
例 2:::[2.5]
例 3:[5.6]
数据类型 |
|
复数支持 |
无 |
输出
#
OUT_1
—
延迟输出信号
vector
| matrix
Details
以向量或矩阵形式返回的经过处理的输出信号。输出的数据类型和复杂度与输入端口 In 的数据类型和复杂度相对应。
下表显示了当*输入处理*设置为 "列作为通道(基于帧)"时,输入延迟信号大小对输入数据的影响。
输入信号 | 延迟信号 | 输出信号 | 延迟信号对输出信号的影响 |
---|---|---|---|
在 (帧大小等于 的一个通道) |
标量 |
在 |
对输入通道应用一个延迟值。 |
在 (帧大小等于 的一个通道) |
在 |
在 |
对每个信号基准应用一个相应的延迟值。 |
在 (帧大小等于 的一个通道) |
在 |
在 |
输出数据中的每一列都代表一个具有相应延迟的输入信号。延迟量由输入延迟向量的相应元素给出。 |
在 (帧大小等于 的一个通道) |
在 |
|
此外,每个帧中的延迟因采样而异。 |
at ( 帧大小等于 的通道 ) |
标量 |
at |
应用于所有输入通道的一个延迟值。 |
在 ( 帧大小等于 的 通道 ) |
在 |
在 |
每个输入通道的单独延迟值。 |
在 ( 帧大小等于 的通道 ) |
在 |
在 |
在一个帧内,延迟值因采样不同而变化。所有信道的延迟值相同。 |
在 (帧大小等于 的 信道) |
在 |
|
在一个帧内,延迟值因参考而异。每个输入通道的延迟值不同。 |
示例 1::[0 0 0 0;0 0 0 0;1 0 0 0;5 2 0 0;2 1 3 0;1 6 4 4]
例 2:::[0 0 0 0;0 0 0 0;0.5 1.0 1.5 2.0;3 1.5 3.5 3.0;3.5 3.5 3.0 2.5;1.5 4.0 2.5 2.5]
例 3::[0 0 0 0;0 0 0 0;0 0 0 0;0 0 0 0;0 0 0 0;0.4 0.8 1.2 1.6]
数据类型 |
|
复数支持 |
是 |
参数
主要参数
#
Interpolation mode —
的插值方法
Linear
| Farrow
Details
指定插值方法。 使用这种方法,该单元对信号进行插值,以获得具有非整数采样间隔的新样本。 可供选择的选项:
-
Linear
-线性插值。 在这种模式下,块保存 输入端口*In*为每个通道接收的最后一个采样,其中 –这是参数值 Maximum delay (Dmax) in samples . -
Farrow
-拉格朗日方法。 在这种模式下,块存储 在每个通道的*In*端口上收到的最新样本在这里 –这是参数值 Farrow filter length (N) .
值 |
|
默认值 |
|
程序使用名称 |
|
可调谐 |
无 |
可计算 |
无 |
#
Farrow filter length (N) —
Farrow滤波器长度
Int64 integer
Details
使用Farrow结构实现的FIR滤波器的长度。 如果长度是`2`,那么滤波器执行线性插值。
依赖关系
若要使用此参数,请为参数设置 Interpolation mode 意义 Farrow
.
默认值 |
|
程序使用名称 |
|
可调谐 |
无 |
可计算 |
是 |
#
Maximum delay (Dmax) in samples —
最大延迟
Int64 integer
Details
块可以产生的最大延迟, . 超过此最大值的延迟值将被截断为 .
例1。 |
|
例2。 |
|
默认值 |
|
程序使用名称 |
|
可调谐 |
无 |
可计算 |
是 |
#
Input processing —
输入数据处理方法
Columns as channels (frame based)
| Elements as channels (sample based)
Details
指定块应如何处理输入数据。 您可以设置此参数的值:
-
Columns as channels (frame based)
(默认)-如果选择此方法,则块将每列输入数据作为单独的通道处理。 该块检查每个 输入信号列作为独立的通道包含 连续计数。*Delay*输入端口上的信号包含浮点值,这些值确定将应用延迟的输入采样数。
信号处理方法取决于*延迟*端口上信号的维度:
-
如果*Delay*端口上的信号是标量,那么它用于均匀地延迟每个通道中的所有样本。
-
如果*Delay*端口上的信号是长度的列向量 ,那么输入信号的每个样本都有自己的延迟值。 在多通道输入的情况下,相同的延迟矢量被应用于输入信号的每个通道。
-
如果*Delay*端口上的信号是一串长度 ,则延迟串的每个元素对应于其输入通道。
-
如果*延迟*端口上的信号是矩阵 上 ,那么它包含输入信号的每个相应元素的不同延迟。
例如,如果 –这是一个大小矩阵 上 ,'[v(1)v(2)。.. v(Mi)]
,则对输入信号的第一个采样施加`v(1)`的延迟,对第二个采样施加`v(2)
,依此类推。 块应用包含在一组小数延迟 ,同样地应用于多通道输入的每个通道。 -
-
Elements as channels (sample based)
–如果选择此方法,则块将每个输入元素视为单独的通道。 块检查每个元素 -输入的维数组, ,作为独立频道。 延迟端口上的输入信号, ,必须是 -与输入相同维度的维数组 ,或标量值,使 .例如,考虑输入矩阵 上 . 该块考虑每个 矩阵的元素作为独立信道。 *Delay*端口的输入可以是矩阵 上 范围内的浮点值 ,其确定每个输入通道的延迟的采样间隔的数量,或者它可以是标量浮点值, ,为此所有信道必须同样延迟。
有关详细信息,请参阅 按帧和计数进行信号处理.
值 |
|
默认值 |
|
程序使用名称 |
|
可调谐 |
无 |
可计算 |
无 |
#
Initial conditions —
初始值
Scalar / array of real and/or complex numbers
Details
指定在模拟开始时存储在块存储器中的值。 此参数的大小取决于块输出处的初始值是固定的还是随时间变化的。 该块检查每个 输入列作为包含 来自独立通道的连续样本。
对于输入矩阵 上 您可以按如下方式设置参数:
-
定初始条件的标量值。 该块将用指定的值填充其内部存储器中的每个通道计数。
-
取决于插值方法的时变初始条件。 要为每个通道设置不同的时变初始条件,请按如下方式设置此参数:
-
为参数设置 Initial conditions 大小的数组 上 上 ,在哪里 -参数值 Maximum delay (Dmax) in samples .
-
例1。 |
|
默认值 |
|
程序使用名称 |
|
可调谐 |
无 |
可计算 |
是 |
#
Disable direct feedthrough by increasing minimum possible delay by one —
禁用直接通道
Logical
Details
选择此选项可通过增加最小可能延迟值来禁用直接通过。
如果为参数设置 Input processing 意义 Columns as channels (frame based)
,则该块将最小可能延迟值增加`frame size-1'。 同样,如果为参数设置 Input processing 意义 Elements as channels (sample based)
,则该块将最小可能延迟值增加一个计数。
通过选中此框,您可以使用该块 Variable Fractional Delay 在反馈循环中。
默认值 |
|
程序使用名称 |
|
可调谐 |
无 |
可计算 |
无 |
#
For small input delay values —
低输入延迟值的操作
Clip to the minimum value necessary for centered kernel
| Use off-centered kernel
Details
使用以下选项之一指定输入延迟值太低而无法使内核居中时块的行为:
-
Clip to the minimum value necessary for centered kernel
-块增加 到定心所必需的最低值。 -
Use off-centered kernel
-块存储值 并使用具有移位核的Farrow滤波器计算内插值。
依赖关系
若要使用此参数,请为参数设置 Interpolation mode 意义 Farrow
.
值 |
|
默认值 |
|
程序使用名称 |
|
可调谐 |
无 |
可计算 |
无 |
算法
在 Delay 端口上设置的延迟信号值是块存储器 的索引,该存储器至少存储了每个通道在 In 端口上接收到的最后采样的 。
例如,标量输入序列上的整数延迟 "5 "会从块存储器 中检索并输出第五个输入样本。程序块通过对存储的样本进行内插计算分数延迟。程序块使用线性方法对非整数采样间隔的信号值进行内插。
线性插值法
Details
对于每个采样周期的非整数延迟,线性插值法使用内存中最接近指定延迟的两个样本来计算该点的样本值。
对于矢量输入数据,输出矢量 的计算关系如下:
其中
-
- 是当前基准的索引;
-
- 延迟的小数部分;
-
- 延迟的整数部分;
-
- 延迟的小数部分;
-
- 输入数据矢量
-
- 输出数据向量;
-
, - 内存中与指定延迟最近的两个样本;
-
- 当前索引与插值线最近点之间的距离(以样本为单位)。
该块存储 作为每个通道的输入接收的最后一个样本,其中 是指定的最大延迟。 表示存储的样本。
法罗插值法
Details
在 Farrow 插值模式下,块存储每个通道输入端接收到的最后一个采样的 ,其中 是指定的 Farrow 滤波器长度。
该算法使用拉格朗日法进行插值。
要增加可能的最小延迟值,请选择复选框 Disable direct feedthrough by increasing minimum possible delay by one 。选中该复选框可防止在反馈电路中使用该块时出现代数循环。
要确定输入延迟值过低时的行为(小于 ),可使用参数 For small input delay values :
-
Clip to the minimum value necessary for centered kernel
- 块将较小的输入延迟值增加到磁芯居中所需的最小值。这将增加 ,但会得到更精确的插值。 -
Use off-centered kernel
- 使用法罗滤波器计算分数延迟时,内核偏离中心。这种模式不会增加 ,但输入延迟值小于 的结果不如核居中得到的结果精确。