线性预测编码LPC复习课程
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
线性预测编码L P C
LPC 系数预测
实验目的
语音线性预测的基本思想是:一个语音信号的抽样值可以用过去若干个取样值的线性组
合来逼近。通过使实际语音抽样值与线性预测抽样值的均方误差达到最小,可以确定唯一的一组线性预测系数。
本实验要求掌握LPC 原理,利用自相关法,将语音序列加窗,然后对加窗语音进行LP 分析,编写程序求12阶线性预测系数。
实验原理
1、线性预测编码LPC 算法
由于语音样点之间存在相关性,所以可以用过去的样点值来预测现在或未来的样点值,
从而可以通过使实际语音和线性预测结果之间的误差在某个准则下达到最小值来决定唯一的一组预测系数。而这组系数就能反映语音信号的特性,可以作为语音信号特征参数来用于语音编码、语音合成和语音识别等应用中去。 假设)(n y 是一实数据列,+∞<<∞-n ,我们可以用过去时刻的N 个数据来预测当前时刻的数据)(n y , 即:
+∞<<∞--=∑=n - , )()()(ˆ1N
k N k n y k a n y
(1)
这里)(k a N 即为预测系数。定义预测误差)(n e 为
)(ˆ)()(n y
n y n e -=
(2)
我们将采用最小均方误差准则来选择)(k a N 的值,使得式(3)总误差N E 最小。
∑∑∑∞
-∞==∞
-∞=⎥⎦
⎤⎢⎣⎡-+==n N
k N n N k n y k a n y n e E 2
12
)()()()(
(3)
这种优化参数)(k a N 的方法导致了求解如下的正则方程组
N l l R l k R k a
yy N
k yy N
,,2, , )()()(1
Λ=-=-∑=
(4)
这里的)(k R yy 是序列)(n y 的自相关系数。式(4)可写成如下的矩阵形式:
N N N r a R -=⋅
(5) 其中
[]T
N N N N N a a a )(,),2(),1(Λ=a
(6) []
T
yy yy yy N N R R R )(,),2(),1(Λ=r
(7)
注意到)(k R yy 具有)()(j i R j i R yy yy -=-的性质,式(5)中的N R 可写成如下形式
⎥⎥⎥⎥⎥⎦
⎤⎢⎢⎢⎢⎢⎣⎡----=)0()2()1()2()0()1()1()1()
0(yy yy yy yy yy yy yy yy yy N R N R N R N R R R N R R R ΛM M M M ΛΛR (8) 2、Levinson-Durbin 算法
Levinson-Durbin 算法是求解正则方程组中的预测系数N a 的有效算法。这种算法利用了自相关矩阵中特殊的对称性。注意到)(),(j i R j i R yy N -=,即对角线上的元素都相等,所以这个自相关矩阵是Toeplitz 矩阵。
Levinson-Durbin 算法利用了Toeplitz 矩阵的特点来进行迭代计算。即首先由一阶预测
器(1=N )开始,计算预测系数)1(1a 。然后增加阶数,利用低阶的结果得到下一个高阶的计算结果。根据(4)式求解得到的一阶预测器的预测系数)1(1a 是:
)
0()1()1(1yy yy R R a -
=
(9) 其最小均方误差是:
[]
212
111)1(1)0()0()1()1()1(2)0(a R R a R a R E yy yy yy yy -=+⋅+= (10)
这里11)1(ρ=a 是格形滤波器的第一反射系数。
下一步是求解二阶预测器的系数)1(2a 和)2(2a ,并将结果用)1(1a 表示,根据式(5)得到的
两个方程是:
)1()1()2()0()1(22yy yy yy R R a R a -=+ )2()0()2()1()1(22yy yy yy R R a R a -=+
(11)
通过用(9)的解来消去)1(yy R ,我们得到解:
[
]
1
121
12)
1()1()2()
1(1)0()1()1()2()2(E R a R a R R a R a yy yy yy yy yy ⋅+=
-⋅+-
=
)1()2()1()1(1212a a a a +=
(12)
这样我们得到了二阶预测器的预测系数,我们再次注意到22)2(ρ=a 是格形滤波器中的第二反射系数。
据此类推,我们可以用)1(-m 阶预测器的预测系数来表示m 阶预测器的系数。这样,我们可将m 阶预测系数矢量m a 写成两矢量的和,也就是
⎥⎦
⎤⎢⎣⎡+⎥⎦⎤⎢⎣⎡=⎥⎥⎥⎥⎦
⎤⎢⎢⎢⎢⎣⎡=--m m m m m m m m a a a ρ110)()2()1(d a
a M (13)
这里1-m a 矢量是第)1(-m 阶预测器的预测系数,)1(-m 维的矢量1-m d 和标量m ρ是待定的。我们将m m ⨯自相关矩阵m R 分区如下:
⎥
⎥⎦⎤⎢⎢⎣
⎡=---)0(11
1
yy bt
m b
m m m R r r R R
(14)
这里[
]
T b m yy yy yy bt
m R m R m R )()1(,),2(),1(11
--=--=r r Λ,b
m 1-r 的上标b 表示
[
]
T
yy yy yy m m R R R )1(,),2(),1(1-=-Λr 元素的倒序排列。 根据式(13)和(14),式(5)可以写成如下形式
⎥⎦⎤⎢⎣⎡-=⎪⎪⎭⎫ ⎝⎛⎥⎦⎤⎢⎣⎡+⎥⎦⎤⎢⎣
⎡⎥⎥⎦⎤⎢⎢⎣⎡------)(0)0(1111
1
1
m R R yy m m m m yy bt m b
m m r d a r r R ρ (15)
这是Levinson-Durbin 算法中的关键一步,从式(15)中我们得到两个方程
111111-------=++m b
m m m m m m r r d R a R ρ
(16) )()0(1111m R R yy yy m m bt m m bt m -=++----ρd r a r
(17)
由于111----=m m m r a R , 由式(16)得到
b m m m m 1111-----=r R d ρ
(18) 又由于b
m 1-r 仅是1-m r 倒序排列,且
1-m R 是Toeplitz ,因此可得