[Speex-dev] autocorrelation and levinson-durbin
tunkeat
tunkeat at gmail.com
Thu Jan 13 00:50:42 PST 2005
hi,
am trying to understand speex's algo.
have a few questions.
1) autocorrelation:
in the function, _spx_autocorr (for floating point
version), there is a line
ac[0] += 10;
correct me if i am wrong, i suppose the addition of
10 is used to condition the autocorrelation matrix.
wonder how the value of 10 is arrived at?
2) levinson durbin (LD) algo
in the function _spx_lpc,
i referred to some LD algo online. am puzzled with
the reflection coefficient's computation. from the code, i
understand it to be
r = [- Rxx(i) - sum(lpc*Rxx)] / [error + 0.003* Rxx(0)]
first question is why is negative of Rxx(i) added?
from the resources i gather positive Rxx(i) is added.
second is what is the motivation behind adding
0.003*Rxx(0) to error?
3) a more general question:
i have not been able to find any reason why
10 lpcs are used. i suppose 10 lpcs are
enough for prediction and using more coeffs
would not have made too much difference.
and 10 is even, good for lpc->lsf. had read
somewhere "historically", during the analog
era, this number is used. or maybe 10 is analagous
to a perfect number! ;-)
cheers,
tk
More information about the Speex-dev
mailing list