Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Old December 26th 06, 04:49 PM posted to rec.radio.shortwave
external usenet poster
 
First recorded activity by RadioBanter: Dec 2006
Posts: 46
Default Regarding acoustic echo cancellation using frequency domain LMS algorithm and subband LMS algorithm


"Aparna Ram" wrote in message
ups.com...
Dear all,

I am working on the acoustic echo cancellation.I have


Interesting. What is the application?

implemented the time domain LMS algorithm for acoustic echo
cancellation and it is working fine only for some audio files and not
working for some other audio files which has the large eigen value
spread.


What do you mean, "not working"? Does it not work at
all or does it not cancel the low eigen value echos?

So to avoid this eigen value spread now I am working on the
subband LMS algorithm in frequency domain for acoustic echo
cancellation.So now I am searching for the documents of subband LMS
algorithm and frequency domain LMS algorithm in which it is mentioned
clearly which samples are to be considered and why.


Interesting. What documents do you have now?

But I didnt find
those details.But I understood the overall view of frequency domain LMS
algorithm from the documents that I collected and its steps are as
follows:

Step1:For every sample of a frame (ie., 10 m sec data), that sample and
its previous samples, a total of samples equal to number of weights of
the filter are taken(as a full band) and they are converted to
frequency domain using DFT.

Step2:Initially all the weights of the filter are taken as zeros in
frequency domain.

Step3:Then to get the echo sample of kth subsequent sample position its


Your use of 'k' is ambiguous. "subsequent sample position"
sounds like individual sample in the time domain. But 'k'
is often used as the frequence domain variable, as in:
X(k) = DFT[ x(n) ]
And then in step 5 you seem to be using 'k' as the iteration
or frame number.

corresponding input sample in frequency domain(farend in frequency
domain) are multiplied with its corresponding weight in frequency
domain (its corresponding weight).
N(k) = X(k) * W(k)

Step4:Then the corresponding error sample is obtained by subtracting
this echo sample from the desired sample in frequency domain.
Ek = Yk - Nk
where Yk is the desired signal sample in frequency domain.


What are you using as the desired signal?


Step5:Using this error sample in frequency domain all the weights of
the filter are updated using the following formula:

Wk+1(i) = Wk(i) + 2 * muk * Ek * Xk
where Xk is column vector containing the current sample and its
previous samples.
Wk is the column vector of all the weights of the filter.


Here it looks like k is the iteration or frame number.
Is that what you mean?
What is 'i'? It doesn't seem to fit.

Or is 'i' the iteration number and k just denotes that
it is in the frequency domain. But then 'k+1' doesn't
fit.


Step6:All the above steps are repeated for each and every sample of the
frame untill the end of the frame and is repeated for all the frames of
the audio file.


It seems to me that once per frame would be
adequate and that once per sample would be
a waste.


My doubt is in the calculation of desired samples in
frequency domain ie.,Yk .According to logic, I think these frequency
components are calculated using all the samples of desired signal of a
frame.But it is nowhere mentioned in the documents that which samples I
need to consider for this frequncy band desired samples Okay if we
generate frequency domain desired samples equal to number of desired
samples in time domain using all these time domain samples.If I
integrate this idea with the subband LMS algorithm then again I am
getting the doubt that for each subband of farend signal(ie., obtained
by dividing a full band of farend signal consisting of current sample
of the frame and its previous samples to a particular number of
subbands)whether we need to have the same desired signal frequency
component for all the subbands or different frequency component for
each subband and how it is calculated.I have these type of doubts and
if we think of that there may be several possibilities.


Dude, one DFT of all the samples of the frame gives
you all the subbands. There is no need to modify
the time domain samples in order to split the frequency
domain into subbands.


So I am searching for that, but I am not getting the
required points.

I think one solution for this is converting the code of
time domain LMS algorithm to frequency domain and checking the code for
all the possibilities by trial and error method and seeing that for
which combination we will get the perfect output.But I am not getting
the output.


Nothing? All zeros? It crashes?


Here I have converted the farend signal, desired signal
and weights of the filter are converted to freqency domain and after
performing the operation the error signal is reconverted to time
domain.And the convergence weight factor is given in different ways in
different documents.I am in total confusion to proceed further.


--
rb


  #2   Report Post  
Old December 27th 06, 06:10 AM posted to rec.radio.shortwave
external usenet poster
 
