G.168 ECHO CANCELLER - LINE, NETWORK, & PACKET ECHO CANCELLATION
Adaptive Digital's high performance G.168 compliant echo canceller: Toll-quality echo cancellation provided for configurable tail lengths of 16ms (128 taps), 32ms (256 taps), 64ms (512 taps), and 128ms (1024 taps) on a per channel basis. G.168 Plus™Packet handles round trip delays up to 512 msecs.
Adaptive Digital's G.168 Echo Canceller is certified as
"Toll-quality" by AT&T Labs
Line, Network, Acoustic, & Packet
Adaptive Digital’s G.168 echo cancellation algorithm comes in three variants, each of which is designed to suit a specific type of application. The three variants are Line echo cancellation (EC), Network EC, and Packet EC.
Line Echo Canceller
The Line EC (LEC) is designed to operate inside a device that has a local hybrid circuit. The hybrid circuit is the circuit that converts between a4-wire and a 2-wire interface. Hybrid circuits include:SLIC (Subscriber Line Interface Circuit)FXO (Foreign Exchange – Office)FXS (Foreign Exchange – Subscriber)DAA (Data Access Arrangment)Examples of equipment that need a line echo canceller include:
- • ATA
- • VoIP Gateway with FXO and/or FXS interfaces
The significance of the local hybrid is that there is little delay between the hybrid, the source of the echo, and the echo canceller.
Network Echo Canceller
The Network Echo Canceller (NEC) is designed to operate in a piece of network equipment that may not have an internal echo source. The echo source may be elsewhere in the network. Examples of equipment that may need an echo canceller include:
- • VoIP Gateway with digital trunks
- • T1/E1 echo canceller
Since the echo source is elsewhere in the network, the network echo canceller must be able to deal with longer echo delays than the line echo canceller. It must also be able to handle signaling tones that are found in the telephone network. It may also need to cancel reflections caused by more than one hybrid circuit in the network. Finally, the network echo must be able to deal with echo-free circuits or circuits in which the echo is already cancelled at the source.
Packet Echo Canceller
The conventional wisdom tells us that an echo canceller should be as “close to” the echo source (hybrid) as possible. For a variety of reasons, this makes the echo canceller perform better. But the introduction of the Voice –Over-IP network, the conventional wisdom has been turned on its side. The added delay incurred by the packet network can cause echo that is not otherwise perceptible to become a problem. This may include not only echo due to hybrid circuits but also some residual acoustic echo from handsets or hands-free devices. As a result, there could be equipment in the field that did not require echo cancellation before VoIP entered the picture. Since it is not feasible to modify all such equipment, it is sometimes necessary for an echo canceller in a packet network to cancel echo whose source is on the opposite end of the packet network. A packet network echo canceller must be able to handle excessively long echo delays. It must also be able to operate well whether there is echo or not. In fact, it is far more common that a connection be echo free because the echo is cancelled at the source. Furthermore, a packet echo canceller must be able to deal with the presence of speech compression algorithms within the VoIP network. Examples of equipment that may need a packet echo canceller include:
- • VoIP Gateway
- • VoIP Conference Server
AVAILABILITY
ADT G.168 Echo Canceller is available on the TMS320™ DSP Family
C54x™DSP Generation: Line and Network EC
C55x™DSP Generation: Line, Network and Packet EC

