AnyMath 文档

lpc

线性预测滤波器的系数。

库::`工程师`

语法

函数调用

争论

输入参数

# x — 输入数组

+ 向量资料 | 矩阵

Details

指定为向量或矩阵的输入数组。 如果 x 是一个矩阵,那么该函数将每列视为一个独立的通道。

# *p*是 预测滤波器多项式的阶数

+ 长度(x)-1 (默认情况下)| 正整数标量

Details

预测滤波器多项式的阶数,作为正整数标量给出。 意义 p 必须小于或等于长度 [参数:x].

输出参数

# 一个 — 线性预测器的系数

+ 向量字符串 | 矩阵

Details

作为行向量或矩阵返回的线性预测器的系数。 系数相关 [参数:p] 过去的计数 [参数:x] 与当前值:

# *g*是 预测误差的方差

+ 标量,标量 | 向量资料

Details

作为标量或向量返回的预测误差的方差。

例子:

利用直接预测方法估计时间序列

Details

让我们使用三阶直接预测器评估一系列数据。 让我们将估计值与原始信号进行比较。

首先,我们将创建信号数据作为归一化白高斯噪声控制的自回归(AR)过程的输出。 我们使用最新的 4096 计数AR进程的输出数据,以避免启动过程中的瞬变。

import EngeeDSP.Functions: randn, filter, lpc, xcorr

noise = randn(50000,1)
x = filter(1,[1 1/2 1/3 1/4],noise)
x = x[end-4096+1:end]

计算预测器系数和估计信号。

a,g = lpc(x, 3)
est_x = filter([0; -a[2:end]], 1, x)

让我们通过绘制后者来比较预测信号与原始信号 100 每个信号的计数。

plot(1:100, x[end-99:end], label="Original signal", linewidth=1)
plot!(1:100, est_x[end-99:end], label="LPC estimate", linestyle=:dash, linewidth=1)

plot!(xlabel="Sample Number", ylabel="Amplitude")
plot!(grid=true)

lpc 1

计算预测误差和预测误差的自相关序列。 让我们绘制自相关图。 预测误差近似为白高斯噪声,如对于三阶自回归模型的输入过程所期望的。

e = x-est_x
acs,lags = xcorr(e,"coeff")

plot(lags', acs)
plot!(xlabel="Lags", ylabel="Normalized Autocorrelation")

lpc 2

此外

预测误差

Details

预测误差 它可以被认为是预测滤波器误差的输出。 ,在哪里

  • -最优线性预测器;

  • -输入信号;

  • -预测信号。

rlevinson cn

算法

功能 lpc 确定直接线性预测器的系数,使用最小二乘法最小化预测误差。 它在滤波器设计和语音编码中得到应用.

功能 lpc 使用自相关自回归(AR)建模方法查找滤波器系数。 生成的滤波器可能不能准确地模拟过程,即使数据的序列确实是正确顺序的AR过程,因为自相关方法隐式地将数据包围在一个窗口中。 换句话说,该方法假设信号的样本超出长度 [参数:x] 平等 0.

功能 lpc 计算最小二乘解 ,在哪里

-长度 . 使用正态方程求解最小二乘问题 导致Yule-Walker方程:

哪里 使 . Levinson-Durbin算法(见 `*莱文森)求解Yule-Walker方程 行动。

文学作品

  1. Jackson,L.B. Digital Filters and Signal Processing. 第2版。 波士顿:Kluwer Academic Publishers,1989,第255-257页。