DSPRelated.com
Forums

LMS limitations?

Started by Zach R. July 22, 2003
"Maurice Givens" <maurice.givens@ieee.org> wrote in message
news:eb93cce8.0307251151.1a4d1cfc@posting.google.com...
> Zach, > You might want to give us a diagram of what you have. For instance, > if the configuration is > > > > > > .---------<----------. > > | | > > | | > > v ^ > > input ----.---->--------[adaptive filter]---->(+)----+---->output > > | ^ > > | | > > | | > > '------->------------------->--------' > > "main channel" > > > > as was given before, and the "main channel" is a wire (i.e. the input > goes to the adap. filt. input, and directly to the summer), then > everything you put into the adap. filt. will be cancelled (the adap. > filt. will just be an impulse at t=0). > > If you indeed are trying to cancel the output of an unknown system, > then as long as the system impulse response is linear, the adap. filt. > won't care what signal you put into it (theoritically, of course. > There are some signals, depending on implementation, that can cause > the filter to become unstable). You also need to be aware of the > problem with signals that have poorly conditioned autocorrleation > matrices, such as sinusoids. > > "Zach R." <zrimkunas@verizon.net> wrote in message
news:<7BjTa.54036$EZ2.3409@nwrddc01.gnilink.net>...
> > Hi, > > I have implemented a simple LMS algorithm w/ a 10th order filter.
My
> > goal is to completely cancel my reference signal. I can get it to work
with
> > a sine wave at about 75 Hz. When I try to cancel a 150 Hz signal all I
get
> > is an unstable response. Ultimately I would like to be able to do a
decent
> > job of cancelling a voice signal. > > My main question is: Is it even possible for a LMS algorithm to
cancel a
> > quickly changing signal such as voice or is it limited only to
relatively
> > simple signals? > > > > Another related question is: To increase stability would bringing
the
> > filter order down work? > > > > Thanks for any help, > > Zach
Hi guys, Thanks for your help again. Sorry I haven't gotten a block diagram up earlier but here is generally what I have: ^ / ______/____ | | | Filter | ___________________|_________|____________________________ | / | | _________ | | | |Control | |------------| |------------| | | |Filter | |Adaptive | | Reference | | -----|-----------| ---| Algorithm |-----------| | | Ref Out | |------------| |------------| | | | | / |____________________________ | /|/\/\/\/\/\/ | \ | |/ | | |\ | | |/\/\/\/\/\/ | \/\/\/\/\/| \| | | O \/\/\/\/\/ | | -> Cancellation Signal |\ |/\/\/\/\/\/ Mic \/\/\/\/\/| /| \| |/ \ / Ok, that is it. Its probably not the clearest but I'll try to explain some. I have the reference and the microphone signal going into the adaptive algorithm. These two signals are used to create the filter coefficients using a normalized LMS algorithm. The two poorly represented figures on the bottom left and right are my speakers. The mic is located between the two speakers. Out of one speaker is the same reference signal fed into the adaptive algorithm. I am trying to get the adaptive algorithm to create a filter which will then filter the reference signal to make an out of phase version it (the reference). Just simple destructive interference. In addition, the control filter has not yet been implemented. Its purpose will be to make up for the delays in the system, etc. Does this help? Please let me know if I can clarify anything else for you. Again, thanks for your help and time. Zach
"Zach R." <zrimkunas@verizon.net> wrote in message
news:lfwUa.3057$cM6.1775@nwrdny01.gnilink.net...
> > "Maurice Givens" <maurice.givens@ieee.org> wrote in message > news:eb93cce8.0307251151.1a4d1cfc@posting.google.com... > > Zach, > > You might want to give us a diagram of what you have. For instance, > > if the configuration is > > > > > > > > > .---------<----------. > > > | | > > > | | > > > v ^ > > > input ----.---->--------[adaptive filter]---->(+)----+---->output > > > | ^ > > > | | > > > | | > > > '------->------------------->--------' > > > "main channel" > > > > > > > as was given before, and the "main channel" is a wire (i.e. the input > > goes to the adap. filt. input, and directly to the summer), then > > everything you put into the adap. filt. will be cancelled (the adap. > > filt. will just be an impulse at t=0). > > > > If you indeed are trying to cancel the output of an unknown system, > > then as long as the system impulse response is linear, the adap. filt. > > won't care what signal you put into it (theoritically, of course. > > There are some signals, depending on implementation, that can cause > > the filter to become unstable). You also need to be aware of the > > problem with signals that have poorly conditioned autocorrleation > > matrices, such as sinusoids. > > > > "Zach R." <zrimkunas@verizon.net> wrote in message > news:<7BjTa.54036$EZ2.3409@nwrddc01.gnilink.net>... > > > Hi, > > > I have implemented a simple LMS algorithm w/ a 10th order filter. > My > > > goal is to completely cancel my reference signal. I can get it to
work
> with > > > a sine wave at about 75 Hz. When I try to cancel a 150 Hz signal all
I
> get > > > is an unstable response. Ultimately I would like to be able to do a > decent > > > job of cancelling a voice signal. > > > My main question is: Is it even possible for a LMS algorithm to > cancel a > > > quickly changing signal such as voice or is it limited only to > relatively > > > simple signals? > > > > > > Another related question is: To increase stability would bringing > the > > > filter order down work? > > > > > > Thanks for any help, > > > Zach > > Hi guys, > Thanks for your help again. Sorry I haven't gotten a block diagram up > earlier but here is generally what I have: > > > ^ > / > ______/____ > | > | > | Filter
|
> > ___________________|_________|____________________________ > | / > | > | _________ | > | > | |Control | |------------| > |------------| | > | |Filter | |Adaptive | > | Reference | | > -----|-----------| ---| Algorithm |-----------| > | | > Ref Out | |------------| > |------------| | > | | > | > / |____________________________ > | > /|/\/\/\/\/\/
|
> \ | > |/ |
|
> |\ | > | |/\/\/\/\/\/
|
> \/\/\/\/\/| \| > | | O > \/\/\/\/\/ | | -> Cancellation Signal > |\ |/\/\/\/\/\/
Mic
> \/\/\/\/\/| /| > \| > |/ > \ > / > > > Ok, that is it. Its probably not the clearest but I'll try to explain
some.
> I have the reference and the microphone signal going into the adaptive > algorithm. These two signals are used to create the filter coefficients > using a normalized LMS algorithm. The two poorly represented figures on
the
> bottom left and right are my speakers. The mic is located between the two > speakers. Out of one speaker is the same reference signal fed into the > adaptive algorithm. I am trying to get the adaptive algorithm to create a > filter which will then filter the reference signal to make an out of phase > version it (the reference). Just simple destructive interference. > > In addition, the control filter has not yet been implemented. Its purpose > will be to make up for the delays in the system, etc. Does this help? > Please let me know if I can clarify anything else for you. > > Again, thanks for your help and time. > > Zach >
That didn't go very well!!! I'll get another up. Zach
"Zach R." wrote:
>
...
> > > > That didn't go very well!!! > > I'll get another up. > Zach
Set your wrap length to be at least as long as the window you compose in is wide, and be sure that there's a cr at the end of each line. (Monospace font and no tabs, of course.) Jerry -- Engineering is the art of making what you want from things you can get. &#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;&#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;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;
For system identification, the only limitation placed on the
derivation of the LMS algorithm is a well-conditioned input
autocorrelation matrix.  Even non-linear impulse responses can be
accomodated if the model is chosen well and the derivation of the
algorithm (based on minimizing the squared error) is done correctly.


