如何从 LPC 系数转到滤波器多项式?

信息处理 过滤器 零极点 lpc 线性预测
2022-02-01 15:05:57

我最近开始尝试使用 LPC,虽然我知道可以工作,但我仍然对它的工作原理有些迷茫。

具体来说,我了解 LPC 涉及查找系数a1,a2,ap这样对于一个信号h,

h(n)i=1paih(ni)=a1h(n1)+a2h(n2)++aph(np)

换句话说,我们想要找到a1,a2,ap这将使我们在给定前一个样本的情况下线性近似下一个样本p.

然而,当实际使用 LPC 时,这些系数a1,a2,ap通常被视为多项式的系数:

xp+i=1paixpi=xp+a1xp1+a2xp2++ap

Matlab 的 LPC 文档将此称为“预测滤波器多项式”,它对于例如查找信号的共振峰(即该多项式的零点)非常有用。

但我不明白这两种用途之间的联系。为什么将线性预测系数变成这样的多项式很有用?为什么它会起作用?

2个回答

预测多项式是z- 你写的第一个方程的域。

在执行 LPC 时,假设滤波器仅包含极点,传递函数为1A(z)在哪里

A(z)=1i=1Maizi

这就是你所说的多项式。请注意,它应该只有负幂z,不积极。

正如您在问题中所写,人们估计信号h(n)基于同一信号的过去值。zi多项式中的因子表示在z-域,而系数ai只是常数,并且由于z- 变换线性,它们保持原样。

这就是你所说的多项式。请注意,它应该只有 z 的负幂,而不是正幂。

不,让A(z)=1i=1paizi. 然后

zpA(z)=zpi=1paizpi=zpa1zp1a2zp2ap=i=1p(zbi)
对于一些bi. 因此我们可以重构A(z)
A(z)=i=1p(1biz1)
在哪里bi是的根xpi=1paixpi=xpa1xp1a2xp2ap.需要注意的一点是Matlab的lpc函数实际上是返回的1 -a_1 -a_2 -a_3 ...

但我不明白这两种用途之间的联系。为什么将线性预测系数变成这样的多项式很有用?为什么它会起作用?

以这种形式重写很有用,因为您可以看到A(z)(因此极1A(z)) 由bis。共振峰是对应于bis。