Automatic Echo Cancellation (AEC)

This process uses the stereo audio from the product as a reference signal to model the echo characteristics between each loudspeaker and microphone, caused by the acoustic environment of the device and room.

The AEC uses four models to continuously remove echoes in the microphone audio input created in the room by the loudspeakers. The models continually adapt to the acoustic environment to accommodate changes in the room created by events such as doors opening or closing and people moving about.

An illustration of echo paths in two sizes of room are shown below.

../../../_images/image21.png

Fig. 11 Echo paths from the speakers to the microphones

After reset, or when echo paths change due to a change in the environment, the AEC will re-converge. Echo Return Loss Enhancement (ERLE) can be used to indicate the degree of convergence on the AEC filters as shown below.

../../../_images/image22.png

Fig. 12 Settling time of the AEC shown using an ERLE plot

For optimal AEC settling-time performance, the volume of the speakers must be linearly proportional to the level of the reference audio sent to the XVF3610. If the volume of the speakers change without the level of the reference changing by the same linear factor, the AEC will respond as if the environment has changed such that all echo paths have increased/decreased energy, and will therefore incur a settling time in the AEC.

The Alternative Architecture (described in the Alternative Architecture mode (ALT_ARCH) section) selectively extends the AEC filters to accommodate highly reverberant environments.

The configuration parameters for the AEC are shown below:

Table 13 Useful Automatic Echo Canceller (AEC) commands

COMMAND

TYPE

VALUE

DESCRIPTION

NOTES

GET_BYPASS_AEC SET_BYPASS_AEC

uint32

[0,1] 0 = AEC bypass disabled (default) 1 = AEC bypass enabled

Get/Set AEC bypass parameter. If set to one, AEC processing is disabled.

A

SET_ADAPTATION_CONFIG_AEC GET_ADAPTATION_CONFIG_AEC

uint32

[0, 1, 2] 0 = Auto adapt (default) 1 = Force adaptation ON 2 = Force adaptation OFF

Sets AEC adaptation configuration. If AEC is set to bypass then setting the adaptation config has no effect.

B

GET_ERLE_CH0_AEC

float

Get AEC ERLE for channel 0

GET_ERLE_CH1_AEC

float

Get AEC ERLE for channel 1

C

RESET_FILTER_AEC

This command resets all AEC filters.

Notes:

[A] When the Alternative Architecture (ALT_ARCH) mode is enabled (default), AEC bypass state will be overwritten and so should not be used. The GET command remains functional. For more information see the Alternative Architecture (ALT_ARCH) section.

[B] If Automatic Delay Estimation is enabled, these parameters will be overwritten and so should not be used. The GET commands remain functional. For more information see the Automatic Delay Estimation & Correction (ADEC) section.

[C] When the ALT_ARCH mode is enabled, there is only valid ERLE data available on CH0. In this mode the GET_ERLE_CH1_AEC will report NaN.

Note

The AEC operates on acoustic paths modelled in the AEC tail length. The Automatic Delay Estimation and Correction module handles delays between microphone and loudspeaker introduced by the equipment, for instance receiving the reference ahead of it actually being played out of the loudspeakers.