Echo Canceller: Measuring Performance

Started by Rob Hutchinson August 8, 2004
I'm simulating an echo canceller in Matlab, using a FIR adaptive LMS filter.
I'm using the standard noise cancelling approach:
-adaptive filter input u(n) = far end speech
-adaptive filter output is y(n)
-impulse response of echo path is h(n)
-near end speech is ne(n)
-d(n) = ne(n) + u(n) (*) h(n)    ----> where (*) denotes convolution
-adaptive filter error single e(n) = d(n) - y(n)

-In this approach y(n) is an estimate of h(n) (*) u(n) and so e(n) is an
estimate of ne(n).

-What is the best/most commonly used metric to measure performance?  I want
a metric to compare performance as I vary system parameters, ( h(n), number
of filter taps, step size parameter, etc.)  I have been calculating the mean
squared error between e(n) and ne(n).  Is there a better way?  Is there a
way to calculate SNR for this system?

Thx for any suggestions or references,
Rob




-----= Posted via Newsfeeds.Com, Uncensored Usenet News =-----
http://www.newsfeeds.com - The #1 Newsgroup Service in the World!
-----==  Over 100,000 Newsgroups - 19 Different Servers! =-----
Hi,

    If you would like to measure/test the performance of your echo
canceller (be it LMS/RLS or anything, but assuming time invarient),
the better way to do is send the input signal from the far end and
near end for specified duration (T secs). Allow the echo cancellor to
adapt and after some specified time (T secs). Now send silence for
near end signal. Now the result will give you the residual echo which
you can treat as noise and compute the SNR with respect to the near
end signal.

    The method you use will not give the correct result as we can have
different signals with same energy, and it will misguide you
eventually. Also if there is correlation between the near end and far
end signal, the Signal+Noise energy will be less than Signal energy
and you will reach dead-end in the approach.

Regards,
Anandh. (panandh74@yahoo.com)


"Rob Hutchinson" <rhutch7@kdsi.net> wrote in message
news:<4116672f_4@corp.newsgroups.com>...
> I'm simulating an echo canceller in Matlab, using a FIR adaptive LMS filter. > I'm using the standard noise cancelling approach: > -adaptive filter input u(n) = far end speech > -adaptive filter output is y(n) > -impulse response of echo path is h(n) > -near end speech is ne(n) > -d(n) = ne(n) + u(n) (*) h(n) ----> where (*) denotes convolution > -adaptive filter error single e(n) = d(n) - y(n) > > -In this approach y(n) is an estimate of h(n) (*) u(n) and so e(n) is an > estimate of ne(n). > > -What is the best/most commonly used metric to measure performance? I want > a metric to compare performance as I vary system parameters, ( h(n), number > of filter taps, step size parameter, etc.) I have been calculating the mean > squared error between e(n) and ne(n). Is there a better way? Is there a > way to calculate SNR for this system? > > Thx for any suggestions or references, > Rob > > > > > -----= Posted via Newsfeeds.Com, Uncensored Usenet News =----- > http://www.newsfeeds.com - The #1 Newsgroup Service in the World! > -----== Over 100,000 Newsgroups - 19 Different Servers! =-----
panandh@hotmail.com (Anandh Pachaiappan) wrote in message
news:<d6b70265.0408082102.2af3255e@posting.google.com>...
> Hi, > > If you would like to measure/test the performance of your echo > canceller (be it LMS/RLS or anything, but assuming time invarient), > the better way to do is send the input signal from the far end and > near end for specified duration (T secs). Allow the echo cancellor to > adapt and after some specified time (T secs). Now send silence for > near end signal. Now the result will give you the residual echo which > you can treat as noise and compute the SNR with respect to the near > end signal. > > The method you use will not give the correct result as we can have > different signals with same energy, and it will misguide you > eventually. Also if there is correlation between the near end and far > end signal, the Signal+Noise energy will be less than Signal energy > and you will reach dead-end in the approach. > > Regards, > Anandh. (panandh74@yahoo.com) > > > "Rob Hutchinson" <rhutch7@kdsi.net> wrote in message
news:<4116672f_4@corp.newsgroups.com>...
> > I'm simulating an echo canceller in Matlab, using a FIR adaptive LMS filter. > > I'm using the standard noise cancelling approach: > > -adaptive filter input u(n) = far end speech > > -adaptive filter output is y(n) > > -impulse response of echo path is h(n) > > -near end speech is ne(n) > > -d(n) = ne(n) + u(n) (*) h(n) ----> where (*) denotes convolution > > -adaptive filter error single e(n) = d(n) - y(n) > > > > -In this approach y(n) is an estimate of h(n) (*) u(n) and so e(n) is an > > estimate of ne(n). > > > > -What is the best/most commonly used metric to measure performance? I want > > a metric to compare performance as I vary system parameters, ( h(n), number > > of filter taps, step size parameter, etc.) I have been calculating the mean > > squared error between e(n) and ne(n). Is there a better way? Is there a > > way to calculate SNR for this system? > > > > Thx for any suggestions or references, > > Rob > > > > > > > > > > -----= Posted via Newsfeeds.Com, Uncensored Usenet News =----- > > http://www.newsfeeds.com - The #1 Newsgroup Service in the World! > > -----== Over 100,000 Newsgroups - 19 Different Servers! =-----
Hi Anandh, The most commonly used measure for the performance AEC is known as ERL (Echo Return Loss)and it is a ratio of the downlink to uplink (echo removed) signal power which is measured as ERL(dB) = -20 log10 (Rx/Tx). The worst acceptable AEC performance is approximately -12dB. An other factor that accounts the AEC performance is how quickly it settle down to optimum performance (i.e. rate of convergence). The number of filter tabs also plays an improtant role. The higher the filter tabs the higher will be the computation and memory requirements etc. AEC performance should also be meaused in double talk environment. hopefully this will be helpful. Gold
Hi Anandh,
Question:  Should I freeze the values of the filter taps after T seconds or
let them continue to change while I'm sending silence for the near end
signal?
Rob
Anandh Pachaiappan <panandh@hotmail.com> wrote in message
news:d6b70265.0408082102.2af3255e@posting.google.com...
> Hi, > > If you would like to measure/test the performance of your echo > canceller (be it LMS/RLS or anything, but assuming time invarient), > the better way to do is send the input signal from the far end and > near end for specified duration (T secs). Allow the echo cancellor to > adapt and after some specified time (T secs). Now send silence for > near end signal. Now the result will give you the residual echo which > you can treat as noise and compute the SNR with respect to the near > end signal. > > The method you use will not give the correct result as we can have > different signals with same energy, and it will misguide you > eventually. Also if there is correlation between the near end and far > end signal, the Signal+Noise energy will be less than Signal energy > and you will reach dead-end in the approach. > > Regards, > Anandh. (panandh74@yahoo.com) > > > "Rob Hutchinson" <rhutch7@kdsi.net> wrote in message
news:<4116672f_4@corp.newsgroups.com>...
> > I'm simulating an echo canceller in Matlab, using a FIR adaptive LMS
filter.
> > I'm using the standard noise cancelling approach: > > -adaptive filter input u(n) = far end speech > > -adaptive filter output is y(n) > > -impulse response of echo path is h(n) > > -near end speech is ne(n) > > -d(n) = ne(n) + u(n) (*) h(n) ----> where (*) denotes convolution > > -adaptive filter error single e(n) = d(n) - y(n) > > > > -In this approach y(n) is an estimate of h(n) (*) u(n) and so e(n) is an > > estimate of ne(n). > > > > -What is the best/most commonly used metric to measure performance? I
want
> > a metric to compare performance as I vary system parameters, ( h(n),
number
> > of filter taps, step size parameter, etc.) I have been calculating the
mean
> > squared error between e(n) and ne(n). Is there a better way? Is there
a
> > way to calculate SNR for this system? > > > > Thx for any suggestions or references, > > Rob > > > > > > > > > > -----= Posted via Newsfeeds.Com, Uncensored Usenet News =----- > > http://www.newsfeeds.com - The #1 Newsgroup Service in the World! > > -----== Over 100,000 Newsgroups - 19 Different Servers! =-----
-----= Posted via Newsfeeds.Com, Uncensored Usenet News =----- http://www.newsfeeds.com - The #1 Newsgroup Service in the World! -----== Over 100,000 Newsgroups - 19 Different Servers! =-----
Hello Gold,
Maybe a dumb question but... do you have a reference specifying the ERL
calculation algorithm?   Also something describing the preferred method for
calculating convergence rate?
Thank you,
Rob Hutchinson


