Acoustic echo cancellation is adaptive signal processing technology that attempts to remove acoustic echoes from the near-end signal. This technology can be applied to any full-duplex communication system. With the rise of VoIP applications, acoustic echo cancellation software on commercially available hardware, such as laptops and PCs has become a requirement. Developing an ubiquitous solution for all operating systems using different hardware presents some additional challenges to the system. The two main problems are the vast differences between the physical design of the loudspeaker-microphone enclosures, and the possibility of loss of synchronization between the excitation and reference signals.
Most standard AEC should be able to handle the variability in the loudspeaker-microphone enclosure, as its affects on the echo path are static. Problems can arise when the system is poorly acoustically designed and creates gain in the echo path. This will more easily create non-linearities in the impulse response. This is a result from the saturation of the echo path and ADC conversion. Adjusting gains to ensure there is an echo return loss, and a well-designed non-linear processor can help mitigate this problem.
The problem of synchronization can manifest itself in a couple ways. Synchronization can not be guaranteed if the loudspeaker and microphone are driven by separate clocks. The sampling rate for the far-end signal can be slightly different than the sampling rate of the near-end signal causing a clock drift. Synchronization can also be lost by unexpected glitches in the system resulting in a loss of data. For example, if system resources are diverted from the VoIP application.
Synchronization problems related to clock drift can more easily be controlled because the differing sampling rates are fixed. Thus, after a short period, the rate of the drift can be estimated, and can be modeled by a simple linear equation. Handling glitches requires a mechanism to the detect such occurrences. The signal is broken up into frames. In normal operation, the time aligned correlation between the near-end and far-end signal will remain relatively constant, but if a small glitch occurs the correlation will be lost. When this situation has been detected, simple packet loss concealment methods can be used to fill in the missing data to get the signal synchronized again.