线性预测是一种利用之前样品的线性函数来估计未来离散时间信号的值的数学运算方式。
在数字信号处理中,线性预测通常被称为线性预测编码(LPC),因此可以视为滤波器理论的一个子集。在系统分析(数学的一个分支)中,线性预测可以看作是数学建模或者是优化问题的一部分。
1. 预测模型
最普通的线性预测表达式是
这里的$\widehat{x}(n)$是预测的信号值,$x(n-i)$是之前获得的值,${a}{i}$是预测系数,估计所产生的误差是
这里的$x(n)$是正确的信号值。
这些方程对于所有类型的一维线性预测都是有效的。对于不同的方法其所不同的是参数 ${a}{i}$ 的选择。
对于多维信号而言,误差指标一般被定义为
这里的$\left | . \right |$是一个合适的向量范数。预测函数($\widehat{x}(n)$)通常使用卡尔曼滤波器和平滑来分别估计当前和过去的信号。
2. 估计参数
对于优化参数 $\widehat{x}(n)$,最常见的选择是均方根标准,也被称为自相关性准则。在这个方法中,我们使平方误差的期望值最小化,得到的公式是
1 ≤ j ≤ p
这里的R是信号x(n)
的自相关性。定义是:
这里的 $E$ 是期望值。在多维情况中,这个对应于L2范数的最小化。
上面的方程称为normal方程或者Yule-Walker方程。该方程在矩阵形式中可以等价于
$Ra=-r$
这里的自相关矩阵R是对称的,$p*p$的Toeplitz
矩阵,其元素,向量$a$是一个参数向量。
另一个更一般的做法是尽可能降低在公式中定义的误差平方和
其中对于所有$a_i$的最优化问题,都必须限制在$a_0=-1$内。
另一方面,如果均方预测误差被约束为一致的,同时预测误差方程被包括在normal方程的顶部,增广组方程是由
得到,其中索引i从0到$p$,同时 $R$ 是一个 $(p + 1) × (p + 1)$ 矩阵。
线性预测参数的规范是一个很广泛的主题,而且大量的方法已经被提出。实际上,自相关方法是最常见的,例如在语音编码GSM标准中使用。
矩阵方程 $Ra = r$在计算量上是一个相对大的过程。矩阵求逆的高斯算法可能是最古老的方法,但这种方法并不能有效地使用R和r的对称性。一个更快的算法是Norman Levinson在1947年提出的Levinson recursion算法,利用递归来解决这个问题。特别是上面的自相关方程,可以更有效地被Durbin算法求解。
之后,Delsarte等0提出了一种对于这个算法的改进,称为split Levinson recursion 这个算法需要大约一半乘法和除法。它使用参数向量的一个特殊的对称属性在后来的递归上。也就是说,对于包含$P$项的最优预测点的计算利用了包含$P-1$项的最优预测点的相似计算值。
识别模型参数的另一种方式是迭代地计算出使用了卡尔曼滤波器和获得的期望最大化算法中的最大似然估计值的状态估计值。