Engee 文档

Levinson-Durbin

使用列文森-杜宾递推法求解线性方程组。

类型: LevinsonDurbin

图书馆中的路径:

/Signal Operations/Math Functions/Matrices and Linear Algebra/Linear System Solvers/Levinson-Durbin

说明

程序块 Levinson-Durbin 求解 n 阶线性方程组

在下列情况下

  • - Hermite正有限矩阵 Heatsheet.

  • - 与 R 的第一列移位一个元素且符号相反的矩阵重合:

    ]

程序块 的输入可以是矢量或矩阵。 如果输入是矩阵,程序块会将每一列视为独立信号并分别求解。 每个输入信号都包含自相关序列从 0n 的滞后期,这些滞后期出现在矩阵 R 中。

该模块可以以各种组合方式输出多项式系数 A、反射系数 K 和预测误差功率 P。 输出(s)*参数通过选择以下设置之一来启用*A*和*K*输出:

  • A` - 对于每个信号,A 端口输出 - 列文森-杜宾方程的解。 A 的维度与输入相同。 每个输出信号的元素也可视为 n 阶自回归(AR)过程的系数。

  • K - 对于每个信号,K 端口输出 ,其中包含 n 个反射系数,维度与输入相同,但减去一个元素。 选择 K 时,标量输入信号会导致错误。反射系数可用于实现本页稍后描述的 AR 过程的晶格表示。

  • A 和 K - 程序块将这两个选择输出到相应的端口。 当选择 "A 和 K "时,标量输入信号会导致错误。

选择 * 输出预测误差功率 (P)* 复选框,可输出每个信号的预测误差功率 P。 对于每个信号,P 表示具有抽头 A 和输入自相关性 r 的 FIR 滤波器的输出功率,其中 A 表示预测误差滤波器,r 是块的输入。在这种情况下,A 是分离滤波器。P 对每个输入信号都有一个元素。

如果选中复选框 如果滞后 0 的值为零,A=[1 个零],K=[零],P=0(默认值),则元素 r(1) 为零的输入信号会产生一个零值输出。未选中时,输入信号 会在输出端产生 "NaN"。一般来说,输入 是无效的,因为它没有构造正有限矩阵 R。但是,在模拟开始时,程序块经常会接收到零值的输入。复选框可避免在此期间传播 NaN

应用

本程序块中实现的 Levinson-Durbin 公式的一个应用是 Yule-Walker AR 问题,该问题涉及将未知系统建模为一个自回归过程。 这种过程可以模拟为一个全极点 IIR 滤波器的输出,输入为白高斯噪声。 在 Yule-Walker 问题中,使用信号的自相关序列来获得最佳估计值会导致上述形式的方程 ,使用 Levinson-Durbin 递归法可以最有效地解决这个问题。 在这种情况下,程序块的输入为自相关序列,r(1) 为零滞后值。 程序块端口 A 的输出信号包含自回归过程的系数,该系数是系统的最佳模型。 系数按 z 的幂递减排序,自回归过程本身具有最小相位。 预测误差 决定了未知系统的增益:

模块 K 端口的输出信号包含该 IIR 滤波器晶格实现的相应反射系数

Levinson-Durbin 算法的另一个常见应用是线性预测编码,其目标是找到移动平均(MA)过程(或 FIR 滤波器)的系数,该滤波器可根据当前信号样本和有限数量的过去样本预测下一个信号值。 在这种情况下,程序块的输入是信号的自相关序列,其中 r(1) 为零滞后值,而程序块 A 端口的输出则包含预测 MA 过程的系数(z 阶数递减)。

这些系数解决了以下优化问题:

输出到模块 K 端口的数据包含相应的反射系数 ,用于该 FIR 滤波器的晶格实现。

算法

该算法需要对每个输入信号进行 运算。 因此,与标准高斯消除法(每个信号都需要进行 运算)相比,这种实现方法在大 n 时效率更高。

端口

输入

端口_1 - 输入信号
标量 | 向量 | 矩阵

输入信号。

数据类型: Float16, Float32, Float64, Int8, Int16, Int32, Int64, UInt8, UInt16, UInt32, UInt64, Bool

输出

K - 线性方程组的解
标量 | 向量 | 矩阵

输出信号;线性方程组的解。 输出信号与输入信号大小相同。

数据类型: Float16, Float32, Float64, Int8, Int16, Int32, Int64, UInt8, UInt16, UInt32, UInt64, Bool

参数

输出(s) - 输出数据类型
K(默认) | A | `A 和 K

指定应输出解决方案 的哪种表示形式:模型系数 (A)、反射系数 (K),或两者(A 和 K)。 如果输入是标量或字符串向量,则应将此参数设置为 A

输出预测误差功率 (P) - 输出预测误差功率 (P)
关闭(默认)` | 开启

选择向 P 端口输出预测误差功率。

如果滞后 0 的值为零,A=[1 个零],K=[零],P=0 - 对输入的第一个元素为零作出反应
已禁用(默认) | 已启用

如果选中复选框且输入*r(1)*的第一个元素为零,程序块将分别输出以下向量:

  • A = [1 zeros(1,n)]`

  • K = [zeros(1,n)]

  • P = 0

如果未选中该复选框,则对于元素 r(1) 等于零的每个信号,程序块都会输出向量 NaN