Engee 文档

可变分数延迟

将输入信号延迟一个随时间变化的小数采样点。

类型: VariableFractionalDelay

图书馆中的路径:

/Signal Operations/Signal Operations/Variable Fractional Delay

说明

可变分数延迟 程序块可在输入信号的每个通道上按指定的小数采样点数延迟输入信号。该程序块还可以同时计算同一信号的多个延迟版本。

当延迟值为小数时,程序块会对输入信号进行内插,以非整数采样间隔产生新的采样。程序块支持时变延迟值。也就是说,延迟值可以在一帧采样之间发生变化。

程序块假定 Delay 端口的输入值介于 之间。 - 是参数 最大延迟 (Dmax) (以样本为单位 的值。如果延迟值大于 ,则用 代替, 为 0。

为插值模式选择可接受的 Delay 值时,必须考虑其他因素。 `法罗`必须考虑其他因素。详情请参阅 法罗插值法.

端口

输入

# — 输入信号
vector | matrix

Details

以向量或矩阵形式指定的输入信号。输入信号的数据类型必须与 Delay 输入端的延迟信号相同。

数据类型

Float16 | Float32 | Float64 | Int8 | Int16 | Int32 | Int64 | UInt8 | UInt16 | UInt32 | UInt64 | `固定点

复数支持

# 延迟 — 延迟信号
数组 N on D

Details

D 上以标量、向量、矩阵或数组 N 指定的延迟信号。延迟可以是整数或小数。程序块对信号进行内插,以非整数采样间隔产生新的采样。延迟*输入端的信号必须与*输入*输入端的信号具有相同的数据类型。

下表显示了当*输入处理*设置为 "列作为通道(基于帧)"时,输入延迟信号大小对输入数据的影响。

输入信号 延迟信号 输出信号 延迟信号对输出信号的影响

(帧大小等于 的一个通道)

标量

对输入通道应用一个延迟值。

(帧大小等于 的一个通道)

对每个信号基准应用一个相应的延迟值。

(帧大小等于 的一个通道)

输出数据中的每一列都代表一个具有相应延迟的输入信号。延迟量由输入延迟向量的相应元素给出。

(帧大小等于 的一个通道)

此外,每个帧中的延迟因采样而异。

at ( 帧大小等于 的通道 )

标量

at

应用于所有输入通道的一个延迟值。

( 帧大小等于 通道 )

每个输入通道的单独延迟值。

( 帧大小等于 的通道 )

在一个帧内,延迟值因采样不同而不同。所有信道的延迟值相同。

(帧大小等于 信道)

在一个帧内,延迟值因参考而异。每个输入通道的延迟值不同。

示例 1::[2 3 4 5] 例 2:::[2.5] 例 3:[5.6]

数据类型

Float16 | Float32 | Float64 | Int8 | Int16 | Int32 | Int64 | UInt8 | UInt16 | UInt32 | UInt64 | `固定点

复数支持

输出

# 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]

数据类型

Float16 | Float32 | Float64 | Int8 | Int16 | Int32 | Int64 | UInt8 | UInt16 | UInt32 | UInt64 | `定点

复数支持

参数

主要参数

# 插值模式描述缺失
线性 | 法罗

Details

描述缺失

Linear | Farrow

默认值

Linear

程序使用名称

InterpolationMode

可调谐

可计算

# 法罗滤波器长度(N)描述缺失
Int64 integer

Details

描述缺失

默认值

4

程序使用名称

FarrowFilterLength

可调谐

可计算

# 最大延迟 (Dmax) (以样本为单位描述缺失
Int64 integer

Details

描述缺失

默认值

100

程序使用名称

MaximumDelay

可调谐

可计算

# 输入处理描述缺失
列作为通道(基于帧) | 作为通道的元件(基于样本)

Details

描述缺失

Columns as channels (frame based) | Elements as channels (sample based)

默认值

Columns as channels (frame based)

程序使用名称

InputProcessing

可调谐

可计算

# 初始条件描述缺失
Scalar / array of real and/or complex numbers

Details

描述缺失

默认值

0

程序使用名称

InitialConditions

可调谐

可计算

# 将可能的最小延迟时间增加一个,从而禁用直接馈入功能描述缺失
Logical

Details

描述缺失

默认值

false (关掉)

程序使用名称

DisableDirectFeedthrough

可调谐

可计算

# 适用于较小的输入延迟值描述缺失
剪切到居中内核所需的最小值 | 使用偏心内核

Details

描述缺失

Clip to the minimum value necessary for centered kernel | Use off-centered kernel

默认值

Clip to the minimum value necessary for centered kernel

程序使用名称

SmallInputDelay

可调谐

可计算

算法

Delay 端口上设置的延迟信号值是块存储器 的索引,该存储器至少存储了每个通道在 In 端口上接收到的最后采样的

例如,标量输入序列上的整数延迟 "5 "会从块存储器 中检索并输出第五个输入样本。程序块通过对存储的样本进行内插计算分数延迟。程序块使用线性方法对非整数采样间隔的信号值进行内插。

线性插值法

Details

对于每个采样周期的非整数延迟,线性插值法使用内存中最接近指定延迟的两个样本来计算该点的样本值。

对于矢量输入数据,输出矢量 的计算关系如下:





其中

  • - 是当前基准的索引;

  • - 延迟的小数部分;

  • - 延迟的整数部分;

  • - 延迟的小数部分;

  • - 输入数据矢量

  • - 输出数据向量;

  • , - 内存中与指定延迟最近的两个样本;

  • - 当前索引与插值线最近点之间的距离(以样本为单位)。

该块存储 作为每个通道的输入接收的最后一个样本,其中 是指定的最大延迟。 表示存储的样本。

法罗插值法

Details

在 Farrow 插值模式下,块存储每个通道输入端接收到的最后一个采样的 ,其中 是指定的 Farrow 滤波器长度。

该算法使用拉格朗日法进行插值。

要增加可能的最小延迟值,请选择复选框 将可能的最小延迟时间增加一个,从而禁用直接馈入功能 。选中该复选框可防止在反馈电路中使用该块时出现代数循环。

要确定输入延迟值过低时的行为(小于 ),可使用参数 适用于较小的输入延迟值

  • 剪切到居中内核所需的最小值- 块将较小的输入延迟值增加到磁芯居中所需的最小值。这将增加 ,但会得到更精确的插值。

  • 使用偏心内核- 使用法罗滤波器计算分数延迟时,内核偏离中心。这种模式不会增加 ,但输入延迟值小于 的结果不如核居中得到的结果精确。

另请参见