DSPRelated.com
Forums

step size selection for LMS algorithm

Started by cpshah99 May 8, 2008
On May 9, 5:48&#4294967295;am, "cpshah99" <cpsha...@rediffmail.com> wrote:
> >On May 8, 3:10=A0pm, "cpshah99" <cpsha...@rediffmail.com> wrote: > >> >On May 8, 1:59=3DA0pm, "markt" <tak...@pericle.com> wrote: > >> >> >Thanks Steve for your reply. But this is very old topic and there > must= > > >> be=3D > > >> >> >something to optimise the step size. As in real time system we > just > >> >> decide > >> >> >these parameters for once and the system is left to run. > > >> >> >Any direction, if not direct answer, where I can find something. > > >> >> I'm in a similar boat with some adaptive work I've been doing and > the > >> >> answer I got: it is possible to derive bounds, but "best" is likely > >> >> situationally dependent (perhaps based on input variance, or > similar?).= > > >> =3D > >> >=3DA0I > >> >> will be doing the research over the next couple months for a very > >> differen=3D > >> >t > >> >> algorithm, but similar overall problem (and I actually need to > balance > >> two=3D > > >> >> step parameters). =3DA0If I find anything, I'll be sure to post. > > >> >> Mark > > >> >you can also consider a bigger step size during aquisition and a > >> >slower one during tracking... > > >> >(a different) > >> >Mark > > >> %%%%%%% > > >> HI Mark > > >> I am doing the same thing as you said. But if I change the channel > then > >> these setting fails to give good results. > > >> Chintan- Hide quoted text - > > >> - Show quoted text - > > >when you change channel, you have to re-aquire...and go back to high > >speed larger step. > > >right? > > >What kinkd of demod are you working on? > > >Mark > > %%%% > > Hi Mark > > I am changing channel not during transmission...if u know there are three > channels in the book by proakis.....
no I don't, I mis-understood the term "changing channels" Mark
On May 8, 12:11&#4294967295;pm, "cpshah99" <cpsha...@rediffmail.com> wrote:
> Hi All > > I have implemented Adaptive Decision Feedback Equaliser using LMS > Algorithm. Now I am using 4-QAM Modulation scheme. > > In the training mode, step size for feedforward filter is 0.01 and for > feedback filter is 0.003. And in decision directed mode the step size for > feedforward filter is 0.001 and for feedback filter is 0.003. I have got > these values after playing thru different values. > > Now if I change the feedforward filter step size from 0.01 to 0.001 in > training period and rest of the setup is same then I am getting big > difference in terms of BER performance. > > So, is there any perticular method to select step size? > > Thanks. > > Chintan P. Shah
It sound as though you are suing the LMS rather than the NLMS. The normalized version may solve your step-size sensitivity.
On Thu, 08 May 2008 12:11:10 -0500, "cpshah99"
<cpshah99@rediffmail.com> wrote:

>Hi All > >I have implemented Adaptive Decision Feedback Equaliser using LMS >Algorithm. Now I am using 4-QAM Modulation scheme. > >In the training mode, step size for feedforward filter is 0.01 and for >feedback filter is 0.003. And in decision directed mode the step size for >feedforward filter is 0.001 and for feedback filter is 0.003. I have got >these values after playing thru different values. > >Now if I change the feedforward filter step size from 0.01 to 0.001 in >training period and rest of the setup is same then I am getting big >difference in terms of BER performance. > >So, is there any perticular method to select step size?
It's always a good idea to gear shift instead of fixed step size. There are multitudes of variable step size algorithms but a simple divide by 2 at constant intervals almost always work so there is no need for anything more sophisticated (again almost always). Of course you need to remember to stop at a minimum step size which is decided by your coefficients' dynamic range and the time-variability of your channel.
>On Thu, 08 May 2008 12:11:10 -0500, "cpshah99" ><cpshah99@rediffmail.com> wrote: > >>Hi All >> >>I have implemented Adaptive Decision Feedback Equaliser using LMS >>Algorithm. Now I am using 4-QAM Modulation scheme. >> >>In the training mode, step size for feedforward filter is 0.01 and for >>feedback filter is 0.003. And in decision directed mode the step size
for
>>feedforward filter is 0.001 and for feedback filter is 0.003. I have
got
>>these values after playing thru different values. >> >>Now if I change the feedforward filter step size from 0.01 to 0.001 in >>training period and rest of the setup is same then I am getting big >>difference in terms of BER performance. >> >>So, is there any perticular method to select step size? > >It's always a good idea to gear shift instead of fixed step size. >There are multitudes of variable step size algorithms but a simple >divide by 2 at constant intervals almost always work so there is no >need for anything more sophisticated (again almost always). Of course >you need to remember to stop at a minimum step size which is decided >by your coefficients' dynamic range and the time-variability of your >channel. >
%%%%% HI Can you please explain what gear shifting and divide by 2 at constan intervals? chintan
On Sat, 10 May 2008 10:23:49 -0500, "cpshah99"
<cpshah99@rediffmail.com> wrote:
>>It's always a good idea to gear shift instead of fixed step size. >>There are multitudes of variable step size algorithms but a simple >>divide by 2 at constant intervals almost always work so there is no >>need for anything more sophisticated (again almost always). Of course >>you need to remember to stop at a minimum step size which is decided >>by your coefficients' dynamic range and the time-variability of your >>channel. >> > >HI > >Can you please explain what gear shifting and divide by 2 at constan >intervals?
Using a fixed step size is like having only one gear in your car, the results are usually not very satisfactory. With LMS a large step size gives you fast convergence but also higher residual MSE so the idea is to use a large step size when you're starting and make it progressively smaller as MSE gets lower. One way to do that is to divide step size by 2 at fixed intervals ie start at 1/64 and at N symbols change it to 1/128, at 2N change it to 1/256 etc. You would notice that the step sizes are always a power of 2 so you can implement them using a programmable shifter as opposed to a real multiplier.
>On Sat, 10 May 2008 10:23:49 -0500, "cpshah99" ><cpshah99@rediffmail.com> wrote: >>>It's always a good idea to gear shift instead of fixed step size. >>>There are multitudes of variable step size algorithms but a simple >>>divide by 2 at constant intervals almost always work so there is no >>>need for anything more sophisticated (again almost always). Of course >>>you need to remember to stop at a minimum step size which is decided >>>by your coefficients' dynamic range and the time-variability of your >>>channel. >>> >> >>HI >> >>Can you please explain what gear shifting and divide by 2 at constan >>intervals? > >Using a fixed step size is like having only one gear in your car, the >results are usually not very satisfactory. With LMS a large step size >gives you fast convergence but also higher residual MSE so the idea is >to use a large step size when you're starting and make it >progressively smaller as MSE gets lower. One way to do that is to >divide step size by 2 at fixed intervals ie start at 1/64 and at N >symbols change it to 1/128, at 2N change it to 1/256 etc. You would >notice that the step sizes are always a power of 2 so you can >implement them using a programmable shifter as opposed to a real >multiplier. >
%%%%%% Lets say the channel is static and the coeffs are [0.407 0.815 0.407]. This is channel B of proakis book. Now as the channel is not changing, it may not require to use gear shift. Now generaly during accquisition we keep step size high (I have kept 0.02) and during tracking we keep the same small (but i have kept 0.02). What I have observed is that I get good result but if I increase the step size in tracking from 0.02 to 0.08 I get much better result. So I have reached to one conclusion that in real time system channel can change and it is better to use normalised LMS (NLMS). Is this correct?