For multi-channel full-duplex audio applications, there is more than one way to design the acoustic echo cancellation (AEC) software. In this case study, we are limiting the discussion to the multi-channel scenario where there are multiple uncorrelated loudspeaker signals that are acoustically coupled with a microphone signal. The preferred method from a signal processing perspective is to apply an adaptive filter to each loudspeaker signal. Each filter generates an estimate of the echo signal based on their independent signal. Each filter is updated from the error signal. Another approach is to sum the loudspeaker signals together prior to applying an adaptive linear filter. These two methods present a clear tradeoff between computational complexity (measured in MIPS) and echo return loss enhancement (ERLE).

Multi-channel AEC Performance TradeoffsMulti-channel AEC Performance Tradeoffs

The table below shows the performance difference between the two filter configurations for 2 and 4 channel loudspeaker configurations.

ConfigurationERLE (dB)MIPS
2 Channel – Loudspeaker Sum Excitation7.162.4
2 Channel – Independent Loudspeaker Excitation28.4120.9
4 Channel – Loudspeaker Sum Excitation6.862.4
4 Channel – Independent Loudspeaker Excitation27.9153.6

Clearly, the independent configuration is much more effective at removing the echo than the summation approach, but the computational complexity is more than double, and continues to grow as the number of channels increases. We would only recommend summing the signals prior to AEC if the platform has very limited CPU resources, and cannot support multiple adaptive filters. The residual echo suppressor for this configuration will have to be tuned to behave aggressively, as compared to its independent counterpart.


TI ADI ARM Linux iOS Android supported-platforms

VOCAL’s optimized software is available for the following platforms. Please contact us for specific Kernel Based Adaptive Acoustic Echo Canceller supported platforms and associated performance data.

ProcessorsOperating Systems
  • Texas Instruments – C6xx (TMS320C62x, TMS320C64x, TMS320C645x, TMS320C66x, TMS320C67x), DaVinci, OMAP, C5xx (TMS320C54x, TMS320C55x)
  • Analog Devices – Blackfin, ADSP-21xx, TigerSHARC, SHARC
  • PowerPC, PowerQUICC
  • MIPS – MIPS32, MIPS64, MIPS4Kc
  • ARM – ARM7, ARM9, ARM9E, ARM10E, ARM11, StrongARM, ARM Cortex-A8/A9, Cortex-M3/M4
  • Intel / AMD – x86, x64 (both 32 and 64 bit modes)
  • Linux, uClinux, BSD, Unix
  • Microsoft Windows ACM / RTC / CE / Mobile
  • Apple iOS / iPhone / iPad & MacOS
  • eCOS / eCOSPro
  • Google Android
  • Green Hills Integrity
  • Micrium μCOS
  • Symbian
  • Wind River VxWorks