
Acoustic Echo is caused by direct and indirect feedback from speaker to microphone. In order to combat the echo phenomenon, an echo canceller is employed. Today’s echo cancellers use sophisticated algorithms running on high speed Digital Signal Processors (DSPs)
The Adaptive Digital Technologies acoustic echo canceller electronically removes both direct coupling and reflected echo, enabling true full-duplex hands-free telephony both mobile phones, desktop speakerphones, and hands-free intercoms. Adaptive Digital has been developing echo canceller technology for over ten years. This acoustic echo canceller (AECG4) is the fourth generation (G4) acoustic echo canceller offered by Adaptive Digital.
The fourth-generation canceller includes a noise reduction feature, as well as the typical anti-howling, nonlinear processing, and double-talk detection found in the first generation AEC. The acoustic noise reduction feature is particularly useful during speakerphone calls where there is background noise present such as an exhaust fan, and in noisy outdoor environments.
By using Adaptive Digital’s acoustic echo canceller to eliminate this unwanted echo and reverberating interference, echo-free conversation can be achieved.
ADT AEC G4 is available on the TMS320™ DSP Family
The AEC supports the TI xDAIS interface.
Target Processors:
C55x™DSP, C64x™DSP, C64x+™DSP, C67x+™DSP, and C674x™DSP Generations
Related Product - Adaptive Feedback Control (AFC)
The AEC is licensed primarily an object code library that is linked by the user into a larger DSP application. A number of library build variants exist. Each includes the base functionality, but some build variants also include optional functionality such as:
The following feature table lists features by build variant: Grayed out entries are built only upon specific requests from customers.
| Build Name | Sampling Rate | AGC | Noise Reduction |
| 8K_ALL | 8000 | Yes | Yes |
| 8K_AGC | 8000 | Yes | No |
| 8K_NR | 8000 | No | No |
| 16K_ALL | 16000 | Yes | Yes |
| 16K_AGC | 16000 | Yes | No |
| 16K_NR | 16000 | No | Yes |
| * Call Adaptive Digital for higher sampling rates or other options | |||
The following figure is a simplified block diagram of the Acoustic Echo Canceller. A description follows. In the description, you will find parameter names blue, underlined, and in inside parenthesis (parameter). This indicates that a user-controlled parameter is involved in the process being described.
The top half of the diagram shows the receive signal path, or the signal path from the telephone network to the speaker.

