莱文森-德宾递推公式证明

lpc10是语音信号分析的一个基础算法, g723 g729等都是在其基础构造的,区别是对激励源的编码不同

而莱文森-德宾是lpc10算法中求预测系数的重要一环,本文就对其的递推公式进行证明

首先从lpc系数的求解开始说吧

我们假定 s[n]是输入的语音信号

s`[n]是10阶预测信号

s`[n] = a10 * s[n - 10] + a9 * s[n - 9] + ... + a1 * s[n - 1]

我们取s`[n] 与 s[n] 方差最小值

(s[n] - s`[n])^2 ^2表示平方

然后对每个 a[i]求偏导,自然就得到了一个10元一次方程组,表示

10

Σa[i] * R(|k-i|) = R(k) k = 1,2,...,10 R(k)表示输入信号的自相关 --- 方程组1

i=1

即莱文森-德宾递推公式就是一种适合于计算机实现的解这个10一次方程组的算法

下面提到内积和正交的概念

A(z) B(z)分别表示前向预测与后向预测的逆滤波器的系统函数

则它们关于输入s[n]的内积这么定义

10 11

Σ Σ a[i]*b[k] R(|i-k|) R(n)同样表示输入信号s[n]的自相关函数

i=1 k=1

记作 <A(z),B(z)>

如果内积为零,则被称之为正交

这里可以立即得出这么一个结论

<A(z), z^(-l)>一定为零,这个参见方程组1

也就是说A(z)与z^(-l) l=1,2,...10正交时,A(z)是该阶次下最优估计的逆滤波器

开始递推,首先从零开始,零阶时,啥都没有

最优的逆滤波器自然就是

A0(z)=1

B0(z)=z^-1

构造出递推公式

A[i](z) = A[i-1](z) + ki * B[i - 1](z)

B[i](z) = z^-1{ B[i - 1](z) + ki * A[i-1](z) } ----- 等式2

其中 ki = -{ <A[i-1](z),B[i - 1](z)> } / { B[i - 1](z), B[i - 1](z) } ---- 等式1

现在只需要证 A[i](z) 与 z^-i正交即可 (当然B[i](z)也要与z^-i,两个证明的过程差不多)

将A[i](z) = A[i-1](z) + ki * B[i - 1](z)代入 <A[i](z), z^-i>

我们立该得到

<A[i-i](z), z^-i> + ki<B[i - 1](z), z^-i> = 0;

求出满足这个条件的ki就是了

<A[i-i](z), z^-i> 实际上与 <A[i-i](z), B[i-1](z)>是相等的,为什么呢?

因为A[i-1](z)是最优估计,那它一定与 z^-l (l=1,2,...,i-i)正交,而 B[i-i](z)的最高阶系数是1...

同理<B[i - 1](z), z^-i> 与<B[i-i](z), B[i-1](z)>也是相等的...

自然ki就是等式1的那种形式,

莱文森-德宾递推公式至此证明完毕

ki递推公式化简

i-1

分母可以化简为 R[i] + Σ a(m-1)[n] * R(|l-i|) 这个可以用<A[i-i](z), z^-i> 直接推导出

l=1

分子可以化简为 (1-k(l)^2)*(1-k(l-1)^2) ... (1-k(1)^2)*R(0)

这是由于 <z^-1 * F(z), z^-1 * G(z)> = <F(z), G(z)> = <F(1/z), G(1/z)> 由内积的定理可以直接证出

用 <B[i](z), B[i](z)> 等式2进行代换,再进行相应的合并同类项处理,就可以得到化简后的分子

笔者证了好几遍,但是每次证完,每次又都忘了。。。

妈了个逼的,好记性不如烂笔头啊。

你可能感兴趣的:(莱文森-德宾递推公式证明)