[Speex-dev] Fwd: Re: Fixed Point on wideband-mode: Single Frame loss on 2000 Hz sine causes "freak off"

Jean-Marc Valin Jean-Marc.Valin at USherbrooke.ca
Thu Feb 4 06:47:33 PST 2010


Now that's an interesting analysis! Thanks a lot for spending the time to dig
into this. I now think the whole idea of adding a small value to the error was
misguided from the beginning. Instead, what the code should probably do is just
stop once the error has reached a small enough value (and set the remaining LPC
coefs to zero).

    Jean-Marc

Quoting Frank Lorenz <Frank_wtal at web.de>:

> O.k., some more info:
>
> I just tested bandwidth widening to fix this. But I need to go to gamma
> values below 0.9 to become stable -- clearly too much widening, I think.
>
> I looked inside the Levinson-Durbin algorithm next. The lines
>
> #ifdef FIXED_POINT
>       r = DIV32_16(rr+PSHR32(error,1),ADD16(error,8));
> #else
>       r = rr/(error+.003*ac[0]);
> #endif
>
> look interesting. While for floating point, .003*ac[0] is added to error, for
> fixed point, a constant value of 8 is added. When I alter this value, I get
> an output without "freaking out" for values 1,2,3 and 5. for 4, 6 and 7 the
> system is still instable.
>
> I tired to change the line to
>  r = DIV32_16(rr+PSHR32(error,1),MULT16_16(ac[0],98));
> but without success. Maybe, precision is too low...
>
> Can you give me some hint how to proceed here?
>
> best regards,
> Frank
>
> ______________________________________________________
> GRATIS für alle WEB.DE-Nutzer: Die maxdome Movie-FLAT!
> Jetzt freischalten unter http://movieflat.web.de
>
>
>





More information about the Speex-dev mailing list