数据压缩(十三)——随机信号的参数建模法

本文主要简单了解三种模型以及AR模型的参数估计

概述

为随机信号建立参数模型是研究随机信号的一种基本方法,在对语音信号进行编码时,对语言产生的物理过程进行建模,编码器根据输入信号计算模型参数,然后对模型参数进行编码。当解码器收到模型参数后,再利用数学模型重建原始数据。这种利用数学模型和参数计算的编码方式称为信源模型编码技术。
其含义是认为随机信号是由白噪激励某一确定系统的响应。只要白噪的参数确定了,研究随机信号就可以转化成研究产生随机信号的系统。
数据压缩(十三)——随机信号的参数建模法

三种模型

AR模型:传递函数的分子多项式为常数(全极点模型)。是一个自回归模型,输出只取决于过去的信号值。AR模型产生的序列称为AR过程序列。
x(n)=w(n)k=1pakx(nk)x(n)=w(n)-\sum^p_{k=1}a_kx(n-k)
H(z)=11+k=1pakzkH(z)=\frac{1}{1+\sum^p_{k=1}a_kz^{-k}}
MA模型:传递函数的分母多项式为常数(全零点模型)。是一个滑动平均模型,输出只由模型的输入来决定。MA模型产生的序列称为MA过程序列。
x(n)=k=0qbkw(nk)x(n)=\sum^q_{k=0}b_kw(n-k)
H(z)=X(z)/W(z)=k=0qbkzkH(z)=X(z)/W(z)=\sum^q_{k=0}b_kz^{-k}
ARMA模型:传递函数含有极点和零点(零极点模型)。是一个
自回归−滑动平均模型,ARMA模型产生的序列称为ARMA过程序列。

ARMA模型是AR模型和MA模型的混合结构。
x(n)=k=0qbkw(nk)k=1pakx(nk)x(n)=\sum^q_{k=0}b_kw(n-k)-\sum^p_{k=1}a_kx(n-k)
H(z)=k=0qbkak1+k=1pakzkH(z)=\frac{\sum^q_{k=0}b_ka^{-k}}{1+\sum^p_{k=1}a_kz^{-k}}

AR 模型参数的估计

AR 模型参数和自相关函数的关系
公式推导
数据压缩(十三)——随机信号的参数建模法举例说明:已知自回归信号模型AR(3)为:
x(n)=1424x(n1)+924x(n2)114x(n3+w(n))x(n)=\frac{14}{24}x(n-1)+\frac{9}{24}x(n-2)-\frac{1}{14}x(n-3+w(n))
数据压缩(十三)——随机信号的参数建模法
已知自相关序列值,来估计 3 阶 AR 模型的参数ak{a_k }以及σw2σ^2_w
数据压缩(十三)——随机信号的参数建模法
利用给出的 AR 模型,用计算机仿真给出 32 点观测值 =[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],用观测值的自相关序
列直接来估计 AR(3)的参数 以及输入白噪声的σw2σ^2_w

把头 4 个相关序列值代入矩阵求得估计值a1=-0.6984 a2=-0.2748 a3=0.0915, a4=0.4678

与真实 AR 模型参数误差为: e1=0.1151, e2=0.1002, e3=0.0498,原因在于我们只有一部分的观测数据,使得自相关序列值与理想的完全不同。输入信号的方差误差比较大: eσ=0.5322,造成的原因比较多,计算机仿真的白噪声由于只有 32 点长,32 点序列的方差不可能刚好等于 1。给出一段观测值求 AR 模型参数这样直接解方程组,当阶数越高时直接解方程组计算就越复杂,因而要用特殊的算法使得计算量减小且精确度高。

**Y-W 方程的解法——L-D 算法 **
在求解时要得到更精确的估计值,就要建立更高阶的 AR 模型,直接用观测值的自相关序列来求解 Y-W 方程计算量太大。因此把 AR 模型和预测系统联系起来,换个方法来估计 AR 参数。

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

若序列的模型已知而用过去观测的数据来推求现在和将来的数据称为前向预测器,表示:x(n)=k=1mam(k)x(nk)x(n)=-\sum^m_{k=1}a_m(k)x(n-k),显然预测出来的结果与真实的结果存在预测误差或前向预测误差,设误差为 :e(n)=x(n)x^(n)=x(n)+k=1mam(k)x(nk)e(n)=x(n)-\hat x(n)=x(n)+\sum^m_{k=1}a_m(k)x(n-k)

将e(n)看成是是系统的输出,x(n)看成是系统的输入,得到系统函数:
E(z)X(z)=1+k=1mam(k)zk\frac{E(z)}{X(z)}=1+\sum^m_{k=1}a_m(k)z^{-k}

假如 m=p,且预测系数和 AR 模型参数相同,把预测误差系统框图和 AR 模型框图给出。
数据压缩(十三)——随机信号的参数建模法
即有w(n)=e(n)w(n)=e(n),即前向预测误差系统中的输入为x(n),输出为预测误差e(n)等于白噪声。也就是说前向预测误差系统对观测信号起了白化的作用。由于 AR 模型和前向预测误差系统有着密切的关系,两者的系统函数互为倒数,所以求 AR 模型参数就可以通过求预测误差系统的预测系数来实现。

L-D 算法的基本思想就是根据Y-W方程式,相关序列具有递推的性质,L-D 递推算法是模型阶数逐渐加大的一种算法,先计算阶次 m=1 时的预测系数am(k)a1(1){a_m(k) }=a_1(1)σw12σ^2_{w1} ,然后计算 m=2 时的am(k)a2(1){a_m(k) }=a_2(1)σw22σ^2_{w2},一直计算到 m=p 阶时的。这种递推算法每一阶次参数的计算是从低一阶次的模型参数推算出来的,既可减少工作量又便于寻找最佳的阶数值,满足精度时就停止递推。
流程图
数据压缩(十三)——随机信号的参数建模法
AR 模型参数估计的各种算法的比较和阶数的选择

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

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

在短数据情况下,根据经验,AR 模型的阶次选在N/3~N/2 的范围内较好。