First recorded activity by RadioBanter: Dec 2006
Posts: 6
Default Regarding acoustic echo cancellation using frequency domain LMS algorithm and subband LMS algorithm


Ron Baker, Pluralitas! wrote:
"Aparna Ram" wrote in message
ups.com...
Dear all,

I am working on the acoustic echo cancellation.I have


Interesting. What is the application?


Application is Video Conferencing


implemented the time domain LMS algorithm for acoustic echo
cancellation and it is working fine only for some audio files and not
working for some other audio files which has the large eigen value
spread.


What do you mean, "not working"? Does it not work at
all or does it not cancel the low eigen value echos?


It is working fine with some audio files with very very less residue which is very hard to hear.But for some other audio files it is working but not working fine.It is having more residue and some noise is getting.Yes it is notcancelling the low eigen value echoes.


So to avoid this eigen value spread now I am working on the
subband LMS algorithm in frequency domain for acoustic echo
cancellation.So now I am searching for the documents of subband LMS
algorithm and frequency domain LMS algorithm in which it is mentioned
clearly which samples are to be considered and why.


Interesting. What documents do you have now?


I have some thesis papers in which it is not mentioned the details that I am searching for.


But I didnt find
those details.But I understood the overall view of frequency domain LMS
algorithm from the documents that I collected and its steps are as
follows:

Step1:For every sample of a frame (ie., 10 m sec data), that sample and
its previous samples, a total of samples equal to number of weights of
the filter are taken(as a full band) and they are converted to
frequency domain using DFT.

Step2:Initially all the weights of the filter are taken as zeros in
frequency domain.

Step3:Then to get the echo sample of kth subsequent sample position its


Your use of 'k' is ambiguous. "subsequent sample position"
sounds like individual sample in the time domain. But 'k'
is often used as the frequence domain variable, as in:
X(k) = DFT[ x(n) ]


Yes Mr.Ron Baker k is the susequent frequency component.


And then in step 5 you seem to be using 'k' as the iteration
or frame number.


It shows that for each frequency component that formula holds.


corresponding input sample in frequency domain(farend in frequency
domain) are multiplied with its corresponding weight in frequency
domain (its corresponding weight).
N(k) = X(k) * W(k)

Step4:Then the corresponding error sample is obtained by subtracting
this echo sample from the desired sample in frequency domain.
Ek = Yk - Nk
where Yk is the desired signal sample in frequency domain.


What are you using as the desired signal?


Here the desired signal frequency components are calculated (using DFT) using all the desired signal samples(in time domain) of the fullband.



Step5:Using this error sample in frequency domain all the weights of
the filter are updated using the following formula:

Wk+1(i) = Wk(i) + 2 * muk * Ek * Xk
where Xk is column vector containing the frequency components of current sample and its
previous samples (in time domain).
Wk is the column vector of all the weights of the filter.


Here it looks like k is the iteration or frame number.
Is that what you mean?


Here k is the subsequent frequency component.


What is 'i'? It doesn't seem to fit.
i varies from 0 to (number of weights of the filter - 1).


Or is 'i' the iteration number and k just denotes that
it is in the frequency domain. But then 'k+1' doesn't
fit.


Step6:All the above steps are repeated for each and every sample of the
frame untill the end of the frame and is repeated for all the frames of
the audio file.


It seems to me that once per frame would be
adequate and that once per sample would be
a waste.


This is the confusion whether it is once per frame or once per sample? ??CAN YOU PLEASE SUGGEST ME SOME WEBSITES WHERE ICAN FIND THIS DATA?



My doubt is in the calculation of desired samples in
frequency domain ie.,Yk .According to logic, I think these frequency
components are calculated using all the samples of desired signal of a
frame.But it is nowhere mentioned in the documents that which samples I
need to consider for this frequncy band desired samples Okay if we
generate frequency domain desired samples equal to number of desired
samples in time domain using all these time domain samples.If I
integrate this idea with the subband LMS algorithm then again I am
getting the doubt that for each subband of farend signal(ie., obtained
by dividing a full band of farend signal consisting of current sample
of the frame and its previous samples to a particular number of
subbands)whether we need to have the same desired signal frequency
component for all the subbands or different frequency component for
each subband and how it is calculated.I have these type of doubts and
if we think of that there may be several possibilities.