C64x™DSP Generation: Line, Network and Packet EC
C64x+™DSP Generation: Line, Network and Packet EC
C62x™DSP – Short Tail (LEC) Only
C67x™DSP, C67x+™DSP, C647x™DSP – Please inquire
PC/Windows – Please inquire
Linux/x86
ARM7, ARM9
DATA SHEET .pdf
ECHO CANCELLER FEATURE COMPARISONS
Adaptive Digital’s echo cancellation software is offered in three variants, which
are compared by feature set in the following table.
| Feature |
G.168 LEC |
G.168 NEC |
G.168+ Packet EC |
| Maximum Tail Length |
16 msec |
128 msec |
512 msec |
| Tandem Free Operation |
-- |
X |
X |
| High Efficiency Tandem Free Operation |
-- |
-- |
X |
| Packet Loss Concealment |
-- |
-- |
X |
| PCM Slip Correction |
-- |
X |
X |
| Dynamic NLP |
X |
X |
X |
| Comfort Noise Generator |
X |
X |
X |
| Rapid Convergence |
X |
X |
X |
| Automatic Tail Search |
-- |
X |
X |
| Cancels multiple reflectors |
X |
X |
X |
| Convergence Monitor |
X |
X |
X |
| Tone Disabler |
X |
X |
X |
| SS7 Tone Detection |
-- |
X |
X |
| Double-talk Detection |
X |
X |
X |
| Stationary Signal Detector |
X |
X |
X |
| Pre-NLP Signal Available |
X |
X |
X |
| Split Pre- and Post- Processing |
X |
X |
X |
| Handles Residual Acoustic Echo |
X |
X |
X |
| eXpress DSP™ compliant |
X |
X |
X |
| Functions are “C” callable |
X |
X |
X |
| User Configurable Parameters |
X |
X |
X |
SPECIFICATIONS
C54x
All Memory usage is given in units of 16-bit word.
Tail Length |
MIPs (Peak) |
Program Memory |
Data Memory |
Per-Channel Data Memory |
8 msec |
2.7 |
4399 |
413 |
433 |
16 msec |
3.5 |
4399 |
477 |
629 |
32 msec |
5.0 |
4399 |
605 |
1021 |
64 msec |
6.0 |
5728 |
920 |
1620 |
128 msec |
6.6 |
5728 |
1528 |
2484 |
NOTE: Characterized with PCM Slip Correction
disabled.
C55x
All Memory usage is given in units of byte.
Tail Length |
MIPs (Peak) |
Program Memory |
Data Memory |
Per-Channel Data Memory |
8 msec |
3.8 |
9833 |
1406 |
968 |
16 msec |
4.7 |
9833 |
1662 |
1376 |
32 msec |
6.3 |
9833 |
2174 |
2192 |
64 msec |
6.6 |
12663 |
3594 |
3266 |
128 msec |
7.4 |
12663 |
5642 |
5122 |
*256 msec |
8.2 |
13686 |
9738 |
8834 |
*384 msec |
10.4 |
13686 |
13834 |
12546 |
*512 msec |
12.4 |
13686 |
17930 |
16258 |
* NOTE: Tail lengths of 256, 384, & 512 msec.
are only supported in the G.168Plus™ Packet EC.
C62x
All Memory usage is given in units of byte.
Tail Length |
MIPs (Peak) |
Program Memory |
Data Memory |
Per-Channel Data Memory |
16 msec |
3.4 |
17321 |
852 |
1332 |
32 msec |
4.2 |
17321 |
1108 |
2114 |
C64x
All Memory usage is given in units of byte.
Tail Length |
MIPs (Peak) |
Program Memory |
Data Memory |
Per-Channel Data Memory |
16 msec |
3.5 |
24640 |
1330 |
1574 |
32 msec |
4.1 |
24640 |
1736 |
2628 |
64 msec |
4.5 |
31296 |
2344 |
3556 |
128 msec |
4.7 |
31296 |
3560 |
5412 |
| *256 msec tail |
5.1 |
31264 |
5992 |
9124 |
| *384 msec tail |
5.6 |
31264 |
8424 |
12836 |
| *512 msec tail |
6.2 |
31264 |
10856 |
16548 |
* NOTE: Tail lengths of 256, 384, & 512 msec.
are only supported in the G.168Plus™ Packet EC.
C64x+
Tail Length |
MIPs (Peak) |
Program Memory |
Data Memory |
Per-Channel Data Memory |
C64x+ -
Tail Lengths of 256, 384, & 512 msecs are supported
only in the G.168 Packet EC. |
16 msec |
3.4 |
23296 |
1330 |
1574 |
32 msec |
4.0 |
23296 |
1736 |
2628 |
64 msec |
4.4 |
29280 |
2344 |
3556 |
| 128 msec |
4.6 |
29280 |
3560 |
5412 |
*256 msec |
4.3 |
29280 |
5992 |
9124 |
*384 msec |
4.7 |
29280 |
8424 |
12836 |
*512 msec |
5.1 |
29280 |
10856 |
16548 |
* NOTE: Tail lengths of 256, 384, & 512 msec.
are only supported in the G.168Plus™ Packet
EC.
Linux x86
CPU Utilization
Varient |
Platform |
Average MIPS* |
Peak MIPS |
LEC |
32 bit |
-- |
72 |
LEC |
64 bit |
-- |
28 |
NEC |
32 bit |
-- |
124 |
NEC |
64 bit |
-- |
48 |
PEC |
32 bit |
19 |
148 |
PEC |
64 bit |
8 |
60 |
* PEC average MIPS characterized with smart packet optimization set to maximum on echo-free circuit
FUNCTION
LEC_ADT_g168Init(…) Initializes echo canceller channel
LEC_ADT_g168Cancel(…) Executes cancellation function
LEC_ADT_g168echoCancel(..) Executes pre-NLP function (split API)
LEC_ADT_g168postCancel(..) Executes NLP function(split API)
LEC_ADT_g168RuntimeConfig Changes modifiable EC parameters
LEC_ADT_g168GetConfig(…) Gets parameters and status of the EC
LEC_ADT_move( ) Inform EC that it’s data has moved. This is used
for memory optimization.
About Adaptive Digital's G.168 Echo Cancellation Algorithm
The Adaptive Digital Technologies patented, industry
standard, carrier class G.168 echo canceller is
available on many
DSP and general purpose processors. Adaptive Digital’s echo canceller
qualified as toll-quality at AT&T’s Voice Quality Assessment
Labs in Middleton, NJ. AT&T’s Voice Quality Assessment Lab evaluated
Adaptive Digital’s echo canceller using its stringent series of performance
tests including AT&T’s Mean Opinion Score (MOS)
subjective tests as well as the standardized set of G.168 objective tests.
The subjective and objective performance of Adaptive Digital’s echo
canceller surpassed even the performance of AT&T’s benchmark
lab echo cancellers.
The importance of subjective testing should not be overlooked.
Although the ITU’s G.168 recommendation is well thought out, this type
of objective test is no guarantee that an echo canceller will sound good
to a human listener. By doing both subjective (MOS) and objective
(G.168) testing, Adaptive Digital ensures the optimum voice quality, which
is, after all, what it’s all about!
Another important reason for solid subjective performance
is that G.168 is not a bit-exact specification. When an algorithm is specified
in a bit-exact way, every compliant implementation will sound identical.
This is the case for most of the standardized vocoders. In contrast, G.168
specifies test conditions, excitations, and required minimum output
performance. As a result, the voice quality achieved by different echo cancellers
varies greatly. Beyond all the lab testing that can and should be done, there
is no substitute for lessons learned through years of real-world deployment.
The overall importance of echo cancellation should also
not be overlooked. From the users perspective, echo is arguably the worst
type of impairment that can be encountered during a telephone conversation.
Typically, if a circuit has echo, the two parties agree to hang up and dial
again because it is so difficult to speak in the presence of one’s
own echo.
The moral of the story is – use a top-notch echo canceller.
A reputation for good voice quality is difficult to achieve. A reputation
for bad voice quality is easy to achieve and difficult to overcome.
1. Overview
• 1.1 Echo Tail
• 1.2 Bulk Delay
• 1.3 Echo Cancellation
• 1.4 Tandem Free Operation
2. Additional Requirements
3. Features
4. Availability
5. Specifications
ECHO CANCELLATION OVERVIEW
Echo in the telephone network is caused by hybrid circuits
that convert between two-wire analog interfaces and four-wire analog
interfaces, as seen in figure 1

