线性预测和自回归建模

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

介绍

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

对于自回归建模的情况,意图是确定全极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,我们必须使用SQRT(P0)作为噪声发生器中的“增益”项。

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

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

x =滤波器(1,D,U);

使用Yule-Walker方法从信号查找AR模型

求解Yule-Walker方程,我们可以确定全极过滤器的参数,即在白噪声激发时会产生统计匹配给定信号x的AR信号x的AR信号。再一次,这被称为自回归建模。为了解决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)持有HP = PLOT(W1 / PI,20 * log10(2 * ABS(H1)/(2 * PI)),'r');百分比制作单面PSDhp.linewidth = 2;Xlabel('归一化频率(\ Times \ Pi Rad / Sample)')ylabel('单面PSD(DB / RAD /样品)') 传奇('PSD估计x''模型输出的PSD'

使用LPC执行线性预测

我们现在转向线性预测问题。在这里,我们尝试确定FIR预测过滤器。我们使用LPC来这样做,但LPC的结果需要一点解释。LPC返回整个美白滤波器A(Z)的系数,该过滤器作为输入自回归信号X并返回为输出预测误差。然而,(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

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

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

比较实际和预测的信号

为了了解我们使用7分fIR预测滤波器所做的事情,我们将原始自回归信号的(200个样本)绘制(200个样本)以及线性预测器保持在预测中的一个采样延迟所产生的信号估计筛选。

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

比较预测错误

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

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

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

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

也可以看看

|