DSPRelated.com
Forums

Adaptive Filter - LMS Algorithm

Started by Praveen September 23, 2005
Hello,

I am implementing the LMS Algorithm for acoustic echo canceller at a
very basic level.  In order to adapt the co-efficients of the filter
using LMS algorithm, a desired signal is required.  This would minimise
the error between the output signal(with echo) and the desired signal.
I would like to know what is the desired signal that can be assumed
here? Since the adaptive filter would have no idea of the desired
signal, how is this done?

Thanks and Regards,
Praveen

The block diagram at http://www.nctclearspeech.com/cs-aec.pdf should explain it.

"Praveen" <praveen.gk@gmail.com> wrote in message 
news:1127526333.750771.159760@g14g2000cwa.googlegroups.com...
> Hello, > > I am implementing the LMS Algorithm for acoustic echo canceller at a > very basic level. In order to adapt the co-efficients of the filter > using LMS algorithm, a desired signal is required. This would minimise > the error between the output signal(with echo) and the desired signal. > I would like to know what is the desired signal that can be assumed > here? Since the adaptive filter would have no idea of the desired > signal, how is this done?
but the whole point is how does one get to know the desired signal?
Suppose I read my speech signal from MATLAB and introduce a delay such
that I have the delayed version of the signal (echo).  When I use the
LMS algorithm, how can I keep my input speech signal before
introduction of the delay as the reference?

(1) Experimentally generate a training sequence using a known
reference.
(2) Recontruct the reference (sometimes independently) based on the
output and known input characteristics with some assumptions. (I guess
this is the more popular route.)

I haven't done any acoustic signal processing, so there are probably
better answers out there. I used adaptive filters mainly in pattern
recognition.

Praveen wrote:
> but the whole point is how does one get to know the desired signal? > Suppose I read my speech signal from MATLAB and introduce a delay such > that I have the delayed version of the signal (echo). When I use the > LMS algorithm, how can I keep my input speech signal before > introduction of the delay as the reference?
I hope I understand you correctly - I found the terminology you used in your original post a bit ambiguous. I'm confused by your reference to 'output signal (with echo)' and 'desired signal'. If you look at the diagram to which a link was given by another poster, then the desired signal is the signal into the summing junction that comprises near end speech and echo. What I would refer to as the output signal is the output from the adaptive filter. On that basis, I would say that the echo is in the desired signal, not in, or with, the output signal. Adaptation will minimise the mean squared error between the desired signal and the output of the adaptive filter. Using this terminology, I think you answer your own question in your second post insofar as the 'delayed version of the signal (echo)' is the desired signal. Hope this helps. Donald
Praveen wrote:
> Hello, > > I am implementing the LMS Algorithm for acoustic echo canceller at a > very basic level. In order to adapt the co-efficients of the filter > using LMS algorithm, a desired signal is required. This would minimise > the error between the output signal(with echo) and the desired signal. > I would like to know what is the desired signal that can be assumed > here? Since the adaptive filter would have no idea of the desired > signal, how is this done? > > Thanks and Regards, > Praveen
Hi Praveen I am also working on the same. Probably the following link will help you. http://www.embeddedstar.com/articles/2003/7/article20030720-1.html Regards --Himanshu /////////////////////////////// Himanshu Chauhan Software Engineer Blaze Audio, India OSX Audio Driver Developer //////////////////////////////
Yeps sure it does help...

Getting you right,

desired signal - signal after echo
reference signal - input signal

right?