Patent ID: 6839427

Claim:
A method of controlling echo cancellation gain within a communication system, the method comprising: determining a reference signal power, a desired signal power and an error signal power; determining an peak adaptive filter coefficient; determining an echo canceller input gain adjustment value, an echo canceller output gain adjustment value, a desired signal gain adjustment value and a reference signal gain adjustment value based at least in part upon the reference signal power, the desired signal power; the error signal power and the peak adaptive filter coefficient; in a first mode of operation, based upon an evaluation of the reference signal power, the desired signal power and the error signal power relative to a set of conditions, adjusting an echo canceller input gain based upon the echo canceller input gain adjustment value and adjusting an echo canceller output gain based upon the echo canceller output gain adjustment value while leaving a desired signal gain and a reference signal gain unchanged; in a second mode of operation, based upon an evaluation of the reference signal power, the desired signal power and the error signal power relative to the set of conditions, adjusting an echo canceller input gain based upon the echo canceller input gain adjustment value, adjusting an echo canceller output gain based upon the echo canceller output gain adjustment value, adjusting the desired signal gain based upon the desired signal gain adjustment value and adjusting the reference signal gain based upon the reference signal gain adjustment value; and in a third mode of operation, based upon an evaluation of the reference signal power, the desired signal power and the error signal power relative to the set of conditions, adjusting the desired signal gain based upon the desired signal gain adjustment value and adjusting the reference signal gain based upon the reference signal gain adjustment value while leaving the echo canceller input gain and the echo canceller output gain unchanged.