线性预测和自回归建模

这个例子展示了如何比较自回归建模和线性预测之间的关系。线性预测和自回归建模是两个不同的问题,但可以得到相同的数值结果。在这两种情况下,最终目标是确定线性滤波器的参数。然而,在每个问题中使用的过滤器是不同的。

介绍

在线性预测的情况下,目的是基于过去样本的线性组合,确定可以最佳地预测自回归过程的未来样本的冷冻滤波器。实际自回归信号与预测信号之间的差异称为预测误差。理想情况下,此错误是白噪声。

对于自回归建模的情况,目的是确定一个全极IIR滤波器,当被白噪声激励时,产生一个与我们试图建模的自回归过程具有相同统计量的信号。

使用具有白色噪声的全极滤波器产生AR信号作为输入

在这里,我们使用LPC函数和FIR过滤器,即我们将使用的参数来创建我们将使用的自回归信号。FiR1和LPC的使用并不重要。例如,我们可以用一些如[1 1/2 1/3 1/4 1/5 1/6 1/7 1/8]和P0的东西替换为简单的东西,如1E-6。但这种过滤器的形状是更好的,所以我们使用它。

B = fir1(1024, .5);(d, p0) = lpc (b, 7);

为了产生自回归信号,我们将激发一个方差为p0的高斯白噪声的全极滤波器。注意,为了得到方差p0,我们必须使用SQRT(p0)作为噪声发生器的“增益”项。

RNG(0,'twister');允许复制精确的实验U = SQRT(P0)* RANDN(8192,1);具有方差P0的%白色高斯噪声

我们现在使用高斯白噪声信号和全极滤波器来产生AR信号。

x =过滤器(1 d u);

利用Yule-Walker方法从信号中寻找AR模型

通过求解Yule-Walker方程,我们可以确定全极滤波器的参数,当用白噪声激励时,该滤波器将产生一个AR信号,其统计量与给定信号的统计量x相匹配。同样,这被称为自回归建模。为了求解Yule-Walker方程,需要估计x的自相关函数。然后使用Levinson算法有效地求解Yule-Walker方程。ARYULE函数为我们完成了这一切。

[d1,p1] = aryule(x,7);

使用AR信号进行比较AR模型

我们现在想计算我们刚刚用于模拟AR信号X的全极过滤器的频率响应。众所周知,当滤波器激发与白色高斯噪声激发滤波器时,通过其频率响应的大小乘以白噪声输入的方差来给出该过滤器的输出的功率谱密度。计算该输出功率谱密度的一种方法是使用Freqz如下:

[H1,W1] = FREQZ(SQRT(P1),D1);

为了了解我们对自回归信号X建模的程度进行了解,我们覆盖了使用Freqz计算的模型输出的功率谱密度,使用X的功率谱密度估计,使用循序量目率计算。请注意,期间焦点由2 * PI缩放,并且是片面的。我们需要调整此项以比较。

句号(x)持有惠普=情节(w1 /π,20 * log10 (2 * abs (H1) /(2 *π)),'r');%比例,使单侧PSD惠普。线宽= 2;包含('归一化频率(\ Times \ Pi Rad / Sample)') ylabel (“片面的PSD (dB / rad /样本)) 传奇('PSD估计x'“模型输出的PSD”

使用LPC执行线性预测

现在我们转向线性预测问题。这里我们试图确定一个FIR预测滤波器。我们使用LPC来做到这一点,但是LPC的结果需要一些解释。LPC返回整个白化滤波器的系数A(z),该滤波器将自回归信号x作为输入,并将预测误差作为输出。然而,A(z)中嵌入了预测滤波器,形式为B(z) = 1- A(z),其中B(z)是预测滤波器。需要注意的是,LPC计算的系数和误差方差与ARYULE计算的系数和误差方差本质上相同,但它们的解释不同。

[D2,P2] = LPC(x,7);[D1。',D2。']
ans =.8×21.0000 1.0000 -3.5245 -3.5245 6.9470 6.9470 -9.2899 -92899 8.9224 8.9224 8.9224 -6.1349 -6.1349 2.8299 2.8299 -0.6997 -0.6997

我们现在从如上所述的A(z)中提取B(z),使用FIR线性预测滤波器,基于过去值的线性组合获得自回归信号的未来值的估计。

xh =滤波器(-d2(2(2:端),1,x);

比较实际和预测的信号

为了感受我们对7抽头FIR预测滤波器所做的工作,我们绘制了(200个样本)原始自回归信号,以及由线性预测器产生的信号估计,记住预测滤波器中的单样本延迟。

CLA茎([x(2:末端),XH(1:end-1)])XLabel(的样品时间) ylabel ('信号值') 传奇('原始自回归信号''来自线性预测器的信号估计')轴([0 200 -0.08 0.1])

比较预测错误

预测误差功率(方差)作为来自LPC的第二输出返回。其值(理论上)是与驱动AR建模问题中的全极滤波器的白噪声的方差相同(P1)。另一种估计这种方差的方法来自预测错误本身:

p3 =规范(x(2:结束)xh (1: end-1), 2) ^ 2 /(长度(x) 1);

所有以下值都是理论上的。差异是由于这里的各种计算和近似误差。

[p0 p1 p2 p3]
ans =.1×4.10.-5×0.5127 0.5305 0.5305 0.5068