Gold wrote:
> The most commonly used measure for the performance AEC is known as ERL > (Echo Return Loss)and it is a ratio of the downlink to uplink (echo > removed) signal power which is measured as ERL(dB) = -20 log10 > (Rx/Tx). The worst acceptable AEC performance is approximately -12dB. > > An other factor that accounts the AEC performance is how quickly it > settle down to optimum performance (i.e. rate of convergence). The > number of filter tabs also plays an improtant role. The higher the > filter tabs the higher will be the computation and memory requirements > etc. > > AEC performance should also be meaused in double talk environment. > > > hopefully this will be helpful. > Gold
-----= Posted via Newsfeeds.Com, Uncensored Usenet News =----- http://www.newsfeeds.com - The #1 Newsgroup Service in the World! -----== Over 100,000 Newsgroups - 19 Different Servers! =-----
hi Rob,

Check your mail I've sent you one pdf document and some explanation to
calculate the ERL.

good luck
Gold


"Rob Hutchinson" <rhutch7@kdsi.net> wrote in message
news:<411a59ec_2@corp.newsgroups.com>...
> Hello Gold, > Maybe a dumb question but... do you have a reference specifying the ERL > calculation algorithm? Also something describing the preferred method for > calculating convergence rate? > Thank you, > Rob Hutchinson > > > Gold wrote: > > The most commonly used measure for the performance AEC is known as ERL > > (Echo Return Loss)and it is a ratio of the downlink to uplink (echo > > removed) signal power which is measured as ERL(dB) = -20 log10 > > (Rx/Tx). The worst acceptable AEC performance is approximately -12dB. > > > > An other factor that accounts the AEC performance is how quickly it > > settle down to optimum performance (i.e. rate of convergence). The > > number of filter tabs also plays an improtant role. The higher the > > filter tabs the higher will be the computation and memory requirements > > etc. > > > > AEC performance should also be meaused in double talk environment. > > > > > > hopefully this will be helpful. > > Gold > > > > > -----= Posted via Newsfeeds.Com, Uncensored Usenet News =----- > http://www.newsfeeds.com - The #1 Newsgroup Service in the World! > -----== Over 100,000 Newsgroups - 19 Different Servers! =-----