Dude, one DFT of all the samples of the frame gives
you all the subbands. There is no need to modify
the time domain samples in order to split the frequency
domain into subbands.

I didnt understand the point "one DFT of all the samples of the frame gives

you all the subbands".Do you mean to say that one DFT is enough for
all the samples of a frame and there is no need to consider the
previous samples in farend signal? Or this point holds good only with
the desired signal frame?
So I am searching for that, but I am not getting the
required points.

I think one solution for this is converting the code of
time domain LMS algorithm to frequency domain and checking the code for
all the possibilities by trial and error method and seeing that for
which combination we will get the perfect output.But I am not getting
the output.


Nothing? All zeros? It crashes?


Yes Mr.Ron Baker I am getting zeros.But not all zeros.Initially I am getting some values and then it is decreased to zeros and ther after I am getting all zeros.But why we will get zeros? and why it crashes???


As the error sample in frequency domain contains the real part and imaginary part.After converting this to time domain, there is possibility of getting complex value only.So I have to convert this to real part only by calculating its magnitude to make it audible.Is this idea correct?????



Here I have converted the farend signal, desired signal
and weights of the filter are converted to freqency domain and after
performing the operation the error signal is reconverted to time
domain.And the convergence weight factor is given in different ways in
different documents.I am in total confusion to proceed further.


--
rb


  #3   Report Post  
Old December 29th 06, 05:02 AM posted to rec.radio.shortwave
external usenet poster
 
First recorded activity by RadioBanter: Dec 2006
Posts: 46
Default Regarding acoustic echo cancellation using frequency domain LMS algorithm and subband LMS algorithm


"Aparna Ram" wrote in message
oups.com...

Ron Baker, Pluralitas! wrote:
"Aparna Ram" wrote in message
oups.com...

Ron Baker, Pluralitas! wrote:
"Aparna Ram" wrote in message
ups.com...
Dear all,

I am working on the acoustic echo cancellation.I have


snip

is getting.Yes it is notcancelling the low eigen value echoes.


The LMS has limitations. But you might try reducing
your mu.


Yes even after reducing the mu value I am getting the same type
of behaviour with noise.



So to avoid this eigen value spread now I am working on the
subband LMS algorithm in frequency domain for acoustic echo
cancellation.So now I am searching for the documents of subband LMS
algorithm and frequency domain LMS algorithm in which it is
mentioned
clearly which samples are to be considered and why.

Interesting. What documents do you have now?

I have some thesis papers in which it is not mentioned the details
that I am searching for.


Maybe you should hire an engineer to explain them
to you.


snip


That statement is not clear either but it must be that
you mean that k is the frame or iteration number.


k is the iteration number


OK.

snip

What are you using as the desired signal?

Here the desired signal frequency components are calculated (using
DFT) using all the desired signal samples(in time domain) of the
fullband.


I meant the orginal, in the time domain. But never
mind, I think I know what it is.


Is my idea of desired signal calculation in frequency domain is
correct????


To the extent you are able to describe it I
see no problem.




Step5:Using this error sample in frequency domain all the weights of
the filter are updated using the following formula:

Wk+1(i) = Wk(i) + 2 * muk * Ek * Xk


snip

What is 'i'? It doesn't seem to fit.
i varies from 0 to (number of weights of the filter - 1).


Then Ek, Xk, and even muk should have i as an
index too. Ek(i) Xk(i) and maybe muk(i)


k is not the frame number.It is the iteration number.


And as I stated, in my view they should be
more or less the same thing.

And 'i' should appear in the other places I mentioned
in the equation.

snip

Nothing? All zeros? It crashes?

Yes Mr.Ron Baker I am getting zeros.But not all zeros.Initially I
am
getting some values and then it is decreased to zeros and ther
after I
am getting all zeros.But why we will get zeros? and why it
crashes???


Hard to tell from what you've been able to say.


I mean to say that after converting the error samples of a
frame from frequency domain to time domain(which may be or
maynot be a complex number and after converting that totally
to a real number) I am getting very very less values and
gradually it is decreased to zero.


Maybe you have the sign of Ek inverted.
In any case, it is hardly practical to debug your
code via this forum.

--
rb



Reply
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules

Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On



All times are GMT +1. The time now is 12:10 PM.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright ©2004-2024 RadioBanter.
The comments are property of their posters.
 

About Us

"It's about Radio"

 

Copyright © 2017