Wideband Acoustic Echo Canceller: AEC G4
This Wideband Acoustic Echo Canceller G4 algorithm is too complex for Cortex-M3.
FEATURES
- Superior Double-Talk Performance
- Supports 8 kHz and 16 kHz sampling rates
- Able to achieve greater than 40 dB of ERLE without nonlinear processor
- Supports tail length up to 256 milliseconds
- Integrated noise-reduction
- Integrated automatic gain control
- Parameters are user configurable
- Non-linear processor
- Excellent voice quality
- Fast Convergence and reconvergence
- No divergence due to double-talk
- Integrated microphone equalization
GENERATION 4
- Functions are C-callable
- Multiple channel operation
- Parameters are user configurable
- Non-linear processor
- Excellent voice quality
- Fast Convergence
- No divergence due to double-talk
- Automatic Gain Control
- Noise reduction
- Equalization
- xDAIS compliant
WIDEBAND FEATURES
- Full duplex performance under a wide dynamic range of audio levels.
- Supports wideband audio (16 kHz, 32 kHz, 44.1, and 48 kHz sampling rates) with no artificial cutoff of high frequencies.
- Supports tail lengths up to 250 msec. with true full-duplex cancellation. (Not half-duplex suppression.)
- Converges within one second regardless of tail length and sampling rate.
AVAILABILITY
ADT AEC G4 is available off the shelf on the following Platforms: Other configurations are available upon request.
| Product Number | Platform |
| ADT_aec_G4_armA8 | ARM Cortex-A8 |
| ADT_aec_G4_armA9 | ARM Cortex-A9 |
| ADT_aec_G4_armA15 | ARM Cortex-A15 |
DESCRIPTION
The Adaptive Digital Technologies acoustic echo canceller (AEC) electronically removes both direct coupling and reflected echo, enabling true full-duplex hands-free telephony in mobile phones, speakerphones, and hands-free intercoms.
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.
FUNCTIONAL DESCRIPTION
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 transmit output (TxOut) and into the bulk delay block, whose delay is controlled by bulkDelaySamples. The bulk delay block compensates for the buffering delay at the RxOut and TxIn interfaces as well as any other non-acoustic system delays in the path between RxOut and TxIn. The output of the bulk delay is fed to the 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, worstExpectedERLdB, and maxTxNLPThresholddB ). The TxNLP block also includes a comfort noise generator that is turned on or off using ( cngEnable) .
The compute gain block computes the AGC gain. 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)
- Sampling Rate
- Tail Length
- Frame Size
- NLP Control
- Max Noise Level
- AGC Control
- Equalizer Control
- Noise Reduction Control
SPECIFICATION
ARM® DEVICESCortex-A8 / A9 / A15
CPU UTILIZATION & MEMORY REQUIREMENTSAll Memory usage is given in units of byte.
| Sampling Rate (Hz) |
Tail Length (msec) |
MIPS | Program Memory | Data | Scratch | Per-Channel | Stack |
| 8000 | 32 | 31.5 | 113K | 6.7K | 0 | 26K | 20K |
| 8000 | 64 | 38 | 113K | 6.7K | 0 | 41K | 20K |
| 16000 | 32 | 71.5 | 113K | 6.7K | 0 | 41K | 20K |
| 16000 | 64 | 94 | 113K | 6.7K | 0 | 77K | 20K |
FUNCTION
AECG4_ADT_create(…) Create and initializes an echo canceller channelAECG4_ADT_applyl(…) Executes cancellation function
AECG4_ADT_backgroundHandler(…) Handles background calculations
AECG4_ADT_delete(…) Deletes an echo canceller channel
For complete information, please contact sales. Tel: 1-800-340-2066 x120