Maurice Givens


> > Your comments provide good insight! I guess for noiselike inputs or > arbitrary inputs, right? > > Fred
Zach,
Yes, the picture did not come through.  However, from your verbal
description, it sounds like your are trying to do active noise
cancellation (where your noise is the reference signal).  I suggest
you look at some papers by Sen Kuo from Northern Illinois Univ.  He
wrote a tutorial for the Proceedings of the IEEE some years ago.  I
think this will help you a lot.  I have worked with Prof. Kuo on
several occations, and mentored a couple of his grad students. He is
very knowledgeable in this area.

Maurice Givens



"Zach R." <zrimkunas@verizon.net> wrote in message news:<glxUa.441$JS2.76@nwrdny03.gnilink.net>...
> "Zach R." <zrimkunas@verizon.net> wrote in message > news:lfwUa.3057$cM6.1775@nwrdny01.gnilink.net... > > > > "Maurice Givens" <maurice.givens@ieee.org> wrote in message > > news:eb93cce8.0307251151.1a4d1cfc@posting.google.com... > > > Zach, > > > You might want to give us a diagram of what you have. For instance, > > > if the configuration is > > > > > > > > > > > > .---------<----------. > > > > | | > > > > | | > > > > v ^ > > > > input ----.---->--------[adaptive filter]---->(+)----+---->output > > > > | ^ > > > > | | > > > > | | > > > > '------->------------------->--------' > > > > "main channel" > > > > > > > > > > as was given before, and the "main channel" is a wire (i.e. the input > > > goes to the adap. filt. input, and directly to the summer), then > > > everything you put into the adap. filt. will be cancelled (the adap. > > > filt. will just be an impulse at t=0). > > > > > > If you indeed are trying to cancel the output of an unknown system, > > > then as long as the system impulse response is linear, the adap. filt. > > > won't care what signal you put into it (theoritically, of course. > > > There are some signals, depending on implementation, that can cause > > > the filter to become unstable). You also need to be aware of the > > > problem with signals that have poorly conditioned autocorrleation > > > matrices, such as sinusoids. > > > > > > "Zach R." <zrimkunas@verizon.net> wrote in message > news:<7BjTa.54036$EZ2.3409@nwrddc01.gnilink.net>... > > > > Hi, > > > > I have implemented a simple LMS algorithm w/ a 10th order filter. > My > > > > goal is to completely cancel my reference signal. I can get it to > work > with > > > > a sine wave at about 75 Hz. When I try to cancel a 150 Hz signal all > I > get > > > > is an unstable response. Ultimately I would like to be able to do a > decent > > > > job of cancelling a voice signal. > > > > My main question is: Is it even possible for a LMS algorithm to > cancel a > > > > quickly changing signal such as voice or is it limited only to > relatively > > > > simple signals? > > > > > > > > Another related question is: To increase stability would bringing > the > > > > filter order down work? > > > > > > > > Thanks for any help, > > > > Zach > > > > Hi guys, > > Thanks for your help again. Sorry I haven't gotten a block diagram up > > earlier but here is generally what I have: > > > > > > ^ > > / > > ______/____ > > | > > | > > | Filter > | > > > > ___________________|_________|____________________________ > > | / > > | > | _________ | > > | > | |Control | |------------| > > |------------| | > | |Filter | |Adaptive | > > | Reference | | > -----|-----------| ---| Algorithm |-----------| > > | | > Ref Out | |------------| > > |------------| | > | | > > | > / |____________________________ > > | > > /|/\/\/\/\/\/ > | > > \ | > > |/ | > > > |\ | > > | |/\/\/\/\/\/ > | > > \/\/\/\/\/| \| > > | | O > \/\/\/\/\/ | | -> Cancellation Signal > > |\ |/\/\/\/\/\/ > Mic > > \/\/\/\/\/| /| > > \| > > |/ > > \ > > / > > > > > > Ok, that is it. Its probably not the clearest but I'll try to explain > some. > > I have the reference and the microphone signal going into the adaptive > > algorithm. These two signals are used to create the filter coefficients > > using a normalized LMS algorithm. The two poorly represented figures on > the > > bottom left and right are my speakers. The mic is located between the two > > speakers. Out of one speaker is the same reference signal fed into the > > adaptive algorithm. I am trying to get the adaptive algorithm to create a > > filter which will then filter the reference signal to make an out of phase > > version it (the reference). Just simple destructive interference. > > > > In addition, the control filter has not yet been implemented. Its purpose > > will be to make up for the delays in the system, etc. Does this help? > > Please let me know if I can clarify anything else for you. > > > > Again, thanks for your help and time. > > > > Zach > > > > > That didn't go very well!!! > > I'll get another up. > Zach