线性预测的数学模型在很多领域都有应用, 包括时间序列分析, 数字信号处理, 最优化方法等等.
一阶的情况
考虑一个序列 $x[n]$, 最简单的线性预测方法是假设每个序号的值和前一个序号的值有线性关系, 线性系数设为 $a$. 也就是
$$\hat{x}[n] = -a x[n-1]$$
定义误差函数 $e[n] \equiv x[n] - \hat{x}[n]$, 使用最小均方差误差准则控制误差达到最小值:
$$\min\ E{e^2[n]} = E{(x[n]+ax[n-1])^2} $$
最大值通常是极大值, 我们对 $a$ 求导, 令导函数为0来获得极值点. 故令
$$\frac{\partial E{e^2[n]}}{\partial a} = E{2e[n]\frac{\partial e[n]}{\partial a}} = 0$$
因为 $e[n] = x[n] + ax[n-1]$
所以,
$$\frac{\partial e[n]}{\partial a} = x[n-1]
$$
代回上式得到
$$\frac{\partial E{e^2[n]}}{\partial a} = E{2(x[n]-\hat{x}[n])x[n-1]}
$$
定义离散自相关系数(参见后面)后, 有
$$R_x(0) = E(x^2[n]),\ R_(1) = E(x[n]x[n-1])
$$
带入整理得,
$$\frac{\partial E{e^2[n]}}{\partial a} = 2 E{x[n]x[n-1] - a x^2[n-1]} = -2(R_x[1] + a R_x[0]) = 0$$
故
$$R_x[1] = -aR_x[0]$$
将表达式带回到最小值公式, 便可得到求解最小值的公式为:
$$\begin{align}
\min\ E{e^2[n]} &= E{x^2[n] + 2ax[n]x[n-1] + a^2x^2[n-1]}\
&= R[0] + 2aR_x[1] +a^2R_x[0]\
&= (1+a^2)R_x[0] + 2aR_x[1]\
&= (1+a^2)R_x[0] - 2a^2R_x[0]\
&= (1-a^2) R_x[0]
\end{align}$$
这样的一阶线性预测滤波器如下图所示:
p 阶的情况
对于前p个元素来进行线性预测的情况,
$$\hat{x}[n] = - a_1 x[n-1] - a_2 x[n-2] - a_3 x[n-3] - \cdots - a_p x[n-p] = - \sum_{k=1}^p a_k x[n-k]
$$
同样有残差的定义:
$$e_p[n] \equiv x[n] - \hat{x}[n]$$
我们令 $a_0 = 1$, 得到求和符号表示的残差公式
$$e_p[n] = \sum_{k=0}^p a_k x[n-k]$$
为了得到矩阵表达式, 我们记
$$Y=\begin{bmatrix}x_{p+1}\ x_{p+2}\ \vdots\ x_{n-1}\ x_n \end{bmatrix},
X=\begin{bmatrix}x_p & x_{p-1} & \cdots & x_1\ x_{p+1} & x_p & \cdots & x_2\ \vdots & \vdots & & \vdots\ x_{n-2} & x_{n-3} & \cdots & x_{n-p-1}\ x_{n-1} & x_{n-2} & \cdots & x_{n-p} \end{bmatrix},
a=\begin{bmatrix}-a_1\ -a_2\ \vdots\ -a_{p-1}\ -a_p \end{bmatrix},
e=\begin{bmatrix}e_{p+1}\ e_{p+2}\ \vdots\ e_{n-1}\ e_n \end{bmatrix}$$
可以得到线性预测模型的矩阵表达式:
$$Y = X\boldsymbol{a} + \boldsymbol{e}$$
残差平方和
$$S(\boldsymbol{a}) = (Y - X\boldsymbol{a})^T (Y - X\boldsymbol{a}) = Y^T Y - 2X\boldsymbol{a}Y^T + a^TX^TXa$$
对参数 $\boldsymbol{a}$ 求偏导,
$$\frac{\partial S(\boldsymbol{a})}{\partial \boldsymbol{a}} = -2XY^T + 2X^TXa = 0
$$
得到
$$a = (X^TX)^{-1}X^TY$$
AR 线性预测模型
在 AR 模型的系统中, 每个输出 $x(n)$ 是过去 p 个输出的线性组合.
$$x(n) = -\sum_{i=1}^p a_i x(n-i) + w(n)$$
其中 $p$ 为 AR 模型阶数, $w(n)$ 为均值为 0, 方差为 $\sigma_w^2$ 的高斯白噪声.
由给定的时间序列求解 AR 模型的参数 $a_i$ 和阶数 $p$ 是进行线性预测的两个关键问题.
我们给出估计值:
$$\hat{x}[n] = -\sum_{i=1}^p a_i x[n-i]$$
以及误差:
$$e[n] = x[n] - \hat{x}[n] = \sum_{i=0}^p a_i x[n-i]$$
求:
$$\min E{e^2[n]}$$
令:
$$\frac{\partial E{e^2[n]}}{\partial a_l} = 0
$$
其中, $l\in{ 1,2,\cdots,p }$
$$\begin{align}
\frac{\partial E{e^2[n]}}{\partial a_l} &= E\left{2 e[n] \frac{\partial e[n]}{\partial a_l}\right} \
&= E{2 e[n] x[n-l]}\
&= E\left{2\sum_{i=0}^p a_i x[n-i] x[n-l]\right} \
&= 2 \sum_{i=0}^p a_i R(l-i) \
&= 0
\end{align}$$
故
$$\sum_{i=0}^p a_i R(l-i) = 0
$$
按照这个条件推导出来的极值点其实是边界点:
$$\begin{align}
E{e^2[n]} &= E{e[n]\sum_{i=0}^p a_i x[n-i]}\
&= E{e[n]x[n] + \sum_{i=1}^p a_i x[n-i] e[n]} \
&= \sum_{i=0}^p a_i \sum_{j=0}^p a_j R(i-j) \
&= \sum_{i=0}^p a_i (R(i) + \sum_{j=1}^p a_j R(i-j)) \
&= \sum_{i=0}^p a_i (R(i) + R(i))\
&= 2 \sum_{i=0}^p a_i R(i)\
&= 4R(0)
\end{align}$$
用到的一些基本概念梳理
自相关和互相关
互相关用来衡量两个时间序列在两个不同时刻之间取值的相似程度. 或者叫两个随机序列的相关性. 设连个不同时刻之间的差距为 $\tau$. $\int f^*(t)g(t+\tau)dt$ 表示互相关.
f(t)与g(t)做相关性相当于 f*(-t) 与 g(t) 做卷积.
自相关表示序列自身不同时刻间的相似程度. 定义如下:
$$R_f(\tau)=f(\tau)f^(-\tau)=\int f(t+\tau)f^(t)dt=\int f(t)f^(t-\tau)dt$$
对于离散的情况,
$$R[\tau] = E(x[n]x[n-\tau])$$
评论
shortname
for Disqus. Please set it in_config.yml
.