Acoustic Echo Cancellation
AEC - Acoustic Echo Cancellation
Basically, from childhood onward echo means resound we listen when produce sound in empty room. We will call it as Room Echo which will be different from AEC. Echo will be very annoying problems to users of communication while using telephones, cellphones, microphones, speakers
It can be formed when one-end voice echoed again to the same speaker from the other end microphone
It can be formed due to several other reasons also like positioning cell phone too away, not proper position of microphones, bad interior
AEC algorithm minimizes the effects by Cancellation, Suppression, Masking techniques
It involves below different blocks
1. Normalized Least Mean Square (NLMS) is an adaptive filtering used to perform echo cancellation
2. Non-Linear Processing (NLP) used to remove the residual echos which are not removed with NLMS
3. Comfort Noise Generation used to generate some sort of noise to make sure the other end user is still in call
Flow Diagram:
VAD: Voice Activity Detection - Used to detect the any voice in the entire input microphone data. If any silence is present, then include CNG to generate comfort noise
MSAF: Multi Sub-band Adaptive Filtering - This process is divided into two blocks
1. Filtering
2. MSAF - NLMS Adaptation
- NLMS filtering for predicting the echo signal by taking the far end as its reference.
- Calculate error between near end and filtered output & write to the output buffer
- Check for the double talk using cross correlation of near end input with error from previous output and perform autocorrelation of near end input data
- Update the coefficients for each sub band
Divergence Check - used to check whether the output is getting diverged. Based on the energy check it will decide whether to replace the output buffer with mic buffer and replace the NLMS-coefficients with stable coefficients
NLP- Non-Linear Processing - Used to remove the residual echos which remained after MSAF process. It will predict coherence for far-end, near-end & output stream and based on that it will suppress only at far-end.
NS - Noise Suppression - This block will be used to remove unwanted noise from the output
AGC - Automatic Gain Control - It will apply gain to the output if compression is required to boost the signal
CNG - Comfort Noise Generation used to generate some noise to make sure there is still the user available at the other end when there is some silence
Note: Described only process of AEC and brief explanation. So, please go through in detail about each individual block.
Comments
Post a Comment