Reply by Vladimir Vassilevsky September 8, 20092009-09-08

maury001@core.com wrote:


>>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.
Besides the numerous difficulties such as getting stuck in the local minima, it would not work because you are dealing with the loss of information rather then with the dynamic nonlinearity.
>>Finally, I admit I was nit-picking. > Oops, G.728 is the code-excited linear prediction. This is what I > meant originally, the 16-bit coder based on code-excited LP, not G. > 729.
There you go :)))) G.728 is a high bitrate engine which behaves similar to the ADPCM. Vladimir Vassilevsky DSP and Mixed Signal Design Consultant http://www.abvolt.com
Reply by September 8, 20092009-09-08
On Sep 8, 4:22�pm, maury...@core.com wrote:
> On Sep 8, 11:19&#4294967295;am, "steveu" <ste...@coppice.org> wrote: > > > > > > > >On Sep 4, 8:32=A0am, Vladimir Vassilevsky <nos...@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. &#4294967295;Nor would channels with ADPCM enc/dec. &#4294967295;I > > >would think that you are obviously restricting your statements to the > > >high-compression codecs/vocoders. &#4294967295;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 &#4294967295;well as anyone. > > > Steve- Hide quoted text - > > > - Show quoted text - > > The original statement was that they don't work. &#4294967295;They work, but not > very well. &#4294967295;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. &#4294967295;There is a lot of > misconception about convergence and stability. &#4294967295;You can have the > algorithm converge and not be stable. &#4294967295;You can have it be stable and > not converge very well to the desired. &#4294967295;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. &#4294967295;If that difference is > relatively large, it is said the filter doesn't converge. &#4294967295;It may very > well converge, just not to want you want. &#4294967295;LMS is derived from minimum > squared error, not weight difference. &#4294967295;This subtlety is often lost > when talking about LMS-based algorithms. &#4294967295;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. &#4294967295;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. &#4294967295;I have had > echo cancellers converge on ADPCM. &#4294967295;Not to the 34 dB of a-law, but > they do converge. &#4294967295;The reason for mentioning Volterra kernel is that > this is a non-linear model. &#4294967295;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- Hide quoted text - > > - Show quoted text -
Oops, G.728 is the code-excited linear prediction. This is what I meant originally, the 16-bit coder based on code-excited LP, not G. 729. Maurice
Reply by September 8, 20092009-09-08
On Sep 8, 11:19&#4294967295;am, "steveu" <ste...@coppice.org> wrote:
> >On Sep 4, 8:32=A0am, Vladimir Vassilevsky <nos...@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. &#4294967295;Nor would channels with ADPCM enc/dec. &#4294967295;I > >would think that you are obviously restricting your statements to the > >high-compression codecs/vocoders. &#4294967295;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 &#4294967295;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
Reply by steveu September 8, 20092009-09-08
>On Sep 4, 8:32=A0am, Vladimir Vassilevsky <nos...@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
Reply by September 8, 20092009-09-08
On Sep 4, 8:32&#4294967295;am, Vladimir Vassilevsky <nos...@nowhere.com> wrote:
> createdon2003 wrote: > > may be it will be more clear by a diagram. > > > --far_end-------------------|ENC|-------|DEC|--------// > > &#4294967295; &#4294967295;| &#4294967295; &#4294967295; &#4294967295; &#4294967295; &#4294967295; &#4294967295; &#4294967295; &#4294967295; &#4294967295; &#4294967295; &#4294967295; &#4294967295; &#4294967295; &#4294967295; &#4294967295; &#4294967295; &#4294967295; &#4294967295; &#4294967295; &#4294967295; &#4294967295; &#4294967295; &#4294967295; &#4294967295; | speaker > > &#4294967295; &#4294967295;| &#4294967295; &#4294967295; &#4294967295; &#4294967295; &#4294967295; &#4294967295; &#4294967295; &#4294967295; &#4294967295; &#4294967295; &#4294967295; &#4294967295; &#4294967295; &#4294967295; &#4294967295; &#4294967295; &#4294967295; &#4294967295; &#4294967295; &#4294967295; &#4294967295; &#4294967295; &#4294967295; &#4294967295; \\ > > &#4294967295; AEC > > &#4294967295; &#4294967295;| &#4294967295; &#4294967295; &#4294967295; &#4294967295; &#4294967295; &#4294967295; &#4294967295; &#4294967295; &#4294967295; &#4294967295; &#4294967295; &#4294967295; &#4294967295; &#4294967295; &#4294967295; &#4294967295; &#4294967295; &#4294967295; &#4294967295; &#4294967295; &#4294967295; &#4294967295; &#4294967295; &#4294967295; &#4294967295; &#4294967295;LEM with > > T_60~60ms > > &#4294967295; &#4294967295;| &#4294967295; &#4294967295; &#4294967295; &#4294967295; &#4294967295; &#4294967295; &#4294967295; &#4294967295; &#4294967295; &#4294967295; &#4294967295; &#4294967295; &#4294967295; &#4294967295; &#4294967295; &#4294967295; &#4294967295; &#4294967295; &#4294967295; &#4294967295; &#4294967295; &#4294967295; &#4294967295; &#4294967295; &#4294967295; > > --to far end----------------|DEC|-------|ENC|--------O microphone > > &#4294967295; &#4294967295; &#4294967295; &#4294967295; &#4294967295; &#4294967295; &#4294967295; &#4294967295; &#4294967295; &#4294967295; &#4294967295; &#4294967295; &#4294967295; &#4294967295; &#4294967295; &#4294967295; &#4294967295; &#4294967295; &#4294967295; &#4294967295; &#4294967295; &#4294967295; &#4294967295; &#4294967295; &#4294967295; &#4294967295; &#4294967295;| > > 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
Reply by createdon2003 September 5, 20092009-09-05
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
Reply by Vladimir Vassilevsky September 4, 20092009-09-04

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
Reply by steveu September 4, 20092009-09-04
> > >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.
Vlad keeps saying this, and you keep ignoring him, so let add another voie to this...... Vlad is right. 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. Steve
Reply by Vladimir Vassilevsky September 4, 20092009-09-04

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 Consultant http://www.abvolt.com
Reply by createdon2003 September 4, 20092009-09-04
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
                                                     |
AMR codecs are to be used for ENC_DEC, I am simulating the worst case
MR475.

Codecs introduce heavy non linearity but even then the frequency
components are moreover preserved. But what i have observed in a real
recording is that the acoustic echo was present only in the region of
1700-2500 Hz. Now, 
1)frequency response of the speaker/mic is not that bad for sure.
2)room reverberations doesn't cause this phenomenon.
3)doesn't make any sense to suspect codecs for it.

 The only thing I can suspect is that this acoustic feedback might be due
to the mechanical/acoustic coupling. What do you think ?? and if you have
an idea, do you think it can be modeled??.

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. 

and Thanks a ton to you guys for responding.

Sankalp