An echo canceler and method for a communications system include an echo-containing
signal input for receiving a signal and an echo-causing signal source for developing
an echo-causing signal. A first filter coupled to the echo-containing signal input
and the echo-causing signal source filters the echo-containing signal over a predetermined
time period using an existing filter coefficient set to provide a first echo-canceled
output signal at a first filter output mode. A trial filter is coupled to the echo-containing
signal input and the echo-causing signal source for processing the echo-containing
signal over a predetermined time period using a trial filter coefficient set to
provide a trial echo-cancel output signal at the trial filter output mode. A controller
coupled to the echo-containing signal input, the echo-causing signal source, the
first filter output mode, and the trial filter output mode periodically recalculates
the trial coefficient set, calculates a first energy value of the echo-canceled
output signal over the predetermined time period, calculates a trial energy value
of the trial echo-canceled output signal over the predetermined time period and
determines if the echo-containing signal is dominated by echo. The existing filter
coefficient set is updated with the trial coefficient set where the echo-containing
signal is dominated by echo and the trial energy is less than the first energy.