线性预测编码LPC解析.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
LPC系数预测 实验目的 语音线性预测的基本思想是:一个语音信号的抽样值可以用过去若干个取样值的线性组合来逼近。通过使实际语音抽样值与线性预测抽样值的均方误差达到最小,可以确定唯一的一组线性预测系数。 本实验要求掌握LPC原理,利用自相关法,将语音序列加窗,然后对加窗语音进行LP分析,编写程序求12阶线性预测系数。 实验原理 线性预测编码LPC算法 由于语音样点之间存在相关性,所以可以用过去的样点值来预测现在或未来的样点值, 从而可以通过使实际语音和线性预测结果之间的误差在某个准则下达到最小值来决定唯一的一组预测系数。而这组系数就能反映语音信号的特性,可以作为语音信号特征参数来用于语音编码、语音合成和语音识别等应用中去。 假设是一实数据列,,我们可以用过去时刻的个数据来预测当前时刻的数据, 即: (1) 这里即为预测系数。定义预测误差为 (2) 我们将采用最小均方误差准则来选择的值,使得式(3)总误差最小。 (3) 这种优化参数的方法导致了求解如下的正则方程组 (4) 这里的是序列的自相关系数。式(4)可写成如下的矩阵形式: (5) 其中 (6) (7) 注意到具有的性质,式(5)中的可写成如下形式 (8) 2、Levinson-Durbin算法 Levinson-Durbin算法是求解正则方程组中的预测系数的有效算法。这种算法利用了自相关矩阵中特殊的对称性。注意到,即对角线上的元素都相等,所以这个自相关矩阵是Toeplitz矩阵。 Levinson-Durbin 算法利用了Toeplitz矩阵的特点来进行迭代计算。即首先由一阶预测器()开始,计算预测系数。然后增加阶数,利用低阶的结果得到下一个高阶的计算结果。根据(4)式求解得到的一阶预测器的预测系数是: (9) 其最小均方误差是: (10) 这里是格形滤波器的第一反射系数。 下一步是求解二阶预测器的系数和,并将结果用表示,根据式(5)得到的两个方程是: (11) 通过用(9)的解来消去,我们得到解: (12) 这样我们得到了二阶预测器的预测系数,我们再次注意到是格形滤波器中的第二反射系数。 据此类推,我们可以用阶预测器的预测系数来表示阶预测器的系数。这样,我们可将阶预测系数矢量写成两矢量的和,也就是 (13) 这里矢量是第阶预测器的预测系数,维的矢量和标量是待定的。我们将自相关矩阵分区如下: (14) 这里,的上标b表示元素的倒序排列。 根据式(13)和(14),式(5)可以写成如下形式 (15) 这是Levinson-Durbin 算法中的关键一步,从式(15)中我们得到两个方程 (16) (17) 由于, 由式(16)得到 (18) 又由于仅是倒序排列,且是Toeplitz,因此可得 (19) 即: (20) 因此式(18)可写成 (21) 现在可用式(17)这个方程来求解,如果我们用式(21)来消去式(17)中的,可得 (22) 注意到,由式(22)可得 (23) 因此,通过用式(21)和(23)的结果,替换式(13)中的值,我们得到了求解预测器系数的Levinson-Durbin 迭代算法。 实验内容 有一段语音信号,采样率为8kHz;加长度为120样点的汉宁窗。编写程序,求12阶LPC系数。 实验方法及结果 本实验开发工具为Microsoft Visual Studio 2010,采用语音信号为es01_8k_mono.snd,其信号的采样率为8kHz,对其信号数据进行预处理,采用120个采样点长度的汉宁窗进行窗处理,并取整个语音文件中的其中一帧作为实验对象,用C语言编写程序,实现Lenvinson-Durbin算法,从而求解语音序列的12阶LPC系数。 VS2010程序运行结构如下: 实验代码 #include stdio.h #includeiostream #include math.h #include sample.h int main() { float *sample,sample_H[N]; float R0,*R; float E0,EP[M]; float K[M];

文档评论(0)

创业文库 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档