The bottom half of the diagram shows the transmit signal path from the microphone toward the telephone network. The AEC cancels the echo that occurs between the speaker output and the microphone input.
The terms Rx (Receive) and Tx (Transmit) may be confusing at first because both the receive and transmit paths have inputs and outputs. The names receive and transmit are used from the point-of-view of the person at the speaker/microphone side.
The terms Rx (Receive) and Tx (Transmit) may be confusing at first because both the receive and transmit paths have inputs and outputs. The names receive and transmit are used from the point-of-view of the person at the speaker/microphone side.
The RxIn signal coming from the network is fed into the RxNLP (Receive Nonlinear Processor). The RxNLP can attenuate (MaxRxAttendB) the received signal by a variable amount based upon the talk state (single talk vs. double-talk). This attenuation improves the overall echo attenuation.
The output of the RxNLP is fed into a noise generator, which adds noise (maxRxNoisedBm) to the receive signal. This noise helps the AEC converge and remain converged even when nobody is speaking. The output of the noise generator is fed both to the receive output (RxOut) and into the adaptive filter.
The adaptive filter estimates the echo and subtracts it from the TxIn signal to form the residual signal. The residual signal is fed to the noise reduction block. This noise reduction block removes background noise and therefore improves the signal to noise ratio of the transmit signal. Noise Reduction parameters include (nrSTIntervalMSec, nrLTIntervalMSec, nrMaxLossdB, nrHighSNRMarkdB, nrLowSNRMarkdB.)
The output of the noise reduction block is fed into an equalizer. The equalizer is used to flatten out the frequency response of the transmit channel. This may be necessary due to the acoustics of the hands-free device and due to the characteristics of the microphone itself. The equalizer gain vs. frequency band table is provided by the user parameter (pTxEqualizerdB10).
The output of the transmit equalizer is fed into the TxNLP. The TxNLP is the transmit non-linear processor. The TxNLP increases the echo attenuation by attenuating the residual by a variable amount based upon the talk state. The TxNLP is controlled by (maxTxLossB and targetResidualLeveldBm).
The output of the TxNLP is fed into the AGC gain block, which provides gain or loss depending upon the residual signal level. The AGC is controlled by (agcEnable, agcMaxGaindB, agcMaxLossdB, agcTargetLeveldBm, and agcLowSigThreshdBm.)
USER CONTROLLED PARAMETERS (SUMMARY)
All Memory usage is given in units of byte.
| Processor | MIPS | Program | Data | Channel | Scratch | Constants |
| C55x | 50* | 40K | 42K | 35K | 4K | 3.6K |
* The MIPS and memory based on the 64ms tail length setting.
Last update: 02/15/2010
C64x Memory Utilization
Memory utilization is divided into two categories: fixed length and variable length. Fixed-length memory requirements are shown in the following table.
| Processor | Program | Data | Constants |
| C64x+ | 68960 | 689 | 1623 |
| C674x | 58048 | 729 | 1647 |
Notes:
All memory specifications including alignment requirements are given in units of 8 bit bytes.
Memory specified for builds that include both AGC and Noise Reduction
The variable length memory sections are further sub-divided into three categories:
The length of each variable length memory section is a function of some echo canceller setup parameters, as shown in the following table
Memory Usage Affecting Parameters:
Sample configurations
| Parameters | Section | ||||
| Sampling Rate (Hz) | Active Tail Length (msec) | Total Tail Length (msec) | Channel | Scratch | Common |
| 8000 | 32 | 64 | 19892 | 3372 | 806 |
| 8000 | 64 | 128 | 34612 | 3756 | 816 |
| 16000 | 32 | 64 | 33872 | 3756 | 1600 |
| 16000 | 64 | 128 | 70196 | 4524 | 816 |
Notes:
All memory specifications including alignment requirements are given in units of 8 bit bytes.
Memory specified for builds that include both AGC and Noise Reduction
Memory Usage Affecting Parameters:
Sample configurations
C64x CPU Utilization
The following table contains CPU utilization of the AEC as a function of sampling rate, tail length, and processor. The CPU utilization is given in Millions of Instruction Cycles Per Second per channel. This is also referred to as MIPS, which we also equate to processor clock speed specified in MHz.
| Parameters | ||||
| Sampling Rate (Hz) | Active Tail Length (msec) | Total Tail Length (msec) | C64X+ | C674X |
| 8000 | 32 | 64 | 24 | 24 |
| 8000 | 64 | 128 | 29 | 29 |
| 16000 | 32 | 64 | 54 | 54 |
| 16000 | 64 | 128 | 71 | 71 |
AECG4_ADT_create(…) Create and initializes an echo canceller channel
AECG4_ADT_applyl(…) Executes cancellation function
AECG4_ADT_backgroundHandler(…) Handles background calculations
AECG4_ADT_delete(…) Deletes an echo canceller channel
SITE LINKS
HOMEECHO CANCELLER
G.168 v10 NEC & LEC G.168 Plus™ Packet G.168 Testing Service G.168 Lite G.168 EC CHIP 'C6424 G.168 SUB. TEST DEMO ECHO EXPLAINED AT&T QUALIFICATION ACOUSTIC EC ACOUSTIC EC G4 EC INDEXVOICE QUALITY
VQE SUITE Noise Reduction Noise Reduction Gen2 Noise SuppressionRELATED LINKS
PRODUCT INDEX .pdf INDEX WHITE PAPERS VOIP PHONE REFERENCE KIT G.PAK FRAMEWORK OPEN G.PAK SOLUTION DSP RESOURCE WIZARD
Adaptive Digital's echo canceller is a robust, carrier class, flexible software solution that is available across a wide variety of DSP platforms.