ΣSigmaStudio Ask AI Русский Log in

Echo cancellation

SigmaDSP & SigmaStudio LukasSE Nov 11, 2011 00:00 5 replies Original on forum ↗
Thread Summary

Thread Summary

The user is experiencing poor echo cancellation performance with the NLMS filter on an ADAU1761, achieving only 6dB attenuation for a single sine signal and increased noise. The software manager suggested increasing the FIR filter length and using a high-pass filter to improve cancellation. The user found that increasing the taps to 512 made the filter non-functional, but adding a high-pass filter improved results. The NLMS filter does not include a double talk detector.
AI Generated Content
Subscribe
LukasSE Question
Nov 11, 2011 00:00

I’m trying the echo cancellation block. I updated to version the 3.5.5 BETA 32-Bit OS version before I started. My hardware is a ADAU1761 with a speaker and microphone connected.

The results I get using the NLMS filter block are a bit disappointing. A single sinus signal is at most 6dB attenuated, experiments with noise result mostly in an increase of the output signal.

Can someone tell me how to set the alpha and TC configuration parameters. And is there an description of the NLMS filter block. Does it contain a double talk detector and that kind of features, what do I have to add to get a working AEC?

Thanks, Lukas

ADIApproved Reply
Dec 13, 2011 00:00

Hello Lukas,

I was pulled into several high-priority, time-critical projects at work over the past few weeks and unfortunately I had to de-prioritize my participation in the forum as a result. So, I apologize for making you wait so long for an answer. I am going to try to respond to everybody's questions within the next few days.

I have very little experience with the NLMS filter, so I unfortunately cannot provide much expertise in this area. The best I can offer for now is to ask our software about the features of the NLMS and how to use it, and I can post back here with my findings.

I really would like to do some kind of reference design with working AEC, complete with board schematics and PCB layout files, but at the moment, that is one of many items on my to-do list.

If anybody else has experience with the NLMS filter and/or AEC, please post here with your findings.

mfortini Reply
Jun 28, 2012 00:00

Hi,

any news on this subject? I just made a setup with an NLMS filter for eliminating trans-hybrid talk from a 2-to-4-wire hybrid circuit.

I attached to pin 0 the rx coil of the transformer, which bears the incoming signal from the 2-wire circuit, plus the trans-hybrid signal, which is a copy of the tx coil signal, but typically 30dB lower.

You can see a sketch of my setup in the attached drawing.

I compensated the 30dB in the capture levels to get similar signals, then I put a sine tone on the TX output of the device and turned on the "adapt" signal of the NLMS filter. I got good results, since the signal was almost completely cancelled.

However, if I spoke from the "device" my voice was not cancelled at all, only distorted. I tried tuning the filter using white noise, pink noise, different frequencies for sines, but I didn't get better results.

Is there anything else I could do?

b56fb578996370c84977db7cb0aafc94.png
b56fb578996370c84977db7cb0aafc94.png
b56fb578996370c84977db7cb0aafc94.png-618x187.png
b56fb578996370c84977db7cb0aafc94.png-618x187.png
ADIApproved Reply
Jul 9, 2012 00:00

Unfortunately I am not an expert in the use or application of the NLMS filter. I spoke with the software manager and he had these comments:

The length of the FIR filter determines the frequency range that can be canceled. The longer the FIR filter, the lower the limit of frequencies that can be canceled. So, try to make your FIR filter as long as possible.

Frequencies that are outside of this range (in the lower frequency range) will not be canceled, so it is a good idea to try to filter these out using a standard IIR highpass filter. You will lose some of the frequency range of your signal, but echo cancellation will be better.

The FIR can adapt very easily to a sine tone because it is a constant signal that does not change over time. A voice, on the other hand, is constantly changing, so the FIR needs to constantly adapt to cancel it out. You will need to experiment with the time constant controls in order to find a setting that is most efficient at canceling the signal in question.

I apologize that I cannot provide more detailed help. Due to my lack of experience in this area, I can only provide basic suggestions based on my conversations with the software team.

mfortini Reply
Jul 10, 2012 00:00

Thank you Brett,

I tried as you suggested:

I changed the taps from 256 to 512, but this lead to a filter that for some reason was non working anymore. Maybe one needs to adjust also the other parameters to make it work

I put a HP filter before the filter's input signals, and it got better

I tuned the filter using pink noise, then stopped the "adaptation". It did a good job of attenuating the unwanted echo, at least as good as a simple subtraction, but with added flexibility

EZAdministrator Reply
Aug 2, 2018 00:00

This question has been assumed as answered either offline via email or with a multi-part answer. This question has now been closed out. If you have an inquiry related to this topic please post a new question in the applicable product forum.

Thank you,
EZ Admin