第一篇自己的博客,这篇文章将参考文献[1]中的AR模型方法与参考文献[2]中的方法联系起来,算是个笔记吧。看到这个代码有点懵acm.m,这样简单的问题都思考了好一会儿了,LaTex也不怎么会用。。。我的知识真是太匮乏了
常系数线性差分方程:
Y [ n ] + a 1 Y [ n − 1 ] + ⋯ + a p Y [ n − p ] = b 0 X [ n ] + b 1 X [ n − 1 ] + ⋯ + b q X [ n − q ] Y[n] + a_1Y[n-1]+\cdots+a_pY[n-p]=b_0X[n]+b_1X[n-1]+\cdots+b_qX[n-q] Y[n]+a1Y[n−1]+⋯+apY[n−p]=b0X[n]+b1X[n−1]+⋯+bqX[n−q]
其中, X [ n ] X[n] X[n]是输入随机序列, Y [ n ] Y[n] Y[n]是输出序列。
如果则如果 q = 0 q=0 q=0(右端仅有一项)
Y [ n ] + a 1 Y [ n − 1 ] + ⋯ + a p Y [ n − p ] = b 0 X [ n ] Y[n] + a_1Y[n-1]+\cdots+a_pY[n-p]=b_0X[n] Y[n]+a1Y[n−1]+⋯+apY[n−p]=b0X[n]
记为 A R ( p ) AR(p) AR(p),称 Y [ n ] Y[n] Y[n]为 p p p阶自回归模型
如果则如果 p = 0 p=0 p=0(左端仅有一项)
Y [ n ] = b 0 X [ n ] + b 1 X [ n − 1 ] + ⋯ + b q X [ n − q ] Y[n] =b_0X[n]+b_1X[n-1]+\cdots+b_qX[n-q] Y[n]=b0X[n]+b1X[n−1]+⋯+bqX[n−q]
记为 M A ( q ) MA(q) MA(q),称 Y [ n ] Y[n] Y[n]为 q q q阶移动平均模型
如果则如果 p , q 0 p,q0 p,q0记为 A R M A ( p , q ) ARMA(p,q) ARMA(p,q),称 Y [ n ] Y[n] Y[n]为 ( p , q ) (p,q) (p,q)阶自回归移动平均模型
常系数线性差分方程对应的系统函数 H ( z ) H(z) H(z)为
H ( z ) = b 0 + b 1 z − 1 + ⋯ + b q z − q 1 + a 1 z − 1 + ⋯ + a p z − p ) H(z)=\frac{b_0+b_1z^{-1}+\cdots+b_qz^{-q}}{1+ a_1z^{-1}+\cdots+a_pz^{-p}}) H(z)=1+a1z−1+⋯+apz−pb0+b1z−1+⋯+bqz−q)
将随机信号建模为零均值单位方差白噪声激励 H ( z ) H(z) H(z)产生:假设输入随机序列 X [ n ] X[n] X[n]是零均值单位方差白噪声,功率谱为常数 1 1 1,自相关函数为单位脉冲函数 δ ( k ) \delta(k) δ(k),则输出功率谱为
P ( e j ω ) = ∣ b 0 + b 1 e − j ω + ⋯ + b q e − j q ω ∣ 2 ∣ 1 + a 1 e − j ω + ⋯ + a p e − j p ω ∣ 2 P(e^{j\omega})=\frac{|b_0+b_1e^{-j\omega}+\cdots+b_qe^{-jq\omega}|^2}{|1+ a_1e^{-j\omega}+\cdots+a_pe^{-jp\omega}|^2} P(ejω)=∣1+a1e−jω+⋯+ape−jpω∣2∣b0+b1e−jω+⋯+bqe−jqω∣2
一旦模型选定,下一步是由给定数据估计参数模型 a i , b j a_i,b_j ai,bj,对于AR模型需要估计 b 0 , a 1 , ⋯ , a p b_0,a_1,\cdots,a_p b0,a1,⋯,ap。基于最小均方误差准则的四种参数估计方法:自相关法(Yule-Walk 法)、协方差法、修正协方差法、Burg法,后两种方法最小化前向加反向预测误差的平方和来求解参数。
a r g m a x a k ξ M S E arg\;\underset{a_k}{max}\xi_{MSE} argakmaxξMSE
其中 ξ M S E = E { ∣ e ( n ) ∣ 2 } \xi_{MSE}=E\{|{e(n)|}^2\} ξMSE=E{∣e(n)∣2}, e ( n ) = x ( n ) − x ^ ( n ) \quad e(n)=x(n)-\widehat x(n) e(n)=x(n)−x (n)
为求解 a k a_k ak,取 ξ M S E \xi_{MSE} ξMSE对 a k a_k ak求偏导 等于 0 0 0,化简得
∑ l = 1 p a l r x ( k − l ) = − r x ( k ) k = 1 , 2 , ⋯ , p \sum_{l=1}^{p}a_lr_x(k-l)=-r_x(k)\quad k=1,2,\cdots,p ∑l=1palrx(k−l)=−rx(k)k=1,2,⋯,p
写成矩阵形式为:
R x a = − r x \boldsymbol{R_xa=-r_x} Rxa=−rx \quad 参考文献[1]中的式(3.7)
此式被称为线性预测的正则方程(Normal equations),其中 R x \boldsymbol{R_x} Rx是数据 x ( n ) x(n) x(n)的自相关矩阵,是 N ∗ N N*N N∗N的Hermite、Toeplitz矩阵:
R x = [ r x ( 0 ) r x ∗ ( 1 ) ⋯ r x ∗ ( p − 1 ) r x ( 1 ) r x ( 0 ) ⋯ r x ∗ ( p − 2 ) ⋯ ⋯ ⋯ ⋯ r x ( p − 1 ) r x ( p − 2 ) ⋯ r x ( 0 ) ] \boldsymbol{R_x}= \begin{bmatrix} r_x(0)&r_x^*(1)&\cdots&r_x^*(p-1)\\ r_x(1)&r_x(0)&\cdots&r_x^*(p-2)\\ \cdots&\cdots&\cdots&\cdots\\ r_x(p-1)&r_x(p-2)&\cdots&r_x(0)\\ \end{bmatrix} Rx=⎣⎢⎢⎡rx(0)rx(1)⋯rx(p−1)rx∗(1)rx(0)⋯rx(p−2)⋯⋯⋯⋯rx∗(p−1)rx∗(p−2)⋯rx(0)⎦⎥⎥⎤
其中:
r x ( k ) = 1 N ∑ n = k N x ( n ) x ∗ ( n − k ) r_x(k) = \frac{1}{N}\sum_{n=k}^{N}x(n)x^*(n-k) rx(k)=N1∑n=kNx(n)x∗(n−k) N N N为数据长度, w h e n n < 0 o r n > N , x ( n ) = 0 when\quad n<0\quad or\quad n>N,x(n)=0 whenn<0orn>N,x(n)=0
a = [ a 1 , a 2 , ⋯ , a p ] T a={[a_1,a_2,\cdots,a_p]}^T a=[a1,a2,⋯,ap]T
式中 R x \boldsymbol{R_x} Rx又可以写成
R x = X H X \boldsymbol{R_x}=\boldsymbol X^H\boldsymbol X Rx=XHX
X = [ x ( 0 ) 0 0 ⋯ 0 x ( 1 ) x ( 1 ) 0 ⋯ 0 x ( 2 ) x ( 1 ) x ( 0 ) ⋯ 0 ⋯ ⋯ ⋯ ⋯ ⋯ x ( N ) x ( N − 1 ) x ( N − 2 ) ⋯ x ( N − p + 1 ) 0 x ( N ) x ( N − 1 ) ⋯ x ( N − p + 2 ) ⋯ ⋯ ⋯ ⋯ ⋯ 0 0 0 ⋯ x ( N ) ] \boldsymbol X = \begin{bmatrix} x(0)&0&0&\cdots&0\\ x(1)&x(1)&0&\cdots&0\\ x(2)&x(1)&x(0)&\cdots&0\\ \cdots&\cdots&\cdots&\cdots&\cdots\\ x(N) &x(N-1) &x(N-2)&\cdots&x(N-p+1)\\ 0&x(N)&x(N-1)&\cdots&x(N-p+2)\\ \cdots&\cdots&\cdots&\cdots&\cdots\\ 0&0&0&\cdots&x(N)\\ \end{bmatrix} X=⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎡x(0)x(1)x(2)⋯x(N)0⋯00x(1)x(1)⋯x(N−1)x(N)⋯000x(0)⋯x(N−2)x(N−1)⋯0⋯⋯⋯⋯⋯⋯⋯⋯000⋯x(N−p+1)x(N−p+2)⋯x(N)⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎤
r x \boldsymbol{r_x} rx可以写成 R x = X H X 2 \boldsymbol{R_x}=\boldsymbol X^H\footnotesize{\boldsymbol X_2} Rx=XHX2, X 2 \footnotesize{\boldsymbol X_2} X2是 X \boldsymbol{X} X的第二列。
因此正则方程可写为:
X H X a = − X H X 2 \boldsymbol X^H\boldsymbol X\boldsymbol a=-\boldsymbol X^H\footnotesize{\boldsymbol X_2} XHXa=−XHX2
即:
X a = − X 2 \boldsymbol X\boldsymbol a=-\footnotesize{\boldsymbol X_2} Xa=−X2 \quad 参考文献[2]中的式(4.21)(4.81)(4.123)
利用自相关法估计参数的代码acm.m在这里
1.杨绿溪. 现代数字信号处理[M]. 2007.
2.Hayes M H. Statistical Digital Signal Processing and Modeling[J]. 1996. Chapter 4, 式(4.40) \quad 书中MATLAB代码在这里
3.陈明. 信息与通信工程中的随机过程(第2版)[M]. 2005.