Design Article
Tutorial: Line echo canceller (LEC) and DC offsets
Garrett Ding, Texas Instruments
1/30/2009 12:00 PM EST
Although LEC is a powerful tool, there are a variety of factors that can degrade its performance. One factor that designers often overlook is the DC offset. DC offsets can be introduced by A/D converters or front end circuits. The LEC algorithm is sensitive to signal power, so these DC offsets will ultimately degrade performance. Even a small DC offset from can cause residual echo leakage, voice fluctuation, and increased bit error rates in data transfers. To eliminate these problems, designers must remove DC offsets from the system.
Line Echo Canceller Model
A typical line echo canceller is shown in Figure 1. It uses a two echo path model with foreground (FG) filter H(n) and background (BG) adaptive filter H'(n). The non-linear processor (NLP) is used to further reduce or completely remove any residual echo after FG filter processing. Whenever the NLP engages, the comfort noise generator (CNG) attempts to mask the residual echo.

(Click to enlarge)
Figure 1. Two echo path modeling LEC.
The BG adaptive filter uses Normalized Least Mean Squares (NLMS) algorithm to find the coefficients that produce the least mean squares of the error signal, i.e., the difference of send in signal (Sin) and receive in signal (Rin). The NLMS algorithm is a variant of the LMS algorithm. The NLMS algorithm normalizes with the power of the input Rin signal to solve the problem of LMS algorithm's convergence instability.
The FG filter is used to remove the echo. The transfer and control logic unit copies the FG filter coefficients to the BG filter coefficients under the following conditions (for all of the following, 0<α<1, 0<β<1 and Pj(s) denotes a short time power of signal s(k) for the jth time interval):
- Pj(e(b)) < α Pj(e(f)). In this scenario, the BG filter provides a larger echo return loss enhancement (ERLE) than the FG filter, i.e., the BG filter error is smaller than the FG filter error by more than -10logα dB.
- Pj(e(b)) < β Pj(y). In this scenario, the degree of send-in signal cancellation by the BG filter is larger than -10log β dB.
- Pj(y) < Pj(x), with hangover time T for the condition Pj(y) > Pj(x) to freeze coefficients transfer in double-talk.
As we can see from the above explanation, a line echo canceller is a very sensitive algorithm to signal power. DC offset can affect the voice signal power measurement and cause the model to determine erroneous filter coefficients transfer, double-talk detection and NLP engagement, ultimately degrading the echo canceller's performance. Therefore, DC offset must be removed in a VoIP system.




Comments
Randa11
2/6/2009 8:48 AM EST
The scales on these diagrams appear to have gone awry: the y axis scale on figure 3. looks bizarre. Also the x axis scale on figure three appears to indicate that this figure only shows the first 5% of the time of the other two figures. It's a shame that the y axis scales on figures 2 and 4 do not agree: then it would be just possible to see that you've achieved between 6 and 12 dB reduction in the hiss. The only way to see it as the figures are presented is by: in figure 2, matching the levels of the noise in the black trace with a section of speech in the black trace, then: in figure 4 comparing the noise with the same section of speech. (I still cannot understand the observation of the DC offset.)
Sign in to Reply
GarrettDing
2/21/2009 12:29 PM EST
I noticed these figures were different with what I sent after itÂ’s published. I have contacted with the editor. Now, the above figures (2-5) are original.
Sign in to Reply