Reply by Anton July 28, 20062006-07-28
Hi,

I saw in the sources for the speex library (http://www.speex.org/)
that they add some value to the first autocorrelation result.
The results are used to produce a IIR with a levinson durbin
recursion.


   float d;
   int i;
   while (lag--) 
   {
      for (i = lag, d = 0; i < n; i++) 
         d += x[i] * x[i-lag];
      ac[lag] = d;
   }

   ac[0] += 10;
   ^^^^^^^^^^^^ 

So the autocorrelation with zero lag is just the
 signal energy, right?  I played around with this value
and if I don't add something here the levison durbin recursion
produces unstable filters.

Does anybody understand why that is necessary and what
exactly the effect of it is?

I thought that I once read that LPC coefficients produced by
autocorrelation -> levinson durbin are guaranteed to be stable.

gr.
Anton