At the four-wire side of the hybrid, one pair of wires carries
voice signals toward the hybrid (sometime called the receive path),
and a second pair of wires carries voice signals away from the hybrid (sometimes
called the send path). On the two-wire side of the hybrid,
a single pair of wires carries voice signals in both directions. The echo
comes about because hybrid circuits are not perfectly matched. As a result,
some of the four-wire receive signal is leaked back into the four-wire send
signal.
We will refer to the person speaking at the four-wire side
as the far end speaker, and the person speaking at the two-wire
side as the near end speaker.
ECHO TAIL
If we characterize a hybrid in terms of its impulse response, we see that
the impulse response tends to be non-zero for a few milliseconds, but can
be as long as 16 milliseconds. The impulse response is often referred to
as the echo tail, and the duration of the echo tail is often
referred to as the tail length. The tail length of the echo
tail shown in figure 2 is 8 millseconds.

There are situations where the echo canceller is not located at the same
location as the hybrid. It may be separated by one or more T-1 links or other
types of links that cause the tail length appear to be even longer from the
point of view of the echo canceller. Furthermore, there may be more than
one hybrid in the path – resulting in an overall impulse response that
is the concatenation of multiple impulse responses. In this case, each tail
is sometimes referred to as a reflector, and the situation
where there are multiple hybrids in a circuit is referred to as one where
there are multiple reflectors.
BULK DELAY
There rare situations where an echo canceller may be on the opposite side
of a VoIP or satellite link from the hybrid. In this case, the there is considerable
delay between the echo canceller and the hybrid in both directions. In this
case, the echo tail appears to begin with a segment of zeros followed by
the hybrid impulse response as shown in figure 2. The duration of the segment
of zeros is referred to as the bulk delay.
There are two ways to handle bulk delay. One is to place an artificial
delay into the far end input to the echo canceller to effectively remove
the bulk delay from the point of view of the echo canceller. This technique
falls short for two reasons. First of all, it requires a-priori knowledge
about the amount of bulk delay that will be encountered. Second, it does
not allow for the situation where there may be a local reflector and a remote
reflector. Because of both of these reasons, it may be preferred to use a
second technique in which the entire possible delay window is analyzed, and
any reflectors within that window are cancelled.
ECHO CANCELLATION
The primary job of an echo canceller is to remove the echo of the receive
path that has bled through the hybrid into the send path. This is done by
modeling the echo path with an adaptive filter, using that
adaptive filter to predict the echo, and subtracting the predicted echo from
the send signal. This is shown in figure 3.

