[Speex-dev] Fwd: Re: Fixed Point on wideband-mode: Single Frame loss on 2000 Hz sine causes "freak off"
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).
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));
> r = rr/(error+.003*ac);
> look interesting. While for floating point, .003*ac 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,98));
> but without success. Maybe, precision is too low...
> Can you give me some hint how to proceed here?
> best regards,
> GRATIS für alle WEB.DE-Nutzer: Die maxdome Movie-FLAT!
> Jetzt freischalten unter http://movieflat.web.de
More information about the Speex-dev