Providing Reliable Signal Processing Solutions Since 2001


In many cases, important communication must take place in extremely noisy environments. Such are the cases, for instance, when taking a call inside an ambulance, police car, or firefighter vehicle while the siren is active at 120 dB sound pressure level, or in a jet fighter cockpit. Clear communication in such extremely noisy environments is impossible which may lead to dangerous situations.

Fortunately, in many of such extreme noise cases, a clean reference of the noise source is available (siren) or can be obtained (measured) using a separate sensor. Using this reference as a secondary input to an adaptive algorithm allows almost complete removal of the noise without degrading the speech.

The Adaptive Interference Canceller is a very robust algorithm that takes two inputs and produces one output. The primary input is the noisy speech that is picked up by a single microphone (the main microphone in the communication device). The secondary input is a reference of the noise that is obtained from a separate sensor. The output signal is the clean speech with very small part of the noise remaining in the background.

The algorithm works by estimating the noise in the primary input using an adaptive digital filter. Once the optimal filter coefficients are found, which may take a second or so, subtracting the estimated noise from the primary input wipes out the noise almost completely leaving a clean speech signal to be sent through the communication channel. See example audio files below

The secondary (noise reference) signal may be already available in electric form such as in the cases of siren noise since it is played from the service vehicle. In other cases a noise reference can be measured using a mechanical sensor (tachometer, accelerometer, etc). In other cases a second microphone that picks as much of the noise as possible and as little of the speech as possible may be used.


The sample audio files below demonstrate the expected output from the Adaptive Interference Canceller algorithm in two different test environments. The first sample has been recorded in an airplane cabin while the second has been recorded while a police siren is passing by. The primary and secondary inputs (left side) are recorded as a stereo signal with primary input on the left audio channel and the secondary input on the right audio channel. The Adaptive Interference Canceller output is the signal at the right side. The images visually display the spectral contents of the audio signals.

input output

Airplane Cabin Recording

Adaptive Interference Canceller Output

input output

Police Siren Recording

Adaptive Interference Canceller Output


The following is a partial list of the most important AIC features:

  • Efficient, block frequency domain adaptive algorithm.
  • Block length is user adjustable therefore giving the user control on processing delay.
  • Works at any sampling frequency without any calibration or modification. It has been already deployed at sample rates ranging from 8kHz to 48kHz.
  • Trivial to integrate due to its simple Application Programming Interface.
  • Already lab and field tested on several fixed-point and floating-point processors and DSPs with and without an operating system.
  • Supported on all major desktop, mobile, and embedded platforms.
  • Floating-point and Fixed-point implementations optimized for several general purpose processors, microcontrollers, as well as digital signal processors are directly available.


You can test whether the AIC algorithm would be suitable for a certain scenario using the AIC file processing test application. This simple command line application reads a stereo audio wav file that has the primary noisy speech on the LEFT channel and the secondary noise reference on the RIGHT channel. It then processes the primary and secondary signals through the AIC algorithm to reduce the noise in the primary input, and writes the result to the output wav file. For instance if you have a recorded stereo primary/secondary input signal named "aic_input.wav" and would like to reduce the noise in the primary signal using AIC, you may give the following command at the command line prompt

aic.exe aic_input.wav aic_output.wav

Clik this link to download the Windows version of AIC test application.

Please note that only uncompressed PCM wav format is supported. If you have a recorded file in any other audio formats, including ADPCM wav or any other encoded or compressed wav file you will need to convert it to PCM first using any available audio file editor. Simply open the recording in the audio file editor of your choice and select "File->Save As" and then select PCM wav format.

For the adaptive algorithm to work properly, the primary (noisy speech) and secondary (noise reference) must be recorded directly to a stereo audio file with primary on the LEFT channel and secondary on the RIGHT. This ensures that the two signals are synchronized sample-per-sample which is necessary for the adaptive algorithm to function properly. Recording to two separate mono files then making a stereo file of those two recordings will simply not work.

For more information on the AIC algorithm we appreciate taking the time to contact us using the web form.

Copyright © DSP ALGORITHMS, All rights reserved.