But, as we will explain, there is far more to an echo canceller than meets
the eye for a number of reasons.
The ideal situation for an echo canceller to model the echo tail is when
the far end speaker is speaking and the near end speaker is silent. This
condition is referred to as single-talk. The reason this
is ideal is that the receive signal is used as a reference signal for the
echo canceller for comparison with the send signal. If both the far end speaker
and the near end speaker are speaking at the same time (a condition known
as double-talk condition), the near end speech will be added
to the echo thereby making it more difficult for the echo canceller to compare
it to the reference. In fact, a double-talk condition can cause an echo canceller’s
adaptive filter to diverge. In order to prevent this from happening, echo
cancellers employ double-talk detectors. When double-talk
is detected, the echo canceller temporarily stops adapting it’s filter
to prevent divergence.
Echo cancellers use adaptive filters that do not perfectly model the echo
tail. As a result, the echo cancellers have to perform post-processing (Nonlinear
Processing or NLP) to remove the residual echo
caused by the imperfections. Similarly, the echo path may have some nonlinearities
that the adaptive filter cannot perfectly match. The NLP is intended to take
care of this also.
The NLP has to be designed carefully in order to minimize unwanted effects.
The nonlinear processor is free to suppress residual echo at will in a single-talk
situation. But if it is too aggressive during a double-talk situation it
may suppress the near end speech – an undesirable effect.
Another more subtle effect of an NLP occurs when there is background noise
at the near end. This background noise will be heard by the far end speaker
when the NLP is not engaged, but the noise will be suppressed when the NLP
is engaged. The appearance and disappearance of the background noise can
be annoying. In order to take care of this, an echo canceller will often
replace the residual signal with comfort noise while the
NLP is engaged rather than blindly suppressing the signal. When an echo canceller
has this feature, it is referred to as a comfort noise generator (CNG).
An overly aggressive NLP may also cause DTMF digits to be partially clipped
(in duration). The possible consequence is that a DTMF detector may not detect
a tone that should have otherwise been detected. In situations where an application
needs an aggressive NLP, this problem can be circumvented by outputting both
the pre-NLP and post-NLP signals. The DTMF detector can be fed the pre-NLP
signal.
Beyond nonlinearities in the echo path, there can be other impairments
that an echo canceller may need to deal with.
PCM Slips: A PCM slip (as can occur on a T-1 or E-1 link) shifts the
echo tail by one sample period (125 microseconds). This causes the
echo canceller to reconverge its adaptive filter. During the period of
reconvergence, echo will temporarily reappear.
Residual Acoustic Echo: There may be some residual echo on the line
if the near end speaker is using a hands-free phone that does not
have a good acoustic echo canceller. In this case, the network echo canceller
has an opportunity to attack this source of echo. There can also
be some residual echo when using a non-hands-free phone. This echo is
caused by acoustic coupling between the handset earpiece and microphone.
The level of this echo is usually small.
Packet Loss: If an echo canceller is placed on the opposite side of
a packet network with respect to the hybrid, a lost packet causes
an interruption in the echo path. This can cause an echo canceller to
diverge.
In the echo path such as PCM slips, packet loss (in a packet network),
and residual acoustic echo from a hands-free phone. Ideally, an echo canceller
should do its best to mitigate the effects of these impairments as well.
TANDEM FREE OPERATION
Yet another scenario that an echo should deal with is the one where there
is another echo canceller in a circuit that is closer to the hybrid than
ours. In this case, the other echo canceller should remove the echo leaving
our echo canceller the appearance that there is no hybrid in the circuit.
Under these circumstances, an echo canceller could actually create echo rather
than leave the echo-free signal alone. Being able to handle this situation
properly is referred to as tandem free operation. A similar
situation is one in which an echo canceller is placed on a circuit that does
not have a hybrid.
ADDITIONAL ECHO CANCELLER REQUIREMENT
The telephone system carries more than just voice signals. It can carry
fax and modem signals, signaling tones (such as DTMF tones and inter-office
signaling tones). Passing these tones properly imposes additional constraints
on an echo canceller. For example, an echo canceller must detect the presence
of certain modems by identifying their answer tones (as specified by ITU
G.165, V.8). When these modems are present, the echo canceller must disable
itself for the duration of the modem connection. Similarly, when certain
interoffice signaling tones known as SS7 tones are present, the echo canceller
must disable itself temporarily. This feature is known as a tone
disabler.
For
full data sheet download .pdf 
The
Asterisk® VOIP
Systems - HPEC is upon Adaptive Digital's G.168 EC algorithm. By
incorporating Adaptive Digital's field-proven echo cancellation technology,
Digium brings better and more robust voice quality to its worldwide customer
base. The High Performance Echo Cancellation (HPEC) is carrier-grade
and provides host-based Toll Quality echo cancellation on a global scale.
"As Asterisk continues its rapid rate of deployment
on a wide range of telephone equipment from vendors around the world, Digium
is committed to delivering our customers the absolute best quality possible," said Mark Spencer, CTO of
Digium. "Digium’s new high performance echo cancellation solutions once
again set the industry standard for open source, carrier-class voice networks."