[Speex-dev] Problem encoding sine wave in 1.1.6 and somewhat in 1.0.4

Jean-Marc Valin Jean-Marc.Valin at USherbrooke.ca
Thu Jan 13 11:46:49 PST 2005

Le jeudi 13 janvier 2005 à 14:19 -0500, Jared Whitby a écrit :
> Well I think a sinusoid shouldn't totally trash the encoder state, so
> I still think theres a bug lurking around in there. The denoiser just
> prevents it from ever making it to the encoder. Just from browsing
> through the speex code and from what I've learned reading through the
> mailing list, it looks like there are a few places where checks are in
> place to prevent sinusoids from destabilizing the stream. Somehow this
> particular sine wave is getting through the cracks I think. I actually
> tried a couple of lower frequency samples and It didn't seem to cause
> the problem I was having.

I think the "problem" comes from the pitch predictor and the fact that
at certain frequencies, it will be able to perfectly predict the signal.
By doing so, its poles will be right on the unit circle and the impulse
response will not decay in time. Preventing that from happening without
hurting the general performance (where you *do* want the pitch predictor
to make the error as small as possible) is not trivial.


Jean-Marc Valin <Jean-Marc.Valin at USherbrooke.ca>
Université de Sherbrooke

More information about the Speex-dev mailing list