From: Vladimir Vassilevsky on


steveu wrote:


> Echo cancellation is a process of system identification
> and subtracting the identified system model from the received signal. A low
> bit rate speech codec, like AMR, is heavily lossy. It does not preserve the
> signal nearly well enough to allow either the necessary system
> identification or the subtraction process to work.

Perhaps what the OP really wants is the howling suppression, which is
the different problem then the AEC. The anti howling filter could be
implemented in his setup.


Vladimir Vassilevsky
DSP and Mixed Signal Design Consultant
http://www.abvolt.com
From: createdon2003 on
Yeah I know it very well that I can't model the acoustic path in this case.
But for this case also there are solutions (There are products which caters
this problem). It might not be Acoustic Echo Canceler but Acoustic Echo
Control for Non linear channels involving vocoders. There are many pubs on
the same. Neways this was not in my mind to ask when I first made the
posting. My doubt was entirely diff...just drifted away...

But thanks Vlad, Dirk and steve for your time.


Sankalp
From: maury001 on
On Sep 4, 8:32 am, Vladimir Vassilevsky <nos...(a)nowhere.com> wrote:
> createdon2003 wrote:
> > may be it will be more clear by a diagram.
>
> > --far_end-------------------|ENC|-------|DEC|--------//
> >    |                                                 | speaker
> >    |                                                 \\
> >   AEC
> >    |                                                    LEM with
> > T_60~60ms
> >    |                                                  
> > --to far end----------------|DEC|-------|ENC|--------O microphone
> >                                                      |
> > Now that i have given the diagram (hope the situation is clearer now) can
> > you suggest any good material which can help me design a AEC for this
> > condition.
>
> You can not. The AEC is not going to work since you have vocoders in the
> loop.
>
> Vladimir Vassilevsky
> DSP and Mixed Signal Design Consultanthttp://www.abvolt.com

If that blanket statement were true, then echo cancellers with G.729
vocoders would not work. Nor would channels with ADPCM enc/dec. I
would think that you are obviously restricting your statements to the
high-compression codecs/vocoders. The echo canceller would still
work, just not very well.

