[Speex-dev] mdf -- better adaption of W?

Jean-Marc Valin Jean-Marc.Valin at USherbrooke.ca
Thu Dec 8 13:44:31 PST 2005

> Generate a test signal (10+x sine waves per frame), where x increases by
> one for each iteration, and wraps around at 100.

Testing with sine waves is usually not a good idea. If you intend on
cancelling speech, then test with speech.

> First off, it seems W is stored 'backwards'. The first values are for the 
> oldest frame, ok :)


> However, when peeking at the values, it seems that the weights for 
> frame 0 (newest) are very low.

Peeking at the value tells you nothing unless you do the inverse FFT and
all so you can see them in the time domain. Even then, it's not that

> If I initialize W to the "perfect" value, it stays more or less at that 
> level, though it does adapt away from it every so slightly in the 
> frequency bands where there are no components at all in the "speaker" 
> signal.


> .. So my question is, why doesn't W adapt to the perfect values? Is there 
> something that can be done to tune the adaption?

Why? Because it's not perfect. What can be done? More tuning and
research into better adaptation algorithms. This is not a simple topic.


More information about the Speex-dev mailing list