随机信号的参数建模法

随机信号的参数建模法

在对随机信号的研究和处理中,根据其参数建立相应的参数模型是一种重要的方法。随机信号的参数建模法可以应用在语音信号的编码过程中:对不同的物理过程产生的声音信号建立数学模型,根据语声模型提取语音信号的特征参数,对参数进行编码传输,接收端根据特征参数重建语音信号 。

随机信号的参数建模法将随机信号 x ( n ) x(n) x(n) 看做是由白噪声 w ( n ) w(n) w(n) 激励某一确定系统的响应:

随机信号的参数建模法
对于平稳随机信号,有三种常用的线性模型: AR 模型(自回归模型 Auto-regression model),MA 模型(滑动平均模型 Moving average model)和 ARMA 模型(自回归滑移平均模型 Auto-regression-Moving average model)。

AR模型

随机信号 x ( n ) x(n) x(n) 由本身的若干次过去值 x ( n − k ) x(n-k) x(nk) 和当前的激励值 w ( n ) w(n) w(n) 线性组合产生:

x ( n ) = w ( n ) − ∑ k = 0 p a k x ( n − k ) x(n)=w(n)-\sum_{k=0}^pa_kx(n-k) x(n)=w(n)k=0pakx(nk)

其中p表示系统阶数。进行z变换后,可以得到模型的系统函数:

H ( Z ) = 1 1 + ∑ k = 0 p a k z k H(Z)=\frac{1}{1+\sum_{k=0}^pa_kz^{k}} H(Z)=1+k=0pakzk1
AR模型系统函数的特点是只有极点,没有零点,为全极点模型,要建立稳定的系统,则要注意极点的分布,用 A R ( p ) AR(p) AR(p) 来表示。

MA模型

随机信号 x ( n ) x(n) x(n) 由当前的激励 w ( n ) w(n) w(n) 和若干次过去的激励 w ( n − k ) w(n-k) w(nk) 线性组合产生:
x ( n ) = ∑ k = 0 q b k w ( n − k ) x(n)=\sum_{k=0}^qb_kw(n-k) x(n)=k=0qbkw(nk)

其中q表示系统阶数。进行z变换后,可以得到模型的系统函数:
H ( Z ) = X ( Z ) W ( Z ) = ∑ k = 0 q b k z − k H(Z)=\frac{X(Z)}{W(Z)}=\sum_{k=0}^qb_kz^{-k} H(Z)=W(Z)X(Z)=k=0qbkzk

MA模型系统函数的特点是只有零点,没有极点,为全零点模型,故系统稳定。

ARMA模型

ARMA模型综合了AR模型与MA模型:

x ( n ) = ∑ k = 0 q b k w ( n − k ) − ∑ k = 1 p a k x ( n − k ) x(n)=\sum_{k=0}^qb_kw(n-k)-\sum_{k=1}^pa_kx(n-k) x(n)=k=0qbkw(nk)k=1pakx(nk)

模型的系统函数为;

H ( Z ) = ∑ k = 0 q b k z − k 1 + ∑ k = 1 p a k z k H(Z)=\frac{\sum_{k=0}^qb_kz^{-k}}{1+\sum_{k=1}^pa_kz^{k}} H(Z)=1+k=1pakzkk=0qbkzk

系统既有零点,又有极点,考虑到系统的稳定性,要注意零极点的分布,用 A R M A ( p , q ) ARMA(p,q) ARMA(pq) 表示。

AR模型的参数估计

实际应用中,三种模型选用哪一种,就要考虑到节约和计算量。选定模型后,剩下的任务就是用适当的算法估计模型参数 ( a k , b k , p , q ) (a_k,b_k,p,q) (akbkpq),以便用模型对随机信号进行预测。在信号处理中,AR模型的应用较为广泛,我们以AR模型为例进行参数估计:

1、AR模型的参数和自相关函数的关系