Sankalp, echo from the cell side is, indeed, mostly due to the
mechanical feedback from speaker to microphone. There is an ITU
recommendation (can't remember which off hand) that limits this.
However, we have found that not all handsets adhere to this standard.
Worst, the measurement by the manufacturers is highly dependent on how
the test set up was made, which source was used, the artificial head
used, etc. This "echo" is highly non-linear, and linear models do not
represent the echo nor solve the problem well.

You might want to drop a line to Has Gerhlich at Head Acoustics, in
Germany. He has done a lot of research in this area, and in my
opinion, is one of the World experts.

I have often thought that this problem could be eased if one could
somehow efficiently get an adaptive estimate of the Volterra kernel
from the input/output data.

Good Luck, you have certainly pick a very difficult area of research.

Maurice Givens
From: steveu on
>On Sep 4, 8:32=A0am, Vladimir Vassilevsky <nos...(a)nowhere.com> wrote:
>> createdon2003 wrote:
>> > may be it will be more clear by a diagram.
>>
>> > --far_end-------------------|ENC|-------|DEC|--------//
>> > =A0 =A0| =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0
=
>=A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 | speaker
>> > =A0 =A0| =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0
=
>=A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 \\
>> > =A0 AEC
>> > =A0 =A0| =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0
=
>=A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0LEM with
>> > T_60~60ms
>> > =A0 =A0| =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0
=
>=A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0
>> > --to far end----------------|DEC|-------|ENC|--------O microphone
>> > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0
=A0=
> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0|
>> > Now that i have given the diagram (hope the situation is clearer now)
c=
>an
>> > you suggest any good material which can help me design a AEC for
this
>> > condition.
>>
>> You can not. The AEC is not going to work since you have vocoders in
the
>> loop.
>>
>> Vladimir Vassilevsky
>> DSP and Mixed Signal Design Consultanthttp://www.abvolt.com
>
>If that blanket statement were true, then echo cancellers with G.729
>vocoders would not work. Nor would channels with ADPCM enc/dec. I
>would think that you are obviously restricting your statements to the
>high-compression codecs/vocoders. The echo canceller would still
>work, just not very well.

That's an odd thing for someone like you to say.

The non linearities in G.711 limit an echo canceller to about 30 dB or so
of ERLE, with some nasty quirks at low levels that demand NLP.

ADPCM (e.g. 32kbps G.726) reduces the potential ERLE considerably, and NLP
has to be used quite aggressively. EC with ADPCM is not all that useful.

You're lucky if you can even make an EC converge through an G.729 channel,
and the results are not useful. The quirks are just too severe. You should
know that as well as anyone.

Steve
From: maury001 on
On Sep 8, 11:19 am, "steveu" <ste...(a)coppice.org> wrote:
> >On Sep 4, 8:32=A0am, Vladimir Vassilevsky <nos...(a)nowhere.com> wrote:
> >> createdon2003 wrote:
> >> > may be it will be more clear by a diagram.
>
> >> > --far_end-------------------|ENC|-------|DEC|--------//
> >> > =A0 =A0| =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0
> =
> >=A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 | speaker
> >> > =A0 =A0| =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0
> =
> >=A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 \\
> >> > =A0 AEC
> >> > =A0 =A0| =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0
> =
> >=A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0LEM with
> >> > T_60~60ms
> >> > =A0 =A0| =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0
> =
> >=A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0
> >> > --to far end----------------|DEC|-------|ENC|--------O microphone
> >> > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0
> =A0=
> > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0|
> >> > Now that i have given the diagram (hope the situation is clearer now)
> c=
> >an
> >> > you suggest any good material which can help me design a AEC for
> this
> >> > condition.
>
> >> You can not. The AEC is not going to work since you have vocoders in
> the
> >> loop.
>
> >> Vladimir Vassilevsky
> >> DSP and Mixed Signal Design Consultanthttp://www.abvolt.com
>
> >If that blanket statement were true, then echo cancellers with G.729
> >vocoders would not work.  Nor would channels with ADPCM enc/dec.  I
> >would think that you are obviously restricting your statements to the
> >high-compression codecs/vocoders.  The echo canceller would still
> >work, just not very well.
>
> That's an odd thing for someone like you to say.
>
> The non linearities in G.711 limit an echo canceller to about 30 dB or so
> of ERLE, with some nasty quirks at low levels that demand NLP.
>
> ADPCM (e.g. 32kbps G.726) reduces the potential ERLE considerably, and NLP
> has to be used quite aggressively. EC with ADPCM is not all that useful.
>
> You're lucky if you can even make an EC converge through an G.729 channel,
> and the results are not useful. The quirks are just too severe. You should
> know that as  well as anyone.
>
> Steve- Hide quoted text -
>
> - Show quoted text -

The original statement was that they don't work. They work, but not
very well. Because they don't converge very well to the desired, is
not to say they don't converge. I'm being very theoretical because I
have a "thing" about blanket statements. There is a lot of
misconception about convergence and stability. You can have the
algorithm converge and not be stable. You can have it be stable and
not converge very well to the desired. You can actually get a LMS-
based algorithm to converge, with small error, to an unstable system.
Analysis of LMS filters typically looks at the weight difference
between the desired and the estimated. If that difference is
relatively large, it is said the filter doesn't converge. It may very
well converge, just not to want you want. LMS is derived from minimum
squared error, not weight difference. This subtlety is often lost
when talking about LMS-based algorithms. When a LMS-based algorithm
produces a relativly stable estimate, it is working, and working the
way designed - minimizing the squared error.

One analysis, using weight difference, looked at adaptive filters in
tandem and came to a conclusion that was arguably not supported by the
data. I did an analysis of the same configuration, but using minimum
squared error analysis to show the result consistent with the data.

Yes, the NLP becomes very "useful" under these conditions. u-law will
converge to about 30 dB ERLE, and a-law to about 34dB. I have had
echo cancellers converge on ADPCM. Not to the 34 dB of a-law, but
they do converge. The reason for mentioning Volterra kernel is that
this is a non-linear model. I have always been interested in how well
a Volterra-based echo canceller would work on these signals (and not
just a 2nd-order Volterra), just never had the time.

Finally, I admit I was nit-picking.

Maurice Givens