An echo canceller includes two parallel filters and a controller. The controller
chooses the best of the two filters for the final echo cancellation. The filter
coefficients are exchanged between the two filters constantly so that both filters
retain performance all the time even if double-talk and echo path variations occur
very closely in time. One filter is strongly robust and will not diverge during
double-talk, and another filter is weakly robust and will converge rapidly during
echo path variation.