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

Using nLMS filter for feedback cancellation

SigmaDSP & SigmaStudio audiolab1 May 1, 2012 00:00 6 replies Original on forum ↗
Subscribe
audiolab1 Question
May 1, 2012 00:00

Hi Brett,

I have read up on the other posts regarding the nLMS filter and that you have not yet had a chance to work with it. However, you did mention hearing a demo using a "real" mic and loudspeaker that worked well. I'm trying to create a feedback canceller for PA systems and I'm having trouble getting it to work. My application is similar to using AEC for a cell phone when there is a talkback signal...i.e. the mic signal and speaker signal are the same. Only differences in the two (feedback, room noise) should be cancelled out using the nLMS filter. My problem is how to input the "target" signal to PIN 1 of the nLMS block. Simply splitting the input signal and sending it to both PIN 0 and PIN1 of the nLMS block does not work...there is no output. This is strange since if the signals are identical the filter should simply pass the signal. I'm thinking that a delay block is required on one of the inputs, but trials so far have only resulted in noise and feedback. My though it that a feed-forward technique is required. The nLMS filter needs to know what the signal was supposed to be before the mic signal arrives. Adding a delay line in the mic feed also did not work. The test process flow that you posted works fine, and I can also substitute the sine wave generator in your example with a real mic signal and it works to cancel the white noise perfectly. It's only when I try to input a "real" signal for the speaker signal that it stops working. Any ideas?

audiolab1 Reply
May 3, 2012 00:00

Anyone? Surely one of the developers has some information on how to go about doing this.

Any information would be much appreciated!

ADIApproved Reply
May 15, 2012 00:00

I have really been wanting to devote more time to this and come up with a good example project, but it has been difficult to do that recently.

According to this example I posted last year ( https://ez.analog.com/message/26410#26410 ), pin 0 should contain the signal you want to keep + the additional noise you want to remove, whereas pin 1 should basically contain the noise you want to remove. So, if pin 0 = pin 1, then the output should be zero. In other words, if you remove noise from noise + signal (and signal is zero), then the result is zero.

If you want a talkback signal, then I think you would have to mix that in with the speaker output signal (into pin 1) in the proper proportion in order for it to be included as part of the target to cancel out.

I hope this makes sense. I'm going to check with the algorithm design team to see if they could come up with an example project that includes a talkback signal.

audiolab1 Reply
Jan 10, 2013 00:00

Just wondering if there has been any progress on this project?

Thanks!

ADIApproved Reply
Jan 11, 2013 00:00

Sorry, no progress. With some upcoming product releases on the horizon, we may not be able to devote time to this at the moment.

TheRacer Reply
Nov 25, 2013 00:00

No progress about this project? It seems to be a good solution for an ANC project.

ADIApproved Reply
Nov 25, 2013 00:00

Unfortunately we haven't been able to devote resources to moving this project's development forward. We might be able to resume work in this area after completing current projects.