线性预测

维基百科,自由的百科全书
跳转至: 导航搜索

线性预测是根据已有采样点按照线性函数计算未来某一离散信号的数学方法。

数字信号处理中,线性预测经常称为线性预测编码(LPC),因此也可以看作是数字滤波器的一部分。在系统分析中,线性预测可以看作是数学建模或者最优化的一部分。

预测模型[编辑]

最常见的表示是

\widehat{x}(n) = -\sum_{i=1}^p a_i x(n-i)

其中\widehat{x}(n)是预测的信号值,x(n-i)是前面观测到的值,a_i是预测系数。这种预测产生的误差是

e(n) = x(n) - \widehat{x}(n)

其中x_n是真正的信号值。

这个等式对于所有类型的一维线性预测都是有效的,它们的不同之处是参数a_i选择方式的不同。

对于多维信号,误差经常定义为

e(n) = ||x(n) - \widehat{x}(n)||

其中||.||是适当选择的矢量范数

预测参数[编辑]

在参数a_i优化中最常见的选择是均方根准则,也称为自相关准则。在这种方法中减小了最小均方误差E[e2(n)]的期望值,这样就得到等式

\sum_{i=1}^p a_i R(i-j) = -R(j)

对于1 ≤ jp,其中R是信号xn自相关,定义为

\ R(i) = E\{x(n)x(n-i)\}

其中E期望值。在多维情况下,这相当于最小化L2范数

上面的方程称为normal方程或者Yule-Walker方程,在矩阵形式下这个方程也可以写作

Ra = -r,

其中自相关矩阵R是元素为ri,j = R(ij)的对称轮换矩阵en:circulant matrix),矢量r是自相关矢量rj = R(j),矢量a是参数矢量。

另外一个更为通用的实现是最小化

e(n) = x(n) - \widehat{x}(n) = x(n) + \sum_{i=1}^p a_i x(n-i) = \sum_{i=0}^p a_i x(n-i)

其中通常使用a_0=1约束参数a_i以避免trivial解。这个约束产生与上面同样的预测,但是normal方程是

\ Ra = [1, 0, ... , 0]^{\mathrm{T}}

其中索引i的范围是从0到p,并且R是 (p + 1)×(p + 1)矩阵。

参数优化是一个非常广泛的话题,人们已经提出了大量的其它实现方法。

但是,自相关方法仍然是最为常用的方法,例如在GSM标准中的语音编码就在使用这种方法。

矩阵方程Ra = r的求解计算上工作量很大,高斯消去法求矩阵的逆可能是最为古老的解法了,但是这种方法没有有效地利用Rr的对称性。一种更快的算法是Norman Levinson在1947年提出的Levinson递归法en:Levinson recursion),它递归地计算方程的解。后来Delsarte et al.提出了一种称为split Levinson recursion的改进方法,它仅需要一半的乘除计算量,它在随后的递归层面上使用了参数矢量的特殊对称特性。

参见[编辑]

参考文献[编辑]

  • G. U. Yule. On a method of investigating periodicities in disturbed series, with special reference to wolfer’s sunspot numbers. Phil. Trans. Roy. Soc., 226-A:267–298, 1927.
  • J. Makhoul. Linear prediction: A tutorial review. Proceedings of the IEEE, 63 (5):561–580, April 1975.
  • M. H. Hayes. Statistical Digital Signal Processing and Modeling. J. Wiley & Sons, Inc., New York, 1996.