Echo Cancellation, Art or Science? Part IV
- On November 19, 2016
- echo cancellation, saturation
In the previous posts of this series we discussed the challenges of echo cancellation algorithms to efficiently handle the echo path, the complexity introduced by echo invalidation and the howling effect. In this post we will discuss another important aspect with regards to echo cancellation called Saturation.
What is Saturation ?
The formal definition of saturation is the state that a digitized value reaches its limit and can not be increased even if the audio signal is amplified. In most modern computers, the digitized wave samples are stored in a memory size of two bytes. When the energy in the audio signal exceed the value that can be stored in two bytes – the result is saturation. The visual impact on the audio signal is very clear, instead of having a nice sin-wave form, it looks like it has been cut in the edges.
So now that we know what is saturation, how does it affect echo cancellation?
Saturation and Echo Cancellation
One of the main components in echo cancellation algorithms is the “correlation engine”. The correlation engine tries to match the reference signal (i.e. the signal that is being rendered to the speakers) with the input signal (i.e. the signal that is being captured by the microphone). The correlation engine is looking for resemblance between the reference signal and the input signal. Whenever there is saturation in the input signal, it make it harder to find resemblance between the saturated input signal (…with the cuts..) and the reference signal that does not have these cuts. As a result, the correlation might fail or find low quality correlation. Therefore, the echo cancellation overall performance will be less optimal in such conditions. Modern echo canceller have heuristics to enable them to operate in these conditions but they will never reach the optimal results.
How can I avoid saturation ?
If you are making calls and your party complains that he/she can hear echo, one of the possible reasons might be that your input signal is saturated. In such case try doing the following:
1. Lower the volume of your microphone and disable/reduce microphone boost.
2. Lower the volume of your speakers and try to keep them as far away as possible from your microphone.
ISV/Manufactures/Operator that want to improve the audio quality for their users regardless of uncontrolled saturation conditions, should use an echo canceller that is robust to saturation conditions. SoliCall offers multiple products both as OEM, like the SDKs, and as stand-alone plug-and-play products like PBXMate.
[EDITED] In the next post of this series, we will discuss the effect of synchronization.