根据AR模型的公式 x ( n ) = w ( n ) − ∑ k = 0 p a k x ( n − k ) x(n)=w(n)-\sum_{k=0}^pa_kx(n-k) x(n)=w(n)k=0pakx(nk) ,两边同乘以 x ( n − m ) x(n-m) x(nm),再求均值得到:
E [ x ( n ) x ( n − m ) ] = E [ w ( n ) x ( n − m ) − ∑ k = 0 p a k x ( n − k ) x ( n − m ) ] E[x(n)x(n-m)]=E[w(n)x(n-m)-\sum_{k=0}^pa_kx(n-k)x(n-m)] E[x(n)x(nm)]=E[w(n)x(nm)k=0pakx(nk)x(nm)]
根据自相关函数的对称性:
R x x ( m ) = R x x ( − m ) R_{xx}(m)=R_{xx}(-m) Rxx(m)=Rxx(m)
将上述式子化为:
R x x ( m ) = R x w ( m ) − ∑ k = 0 p a k R x x ( m − k ) R_{xx}(m)=R_{xw}(m)-\sum_{k=0}^pa_kR_{xx}(m-k) Rxx(m)=Rxw(m)k=0pakRxx(mk)
由于系统的单位冲激响应 h ( n ) h(n) h(n) 是因果的,所以输出的平稳随机信号和输入的白噪声之间的互相关函数有下列推导:

x ( n ) = w ( n ) ∗ h ( n ) = ∑ 0 ∞ h ( k ) w ( n − k ) x(n)=w(n)*h(n)=\sum_0^∞h(k)w(n-k) x(n)=w(n)h(n)=0h(k)w(nk)
R x w ( m ) = E [ ∑ 0 ∞ h ( k ) w ( n − k ) w ( n + m ) ] = ∑ 0 ∞ h ( k ) E [ w ( n − k ) w ( n + m ) ] = ∑ 0 ∞ h ( k ) R w w ( n + m ) = ∑ 0 ∞ h ( k ) σ w 2 δ w ( m + k ) = σ w 2 h ( − m ) R_{xw}(m)=E[\sum_0^∞h(k)w(n-k)w(n+m)]=\sum_0^∞h(k)E[w(n-k)w(n+m)]\\=\sum_0^∞h(k)R_{ww}(n+m)=\sum_0^∞h(k)σ^2_wδ_w(m+k)\\=σ^2_wh(-m) Rxw(m)=E[0h(k)w(nk)w(n+m)]=0h(k)E[w(nk)w(n+m)]=0h(k)Rww(n+m)=0h(k)σw2δw(m+k)=σw2h(m)
根据因果性可知:
R x w ( m ) = { σ w 2 h ( − m )     m > 0 0     m ≤ 0 R_{xw}(m)= \bigg \{ \begin{aligned} σ^2_wh(-m) & \ & \ m>0\\ 0 & \ & \ m\leq0 \end{aligned} Rxw(m)={σw2h(m)0   m>0 m0

代入到 R x x ( m ) = R x w ( m ) − ∑ k = 0 p a k R x x ( m − k ) R_{xx}(m)=R_{xw}(m)-\sum_{k=0}^pa_kR_{xx}(m-k) Rxx(m)=Rxw(m)k=0pakRxx(mk)式子中,便得到:
R x x ( m ) = { − ∑ k = 1 p a k R x x ( m − k )     m > 0   − ∑ k = 1 p a k R x x ( m − k ) + σ w 2 h ( 0 )     m = 0 R x x ( − m )     m ≤ 0 R_{xx}(m)= \left\{ \begin{aligned}-\sum_{k=1}^pa_kR_{xx}(m-k) & \ & \ m>0\\\ -\sum_{k=1}^pa_kR_{xx}(m-k) +σ^2_wh(0) & \ & \ m=0\\R_{xx}(-m) & \ & \ m\leq0\end{aligned} \right. Rxx(m)=k=1pakRxx(mk) k=1pakRxx(mk)+σw2h(0)Rxx(m)    m>0 m=0 m0

H ( Z ) H(Z) H(Z) 进行逆Z变换,转换到时域有: h ( n ) + ∑ k = 1 p a k h ( n − k ) = δ ( n ) h(n)+\sum_{k=1}^pa_kh(n-k)=δ(n) h(n)+k=1pakh(nk)=δ(n),故 h ( 0 ) = 1 h(0)=1 h(0)=1
显然,AR模型具有递推特性:
R x x ( m ) = − ∑ k = 1 p a k R x x ( m − k ) m > 0 R_{xx}(m)=-\sum_{k=1}^pa_kR_{xx}(m-k) \quad \quad m>0 Rxx(m)=k=1pakRxx(mk)m>0
这就是著名的Yule-Walker方程,将上式变换:
R x x ( m ) + ∑ k = 1 p a k R x x ( m − k ) = 0 m > 0 R_{xx}(m)+\sum_{k=1}^pa_kR_{xx}(m-k)=0 \quad \quad m>0 Rxx(m)+k=1pakRxx(mk)=0m>0
输入的白噪声方差为:
σ w 2 = R x x ( 0 ) + − ∑ k = 1 p a k R x x ( − k ) σ^2_w=R_{xx}(0)+ -\sum_{k=1}^pa_kR_{xx}(-k) σw2=Rxx(0)+k=1pakRxx(k)

将Y-W方程和 σ w 2 σ^2_w σw2 结合,可以写成矩阵形式,得到矩阵方程:
[ R ( 0 ) R ( − 1 ) . . .   R ( − p ) R ( 1 ) R ( 0 ) . . . R ( − p + 1 ) . . . . . . . . . R ( p ) R ( p − 1 ) . . .   R ( 0 ) ] [ 1 a 1 . . . a p ] = [ σ w 2 0 . . . 0 ] \begin{bmatrix} R(0) & R(-1)&...&\ R(-p)\\ R(1)&R(0) & ... &R(-p+1)\\ ...&...& &...\\ R(p) & R(p-1)&...&\ R(0)\\ \end{bmatrix} \begin{bmatrix}1\\a_1\\...\\a_p \end{bmatrix} = \begin{bmatrix}σ^2_w\\0\\...\\0\end{bmatrix} R(0)R(1)...R(p)R(1)R(0)...R(p1)......... R(p)R(p+1)... R(0)1a1...ap=σw20...0

上述矩阵方程组的系数均为自相关函数,由于自相关函数具有对称性,故其组成的系数矩阵为对称矩阵,存在着更高效的算法,其中常用的有Levinson-Durbin(L-D)算法。Yule-Walker(Y-W)方程表明,只要已知输出平稳随机信号的自相关函数,就能求出 AR 模型中的参数 a k a_k ak,并且所需要的数据较少。

实例分析:

  • 已知自回归信号模型 AR(3)为: x ( n ) = 14 24 x ( n − 1 ) + 9 24 x ( n − 2 ) − 1 24 x ( n − 3 ) + w ( n ) x(n)= \frac{14}{24}x(n-1)+ \frac{9}{24}x(n-2)- \frac{1}{24}x(n- 3)+w(n) x(n)=2414x(n1)+249x(n2)241x(n3)+w(n) 式中 w ( n ) w(n) w(n) 是具有方差 σ w 2 = 1 σ^2_w=1 σw2=1 的平稳白噪声,求:
    1 .自相关序列 R x x ( m ) R_{xx}(m) Rxx(m) ,m=0,1,2,3,4,5。
    2 . 用 1.中 求出的自相关序列来估计 AR(3)的参数 a k ′ a'_k ak ,以及输入白噪声的方差 σ w ′ 2 σ'^2_w σw2 大小。
    3 . 利用给出的 AR 模型,用计算机仿真给出 32 点观测值 x ( n ) = [ 0.4282 1.1454 1.5597 1.8994 1.6854 2.3075 2.4679 1.9790 1.6063 1.2804 − 0.2083 0.0577 0.0206 0.3572 1.6572 0.7488 1.6666 1.9830 2.6914 1.2521 1.8691 1.6855 0.6242 0.1763 1.3490 0.6955 1.2941 1.0475 0.4319 0.0312 0.5802 − 0.6177 ] x(n)=[\quad0.4282\quad 1.1454 \quad 1.5597 \quad 1.8994 \quad 1.6854 \quad 2.3075 \quad 2.4679 \quad1.9790 \quad 1.6063 \quad 1.2804 \quad -0.2083 \quad 0.0577 \quad 0.0206 \quad 0.3572 \quad 1.6572 \quad 0.7488 \quad 1.6666 \quad1.9830 \quad 2.6914 \quad 1.2521 \quad 1.8691 \quad 1.6855 \quad0.6242 \quad0.1763 \quad 1.3490 \quad 0.6955 \quad 1.2941 \quad 1.0475\quad 0.4319 \quad 0.0312 \quad 0.5802\quad -0.6177\quad] x(n)=[0.42821.14541.55971.89941.68542.30752.46791.97901.60631.28040.20830.05770.02060.35721.65720.74881.66661.98302.69141.25211.86911.68550.62420.17631.34900.69551.29411.04750.43190.03120.58020.6177] ,用观测值的自相关序列直接来估计 AR(3)的参数 a k ′ a'_k ak 以及输入白噪声的 σ w ′ 2 σ'^2_w σw2

解:
1、已知模型参数 a k a_k ak a 1 = − 14 24 a_1=-\frac{14}{24} a1=2414, a 2 = − 9 24 a_2=-\frac{9}{24} a2=249, a 3 = 1 24 a_3=\frac{1}{24} a3=241,代入矩阵中得到:
[ R ( 0 ) R ( 1 ) R ( 2 )   R ( 3 ) R ( 1 ) R ( 0 ) R ( 1 ) R ( 2 ) R ( 2 ) R ( 1 ) R ( 0 ) R ( 1 ) R ( 3 ) R ( 2 ) R ( 1 )   R ( 0 ) ] [ 1 − 14 24 − 9 24 1 24 ] = [ 1 0 0 0 ] \begin{bmatrix} R(0) & R(1)&R(2)&\ R(3)\\ R(1)&R(0) &R(1)&R(2)\\ R(2)&R(1)& R(0)&R(1)\\ R(3) & R(2)&R(1)&\ R(0)\\ \end{bmatrix} \begin{bmatrix}1\\-\frac{14}{24}\\-\frac{9}{24}\\\frac{1}{24} \end{bmatrix} = \begin{bmatrix}1\\0\\0\\0\end{bmatrix} R(0)R(1)R(2)R(3)R(1)R(0)R(1)R(2)R(2)R(1)R(0)R(1) R(3)R(2)R(1) R(0)12414249241=1000
调用MATLAB解方程:

a=[-14/24 -9/24 1/24];
R=[ 1, a(1), a(2), a(3);  
	a(1), 1 + a(2), a(3), 0;
	a(2), a(1)+a(3), 1, 0; 
	a(3), a(2), a(1), 1];
w=[1;0;0;0];
Rxx=R\w

解得结果: R ( 0 ) = 4.9377 R(0)=4.9377 R(0)=4.9377 , R ( 1 ) = 4.3287 R(1)=4.3287 R(1)=4.3287, R ( 2 ) = 4.1964 R(2)=4.1964 R(2)=4.1964 R ( 3 ) = 3.8654 R(3)=3.8654 R(3)=3.8654

Rxx =

    4.9377
    4.3287
    4.1964
    3.8654
    

根据递推性质,可以的得出:
R x x ( 4 ) = − ∑ k = 1 3 a k R x x ( 4 − k ) = 3.6481 R x x ( 5 ) = − ∑ k = 1 3 a k R x x ( 5 − k ) = 3.4027 R_{xx}(4)=-\sum_{k=1}^3a_kR_{xx}(4-k)=3.6481 \\ R_{xx}(5)=-\sum_{k=1}^3a_kR_{xx}(5-k)=3.4027 Rxx(4)=k=13akRxx(4k)=3.6481Rxx(5)=k=13akRxx(5k)=3.4027

2、已知自相关序列值,代入方程:
[ R ( 0 ) R ( 1 ) R ( 2 )   R ( 3 ) R ( 1 ) R ( 0 ) R ( 1 ) R ( 2 ) R ( 2 ) R ( 1 ) R ( 0 ) R ( 1 ) R ( 3 ) R ( 2 ) R ( 1 )   R ( 0 ) ] [ 1 a 1 a 2 a 3 ] = [ σ w 2 0 0 0 ] \begin{bmatrix} R(0) & R(1)&R(2)&\ R(3)\\ R(1)&R(0) &R(1)&R(2)\\ R(2)&R(1)& R(0)&R(1)\\ R(3) & R(2)&R(1)&\ R(0)\\ \end{bmatrix} \begin{bmatrix}1\\a_1\\a_2\\a_3 \end{bmatrix}= \begin{bmatrix}σ^2_w\\0\\0\\0\end{bmatrix} R(0)R(1)R(2)R(3)R(1)R(0)R(1)R(2)R(2)R(1)R(0)R(1) R(3)R(2)R(1) R(0)1a1a2a3=σw2000

解得:
a 1 = − 14 24 a_1=-\frac{14}{24} a1=2414 , a 2 = − 9 24 a_2=-\frac{9}{24} a2=249, a 3 = 1 24 a_3=\frac{1}{24} a3=241 , σ w 2 = 1 σ^2_w=1 σw2=1

可见AR模型参数是无失真估计,因为已知 AR 模型,我们可以得到完全的输出观 测值,因而求得的自相关函数没有失真,当然也就可以不失真的估计。

3、利用给出的 32 点观测值,先求自相关序列,根据自相关的定义:
R x x = 1 n ∑ i = 1 n x i x i + m R_{xx}=\frac{1}{n}\sum_{i=1}^nx_ix_{i+m} Rxx=n1i=1nxixi+m
用MATLAB计算出自相关序列:

xn = [0.4282 1.1454 1.5597 1.8994 1.6854 2.3075 2.4679 1.9790 1.6063 1.2804 
-0.2083 0.0577 0.0206 0.3572 1.6572 0.7488 1.6666 1.9830 2.6914 1.2521 1.8691 
1.6855 0.6242 0.1763 1.3490 0.6955 1.2941 1.0475 0.4319 0.0312 0.5802 -0.6177];

Rxx=xcorr(xn) ./ length(xn)

由于自相关函数的对称性,在得到的结果的中心处为 R x x ( 0 ) R_{xx}(0) Rxx(0) 的值

.........
//第31列为m=0时Rxx的值
23330.8058    0.7637    0.7520    0.8673    0.9060    1.1349    1.3545    1.5381    1.6618    1.9271    1.6618

34441.5381    1.3545    1.1349    0.9060    0.8673    0.7520    0.7637    0.8058    0.8497    0.8761    0.9608
...........

这里我们只用到 R x x ( m ) R_{xx}(m) Rxx(m) 当 m=0,1,2,3 的值
计算出 R x x ( m ) = [ 1.9271 , 1.6618 , 1.5381 , 1.3545 ] m = 0 , 1 , 2 , 3 R_{xx}(m)=[1.9271,1.6618 ,1.5381 ,1.3545 ]\quad\quad m=0,1,2,3 Rxx(m)=[1.9271,1.6618,1.5381,1.3545]m=0,1,2,3 代入方程中,得到估计值: a 1 ′ = − 0.6984 a'_1=-0.6984 a1=0.6984 , a 2 ′ = − 0.2748 a'_2=-0.2748 a2=0.2748, a 3 ′ = 0.0915 a'_3=0.0915 a3=0.0915 , σ w ′ 2 = 0.4678 σ'^2_w=0.4678 σw2=0.4678
估计值与真实AR模型参数的误差为: e 1 = 0.1151 e_1=0.1151 e1=0.1151 , e 2 = 0.1002 e_2=0.1002 e2=0.1002 , e 3 = 0.0498 e_3=0.0498 e3=0.0498 , e σ = 0.5322 e_σ=0.5322 eσ=0.5322 。造成误差的原因在于只观测了32点数据,数据量不足,计算机仿真的32点白噪声方差也不等于1。给出一段观测值求 AR 模型参数这样直接解方程组,当阶数越高时直接解方程组计算就越复杂,因而要用特殊的算法使得计算量减小且精确度高。

2、 Y-W 方程的解法——L-D 算法

使用直接观测的数据估计AR模型的参数,所需要的阶数需要很大,才能获得精度较高的估计值,阶数增大必然造成计算量的增加,因此把 AR 模型和预测系统联系起来,换个方法来估计 AR 参数。

AR 模型的时域表达式
x ( n ) = w ( n ) − ∑ k = 1 p a k x ( n − k ) x(n)=w(n)-\sum_{k=1}^pa_kx(n-k) x(n)=w(n)k=1pakx(nk)
我们知道模型的当前输出值与它过去的输出值有关。预测是推断一个给定序列的未来值,即利用信号前后的相关性来估计未来的信号值。

若序列的模型已知而用过去观测的数据来推求现在和将来的数据称为前向预测器,表示为: x ^ ( n ) = − ∑ k = 1 m a m ( k ) x ( n − k ) \hat{x}(n)=-\sum_{k=1}^ma_m(k)x(n-k) x^(n)=k=1mam(k)x(nk)
其中 a k a_k ak 代表 m 阶预测器的预测系数。设预测误差为 e ( n ) e(n) e(n):
e ( n ) = x ( n ) − x ^ ( n ) = x ( n ) + ∑ k = 1 m a m ( k ) x ( n − k ) e(n)=x(n)-\hat{x}(n)=x(n)+\sum_{k=1}^ma_m(k)x(n-k) e(n)=x(n)x^(n)=x(n)+k=1mam(k)x(nk)
e ( n ) e(n) e(n) 看成是系统的输出, x ( n ) x(n) x(n) 看成是系统的输入,得到系统函数:
E ( Z ) X ( Z ) = 1 + ∑ k = 1 m a m ( k ) z − k \frac{E(Z)}{X(Z)}=1+\sum_{k=1}^ma_m(k)z^{-k} X(Z)E(Z)=1+k=1mam(k)zk
假如 m=p,且预测系数和 AR 模型参数相同,把预测误差系统框
图和 AR 模型框图给出有 w ( n ) = e ( n ) w(n)=e(n) w(n)=e(n),即前向预测误差系统中的输入
x ( n ) x(n) x(n),输出为预测误差 e ( n ) e(n) e(n) 等于白噪声。也就是说前向预测误差系统对观测信号起了白化的作用。由于 AR 模型和前向预测误差系统有着密切的关系,两者的系统函数互为倒数, 所以求 AR 模型参数就可以通过求预测误差系统的预测系数来实现。
在这里插入图片描述
求预测误差的均方值:
E [ e 2 ( n ) ] = e [ ( x ( n ) + ∑ k = 1 m a m ( k ) x ( n − k ) ) 2 ] = R x x ( 0 ) + 2 [ ∑ k = 1 m a m ( k ) R x x ( k ) ] + ∑ k = 1 m ∑ l = 1 m a m ( l ) a m ( k ) R x x ( l − k ) E[e^2(n)]=e[(x(n)+\sum_{k=1}^ma_m(k)x(n-k))^2]\\=R_{xx}(0)+2[\sum_{k=1}^ma_m(k)R_{xx}(k)]+\sum_{k=1}^m\sum_{l=1}^ma_m(l)a_m(k)R_{xx}(l-k) E[e2(n)]=e[(x(n)+k=1mam(k)x(nk))2]=Rxx(0)+2[k=1mam(k)Rxx(k)]+k=1ml=1mam(l)am(k)Rxx(lk)

要使得均方误差最小,将上式右边对预测系数求偏导并且等于零,得到 m 个等式:
R x x ( l ) = − ∑ k = 1 m a m ( k ) R x x ( l − k ) R_{xx}(l)=-\sum_{k=1}^ma_m(k)R_{xx}(l-k) Rxx(l)=k=1mam(k)Rxx(lk)
求得最小均方误差为:
E m [ e 2 ( n ) ] = R x x ( 0 ) + ∑ k = 1 m a m ( k ) R x x ( k ) E_m[e^2(n)]=R_{xx}(0)+\sum_{k=1}^ma_m(k)R_{xx}(k) Em[e2(n)]=Rxx(0)+k=1mam(k)Rxx(k)
E p [ e 2 ( n ) ] = R x x ( 0 ) + ∑ k = 1 p a ( k ) R x x ( k ) E_p[e^2(n)]=R_{xx}(0)+\sum_{k=1}^pa(k)R_{xx}(k) Ep[e2(n)]=Rxx(0)+k=1pa(k)Rxx(k)
所以对照上述二式得知:
a k = a m ( k ) m = p a_k=a_m(k) \quad\quad m=p ak=am(k)m=p也就是 p 阶预测器的预测系数等于 p 阶 AR 模型的参数,由于 e ( n ) = w ( n ) e(n)=w(n) e(n)=w(n) ,所以二最小均方预测误差等于白噪声方差 σ w 2 σ^2_w σw2

L-D 算法
L-D算法的基本思想就是根据Y-W 方程,自相关序列具有递推的性质,,L-D 递推算法是模型阶数逐渐加大的一种算法,先计算阶次 m=1 时的预测系数 a 1 ( 1 ) a_1(1) a1(1) σ w 1 2 σ^2_{w1} σw12 ,再计算m=2 时的 a 2 ( 1 ) a_2(1) a2(1) a 2 ( 2 ) a_2(2) a2(2) σ w 2 2 σ^2_{w2} σw22 ,一直计算到 m=p 阶时的预测系数。
每一阶次参数的计算是从低一阶次的模型参数推算出来的,既可减少工作
量又便于寻找最佳的阶数值,满足精度时就停止递推。

下面进行对 R x x ( l ) = − ∑ k = 1 m a m ( k ) R x x ( l − k ) R_{xx}(l)=-\sum_{k=1}^ma_m(k)R_{xx}(l-k) Rxx(l)=k=1mam(k)Rxx(lk) E p [ e 2 ( n ) ] = R x x ( 0 ) + ∑ k = 1 p a ( k ) R x x ( k ) E_p[e^2(n)]=R_{xx}(0)+\sum_{k=1}^pa(k)R_{xx}(k) Ep[e2(n)]=Rxx(0)+k=1pa(k)Rxx(k) 式子的递推 ,取m=1:
{ R ( 1 ) = − a 1 ( 1 ) R ( 0 ) ( 1 ) E 1 = R ( 0 ) + a 1 ( 1 ) R ( 1 ) ( 2 ) \left\{ \begin{aligned}R(1)=-a_1(1)R(0) \quad (1)\\E_1=R(0)+a_1(1)R(1) \quad (2)\end{aligned} \right. {R(1)=a1(1)R(0)(1)E1=R(0)+a1(1)R(1)(2)
σ w 1 2 = E 1 σ^2_{w1}=E_1 σw12=E1
m=2时:
{ R ( 1 ) = − a 2 ( 1 ) R ( 0 ) − a 2 ( 2 ) R ( 1 ) R ( 2 ) = − a 2 ( 1 ) R ( 1 ) − a 2 ( 2 ) R ( 0 ) \left\{ \begin{aligned}R(1)=-a_2(1)R(0)-a_2(2)R(1) \\R(2)=-a_2(1)R(1)-a_2(2)R(0) \end{aligned} \right. {R(1)=a2(1)R(0)a2(2)R(1)R(2)=a2(1)R(1)a2(2)R(0)
估计的方差:
E 2 = R ( 0 ) + a 2 ( 1 ) R ( 1 ) + a 2 ( 2 ) R ( 2 ) E_2=R(0)+a_2(1)R(1)+a_2(2)R(2) E2=R(0)+a2(1)R(1)+a2(2)R(2)
将m=1时的 R ( 1 ) R(1) R(1) , E ( 1 ) E(1) E(1) 代入,可以解得m=2时预测系数。一直递推下去,可以得到预测系数和预测均方误差估计的通式:
{ a m ( k ) = a m − 1 ( k ) + a m ( m ) a m − 1 ( m − k ) ( 1 ) a m ( m ) = − R ( m ) + ∑ k = 1 m a m − 1 ( k ) R ( m − k ) E m − 1 ( 2 ) E m = σ w m 2 = [ 1 − a m 2 ( m ) ] E m − 1 = R ( 0 ) ∏ k = 1 m [ 1 − a k 2 ( k ) ] ( 3 ) \left\{ \begin{aligned}a_m(k)= a_{m-1}(k)+a_m(m)a_{m-1}(m-k)\quad (1)\\a_m(m)=-\frac{R(m)+\sum_{k=1}^ma_{m-1}(k)R(m-k)}{E_{m-1}} \quad (2)\\E_m=σ^2_{wm}=[1-a_m^2(m)]E_{m-1}=R(0)\prod_{k=1}^m[1-a_k^2(k)]\quad (3)\end{aligned} \right. am(k)=am1(k)+am(m)am1(mk)(1)am(m)=Em1R(m)+k=1mam1(k)R(mk)(2)Em=σwm2=[1am2(m)]Em1=R(0)k=1m[1ak2(k)](3)

其中 a m ( m ) a_m(m) am(m) 称为反射系数,从上式知道整个迭代过程需要已知自相关函数,给定初始值 E 0 = R ( 0 ) E_0=R(0) E0=R(0) a 0 ( 0 ) = 1 a_0(0)=1 a0(0)=1,以及AR模型的阶数p,就可以依照以下的流程图进行估计:

在这里插入图片描述
L-D 算法的优点就是计算速度快,求得的 AR 模型必定稳定,且均方预测误差随着阶次的增加而减小。

实例分析

  • 已知自回归信号模型 AR(3)为: x ( n ) = 14 24 x ( n − 1 ) + 9 24 x ( n − 2 ) − 1 24 x ( n − 3 ) + w ( n ) x(n)= \frac{14}{24}x(n-1)+ \frac{9}{24}x(n-2)- \frac{1}{24}x(n- 3)+w(n) x(n)=2414x(n1)+249x(n2)241x(n3)+w(n) 式中 w ( n ) w(n) w(n) 是具有方差 σ w 2 = 1 σ^2_w=1 σw2=1 的平稳白噪声,利用给出的 AR 模型,用计算机仿真给出 32 点观测值 x ( n ) = [ 0.4282 1.1454 1.5597 1.8994 1.6854 2.3075 2.4679 1.9790 1.6063 1.2804 − 0.2083 0.0577 0.0206 0.3572 1.6572 0.7488 1.6666 1.9830 2.6914 1.2521 1.8691 1.6855 0.6242 0.1763 1.3490 0.6955 1.2941 1.0475 0.4319 0.0312 0.5802 − 0.6177 ] x(n)=[\quad0.4282\quad 1.1454 \quad 1.5597 \quad 1.8994 \quad 1.6854 \quad 2.3075 \quad 2.4679 \quad1.9790 \quad 1.6063 \quad 1.2804 \quad -0.2083 \quad 0.0577 \quad 0.0206 \quad 0.3572 \quad 1.6572 \quad 0.7488 \quad 1.6666 \quad1.9830 \quad 2.6914 \quad 1.2521 \quad 1.8691 \quad 1.6855 \quad0.6242 \quad0.1763 \quad 1.3490 \quad 0.6955 \quad 1.2941 \quad 1.0475\quad 0.4319 \quad 0.0312 \quad 0.5802\quad -0.6177\quad] x(n)=[0.42821.14541.55971.89941.68542.30752.46791.97901.60631.28040.20830.05770.02060.35721.65720.74881.66661.98302.69141.25211.86911.68550.62420.17631.34900.69551.29411.04750.43190.03120.58020.6177] ,用 L-D 算法来估计 AR(3)的参数 a ^ k \hat{a}_k a^k 以及输入白噪声的 σ ^ w 2 \hat{σ}^2_w σ^w2

利用MATLAB求解:

xn = [0.4282 1.1454 1.5597 1.8994 1.6854 2.3075 2.4679 1.9790 1.6063 1.2804 -0.2083 0.0577 0.0206 0.3572 1.6572 0.7488 1.6666 1.9830 2.6914 1.2521 1.8691 1.6855 0.6242 0.1763 1.3490 0.6955 1.2941 1.0475 0.4319 0.0312 0.5802 -0.6177];
p = 4;
Rxx = zeros( 1, length(xn) );

for i = 0 : length(xn) - 1 
    j = 1; 
    while j + i <= length(xn)
        Rxx(i+1) = Rxx(i+1) + xn(j) * xn(j + i );
        j = j + 1;
    end
    Rxx(i+1) =  Rxx(i+1) / length(xn);
end


E = zeros(1, p); E(1) = Rxx(1);
a = zeros(p, 3); a(1 , 1) = 1;
ak=zeros(1,3);

for i = 1:3
    a( i + 1, i ) = Rxx(i + 1);
    for k = 1:( i - 1 )
        a( i + 1, i ) = a( i + 1, i ) + a( i, k ) * Rxx( i + 1 - k );
    end
    a( i + 1, i ) = - a( i + 1, i ) / E(i);
    
    for k = 1:(i - 1)
       a( i + 1, k ) = a( i, k ) + a( i + 1, i ) * a( i, i - k );
    end 
        
    E( i + 1 ) = ( 1 - a( i + 1, i ).^2 ) * E(i); 
end

for k=1:3
    ak(k)=a(4,k);
end

求得结果: a 1 ′ = − 0.6984 a'_1=-0.6984 a1=0.6984 , a 2 ′ = − 0.2748 a'_2=-0.2748 a2=0.2748, a 3 ′ = 0.0915 a'_3=0.0915 a3=0.0915 , σ w ′ 2 = 0.4678 σ'^2_w=0.4678 σw2=0.4678,与前文中用解方程所得结果一致。

3. AR 模型参数估计的各种算法的比较和阶数的选择

L-D 算法也存在缺点:由于在求自相关序列时,是假设除了观测值之外的数据都为零,必然会引入较大误差。为了克服L-D 算法的缺点,可以选择其他优化的算法。

Burg算法
Burg 算法的基本思想是对观测的数据进行前向和后向预测,然后让两者的均方误差之和为最小作为估计的准则估计处反射系数,进而通过 L-D 算法的递推公式求出 AR 模型参数。Burg 算法的优点是,求得的 AR模型是稳定的,较高的计算效率,但递推还是用的 L-D 算法,仍存在一定误差。

Marple 算法
Marple算法的思想是,让每一个预测系数的确定直接与前向、后向预测的总的平方误差最小,这样预测系数就不能由低一阶的系数递推确定了,所以不能用 L-D 算法求解,实践表明该算法比 L-D、Burg 算法优越。由于该算法是从整体上选择所有的模型参数达到总的均方误差最小,与自适应算法类似,不足是该算法不能保证 AR 模型的稳定性。

阶数选择
AR 模型的阶数选择不同得到的模型不同,效果相差较大,因而如何选择阶数很重要。
其中基于均方误差最小的最终预测误差(FPE:final predidyion error)准则是确定 AR 模型阶次比较有效的准则。

最终预测误差(FPE:final predidyion error)准则定义:给定观测长度为 N,从某个过程的一次观测数据中估计到了预测系数,然后用该预测系数构成的系统处理另一次观察数据,则有预测均方误差,该误差在某个阶数 时为最小,其表达式为:

F P E ( p ) = σ ^ w m 2 ( N + P + 1 N − P − 1 ) FPE(p)=\hat{σ}^2_{wm}(\frac{N+P+1}{N-P-1}) FPE(p)=σ^wm2(NP1N+P+1)
上式中估计的方差随着阶数的增加而减小,而括号内的值随着 的增加而增加,因而能找到一最佳的阶数p,使得 FPE 最小。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值