一般信号的线性预测编码

信息处理 过滤器 离散信号 信号分析 转换功能 线性预测
2022-02-25 15:21:29

我有一个单调且大致线性的信号,并且一直在研究使用线性预测编码来编码信息并压缩我的信号。我想我的第一个一般性问题是这对于一般信号是否可能?我还看到在语音上下文中提到了 LPC,所以我想知道 LPC 是否对一种类型的信号特别有效,而对另一种类型的信号是否真的很糟糕。到目前为止,我是这样理解这个过程的:

我们有一个输入信号,我们希望将其建模为x(n)

x(n)=i=1paix(ni)+e(n)

其中是我们的预测系数,是误差。我们可以通过用我们的信号过滤逆传递函数来找到误差 n) 。因此,如果我们可以用少量的 a 参数对误差进行密切建模,我们的信号就会减少到我们的预测系数和这些小参数。aie(n)e(n)1H(z)x(n)

我明白为什么 LPC 经常用于语音压缩——因为误差大致是白色的,所以我们可以通过它的方差来粗略地对其进行建模。然而,我的直觉告诉我,压缩像完美线性信号这样的东西比压缩像人声样本这样的高度非平稳信号要容易得多。所以我想我的问题是(只要我正确理解 LPC):e(n)

  1. 人们是否将 LPC 用于语音以外的事物,如果是,他们如何对进行建模以实现压缩?e(n)

  2. 如果我的直觉是正确的,使用 LPC 更容易压缩线性信号,那么在这种情况下怎么做呢?我很困惑,因为由于完美的线性信号是完全可预测的,所以它应该为所有对线性信号进行滤波会产生非零0e(n)[2,1]e(n)

1个回答

这里可能对LPC有误解。一方面,它主要用于语音,因为它旨在适应人类发声系统的模型。下图取自 Purdue 的 VISE 实验室的一项语音处理练习。该图显示了语音建模为由脉冲序列或白噪声激发的滤波器。LPC 非常适合语音,因为它为您提供了一种描述滤波器部分的简明方式。您还需要估计脉冲串的驱动频率,检测一个时间段是有声还是无声,并控制每个时间段的功率。

离散时间语音生成模型

在频域中,语音信号看起来像

在此处输入图像描述 LPC 所要做的就是拟合频谱包络。

我明白为什么 LPC 经常用于语音压缩——因为误差 e(n) 大致是白色的,所以我们可以通过它的方差来粗略地对其进行建模。

白色,尤其是加性白色高斯误差信号的意义在于,它意味着您已经使用了所有信息。如果您的错误是高度结构化的,则意味着您可以在系统建模方面做得更好。

人们是否将 LPC 用于语音以外的事物,如果是,他们如何对 e(n) 进行建模以实现压缩?

我不知道它被用于语音以外的任何事情。如上所述,人声系统是由 LPC 建模的,而不是错误。人声系统是使用源滤波器模型建模的,LPC 是描述模型中滤波器部分的好方法。

我不确定你的第二个问题,但我希望剩下的帮助。使用 LPC 进行语音编码非常有趣,特别是因为它运行良好。如果你想做一些 matlab 实验,你可以试试Purdue 的 VISE 实验室的Lab 9b 。